summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/expressions.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-08-10 09:23:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-08-10 09:23:50 +0000
commit4cc7d5a6dcda8f275b4156a9a23bbe5380be1b53 (patch)
tree1084b1a2dd9f2782031b4aa79608db08968a5837 /docs/sqlglot/expressions.html
parentReleasing debian version 17.9.1-1. (diff)
downloadsqlglot-4cc7d5a6dcda8f275b4156a9a23bbe5380be1b53.tar.xz
sqlglot-4cc7d5a6dcda8f275b4156a9a23bbe5380be1b53.zip
Merging upstream version 17.11.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/sqlglot/expressions.html')
-rw-r--r--docs/sqlglot/expressions.html8167
1 files changed, 4303 insertions, 3864 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index 5e74bf6..69168ed 100644
--- a/docs/sqlglot/expressions.html
+++ b/docs/sqlglot/expressions.html
@@ -90,6 +90,9 @@
<a class="variable" href="#Expression.alias">alias</a>
</li>
<li>
+ <a class="variable" href="#Expression.alias_column_names">alias_column_names</a>
+ </li>
+ <li>
<a class="variable" href="#Expression.name">name</a>
</li>
<li>
@@ -252,9 +255,6 @@
<a class="class" href="#DerivedTable">DerivedTable</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#DerivedTable.alias_column_names">alias_column_names</a>
- </li>
- <li>
<a class="variable" href="#DerivedTable.selects">selects</a>
</li>
<li>
@@ -6020,704 +6020,704 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a>
</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="nd">@property</span>
-</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a>
-</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="nd">@property</span>
-</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a>
-</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="nd">@property</span>
-</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
-</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a>
-</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
+</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
+</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a>
+</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="nd">@property</span>
+</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a>
+</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="nd">@property</span>
+</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a>
-</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a><span class="sd"> Example:</span>
-</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
-</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a><span class="sd"> &#39;a&#39;</span>
-</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
-</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a><span class="sd"> &#39;c&#39;</span>
-</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
-</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a><span class="sd"> &#39;&#39;</span>
-</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a>
-</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="nd">@property</span>
-</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
-</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
-</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a>
-</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
-</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
-</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a>
-</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="nd">@property</span>
-</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
-</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
-</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a>
-</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
-</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
-</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
-</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a>
-</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a>
-</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
-</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a>
-</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="k">return</span> <span class="n">copy</span>
-</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a>
-</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="k">return</span> <span class="n">new</span>
-</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a>
-</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
-</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a>
-</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
-</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a>
-</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a><span class="sd"> Args:</span>
-</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a>
-</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a><span class="sd"> Sets arg_key to value.</span>
-</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a>
-</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a><span class="sd"> Args:</span>
-</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a><span class="sd"> arg_key: name of the expression arg.</span>
-</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="k">return</span>
-</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a>
-</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a>
-</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
-</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a>
-</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="nd">@property</span>
-</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
-</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a><span class="sd"> Returns the depth of this tree.</span>
-</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
-</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="k">return</span> <span class="mi">0</span>
-</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a>
-</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
-</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
-</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
-</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
-</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
-</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a>
-</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a><span class="sd"> the specified types.</span>
-</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a>
-</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a><span class="sd"> Args:</span>
-</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a>
-</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a><span class="sd"> Returns:</span>
-</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a>
-</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a>
-</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a><span class="sd"> Args:</span>
-</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a>
-</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a><span class="sd"> Returns:</span>
-</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
-</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> <span class="k">yield</span> <span class="n">expression</span>
+</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="nd">@property</span>
+</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a>
+</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a>
+</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a><span class="sd"> Example:</span>
+</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
+</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a>
+</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="nd">@property</span>
+</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
+</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
+</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a>
+</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
+</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
+</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a>
+</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="nd">@property</span>
+</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a>
+</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
+</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
+</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
+</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a>
+</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a>
+</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
+</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a>
+</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="k">return</span> <span class="n">copy</span>
+</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a>
+</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="k">return</span> <span class="n">new</span>
+</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a>
+</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
+</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a>
+</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
+</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a>
+</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a><span class="sd"> Args:</span>
+</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a>
+</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a><span class="sd"> Sets arg_key to value.</span>
+</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a>
+</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a><span class="sd"> Args:</span>
+</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a><span class="sd"> arg_key: name of the expression arg.</span>
+</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="k">return</span>
+</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a>
+</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a>
+</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
+</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a>
+</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="nd">@property</span>
+</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
+</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="k">return</span> <span class="mi">0</span>
+</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a>
+</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
+</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
+</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
+</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
+</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
+</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a>
+</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a><span class="sd"> the specified types.</span>
+</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a>
+</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a><span class="sd"> Args:</span>
+</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a>
+</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a><span class="sd"> Returns:</span>
+</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a>
+</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a>
+</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a><span class="sd"> Args:</span>
+</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a>
-</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a>
-</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a><span class="sd"> Args:</span>
-</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a><span class="sd"> Returns:</span>
+</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
+</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a>
-</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a><span class="sd"> Returns:</span>
-</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a><span class="sd"> The parent node.</span>
-</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
-</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a>
-</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a> <span class="nd">@property</span>
-</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
-</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a><span class="sd"> Returns the parent select statement.</span>
-</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a>
+</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a><span class="sd"> Args:</span>
+</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a>
+</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a><span class="sd"> Returns:</span>
+</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a><span class="sd"> The parent node.</span>
+</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a>
</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a> <span class="nd">@property</span>
-</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
-</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
-</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a>
-</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a>
-</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a>
-</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a><span class="sd"> Args:</span>
-</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
-</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a>
-</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a><span class="sd"> Returns:</span>
-</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a><span class="sd"> the generator object.</span>
-</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a>
-</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a>
-</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a><span class="sd"> Returns:</span>
-</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a> <span class="k">return</span>
-</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a>
-</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
-</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a>
-</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a>
-</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a><span class="sd"> Returns:</span>
-</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a><span class="sd"> The generator object.</span>
-</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
-</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a>
-</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
-</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a>
-</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="k">continue</span>
+</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
+</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a><span class="sd"> Returns the parent select statement.</span>
+</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a>
+</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="nd">@property</span>
+</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
+</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
+</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a>
+</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a>
+</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
+</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a>
+</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a><span class="sd"> Args:</span>
+</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a>
+</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a><span class="sd"> Returns:</span>
+</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a><span class="sd"> the generator object.</span>
+</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a>
+</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a>
+</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a><span class="sd"> Returns:</span>
+</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="k">return</span>
+</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a>
+</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
+</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a>
+</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a>
+</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a><span class="sd"> Returns:</span>
+</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a><span class="sd"> The generator object.</span>
+</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a>
-</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a>
-</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a>
-</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
-</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a>
-</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
-</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a>
-</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
-</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a>
-</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
-</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
-</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
-</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a>
-</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
-</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a>
-</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
-</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a>
-</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="k">continue</span>
+</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a>
+</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a>
+</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a>
+</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
+</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a>
+</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+</span><span id="L-470"><a href="#L-470"><span class="linenos"> 470</span></a>
+</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
+</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a>
+</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
+</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
+</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
+</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a>
+</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a>
-</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a><span class="sd"> Args:</span>
-</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
-</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a>
-</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a><span class="sd"> Returns:</span>
-</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a><span class="sd"> The SQL string.</span>
-</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a>
-</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
+</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a>
+</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a>
+</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a><span class="sd"> Args:</span>
+</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
+</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a>
-</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
-</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
-</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
+</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a><span class="sd"> Returns:</span>
+</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a><span class="sd"> The SQL string.</span>
+</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a>
-</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
-</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
-</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
-</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="p">)</span>
-</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="p">}</span>
-</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
-</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
-</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
-</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a>
-</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
-</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a>
-</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
-</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a>
-</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a><span class="sd"> and applies the given transformation function to each node.</span>
+</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a>
+</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
+</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
+</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
+</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a>
+</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
+</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
+</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="p">)</span>
+</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="p">}</span>
+</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
+</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
+</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
+</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a>
+</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
+</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a>
-</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a><span class="sd"> Args:</span>
-</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
-</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a><span class="sd"> modified in place.</span>
+</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
+</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a>
+</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a><span class="sd"> and applies the given transformation function to each node.</span>
</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a>
-</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a><span class="sd"> Returns:</span>
-</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a>
-</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a>
-</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
-</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a>
-</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="o">...</span>
+</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a><span class="sd"> Args:</span>
+</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
+</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a><span class="sd"> modified in place.</span>
+</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a>
+</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a><span class="sd"> Returns:</span>
+</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a>
+</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a>
-</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="o">...</span>
-</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a>
-</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
-</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a>
-</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a><span class="sd"> For example::</span>
-</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a>
-</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a>
-</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a><span class="sd"> Args:</span>
-</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> expression: new node</span>
-</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a>
-</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a><span class="sd"> Returns:</span>
-</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a>
-</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a>
-</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a>
-</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
+</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a>
+</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="o">...</span>
+</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a>
+</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="o">...</span>
+</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a>
+</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a>
+</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a><span class="sd"> For example::</span>
+</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a>
+</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
+</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a><span class="sd"> (COLUMN this: y)</span>
+</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a>
+</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a><span class="sd"> Args:</span>
+</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a><span class="sd"> expression: new node</span>
+</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a>
+</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a><span class="sd"> Returns:</span>
+</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a>
+</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a>
-</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a><span class="sd"> Returns:</span>
-</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a><span class="sd"> The popped expression.</span>
-</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
-</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a>
-</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a>
-</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a>
+</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a>
+</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a><span class="sd"> Returns:</span>
+</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a><span class="sd"> The popped expression.</span>
+</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a>
-</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a><span class="sd"> Examples:</span>
-</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a>
-</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
-</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
-</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a>
+</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a>
+</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a><span class="sd"> Examples:</span>
+</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a>
-</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
-</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a>
-</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a><span class="sd"> Args:</span>
-</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
-</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
-</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a>
-</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a><span class="sd"> Returns:</span>
-</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a>
-</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
-</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
-</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
-</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a>
-</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="n">args</span>
-</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
-</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
-</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="p">):</span>
-</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
-</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="p">)</span>
-</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a>
-</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="k">return</span> <span class="n">errors</span>
-</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a>
-</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
-</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a>
-</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a>
-</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
-</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
+</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
+</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a>
+</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a>
+</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a><span class="sd"> Args:</span>
+</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
+</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a>
+</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a><span class="sd"> Returns:</span>
+</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a>
+</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
+</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
+</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
+</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a>
+</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="n">args</span>
+</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
+</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
+</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="p">):</span>
+</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
+</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="p">)</span>
+</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a>
+</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="k">return</span> <span class="n">errors</span>
+</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a>
+</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
+</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a>
+</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a>
-</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
-</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a>
-</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a>
-</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span>
-</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="nb">str</span><span class="p">,</span>
-</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span>
-</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span>
-</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a><span class="p">]</span>
-</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="n">ExpOrStr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]</span>
+</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
+</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a>
+</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a>
</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a>
-</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a>
-</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a>
-</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> Example:</span>
-</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a>
-</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a><span class="sd"> Args:</span>
-</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span>
+</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="nb">str</span><span class="p">,</span>
+</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span>
+</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span>
+</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a><span class="p">]</span>
+</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a><span class="n">ExpOrStr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]</span>
+</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a>
+</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a>
+</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
+</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a>
+</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a><span class="sd"> Example:</span>
+</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a>
-</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a><span class="sd"> Returns:</span>
-</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a><span class="sd"> The new And condition.</span>
-</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a>
-</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a>
-</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a><span class="sd"> Example:</span>
-</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a>
-</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a><span class="sd"> Args:</span>
-</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a><span class="sd"> Args:</span>
+</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a>
+</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a><span class="sd"> Returns:</span>
+</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a><span class="sd"> The new And condition.</span>
+</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a>
+</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a>
+</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a><span class="sd"> Example:</span>
+</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a>
-</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a><span class="sd"> Returns:</span>
-</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a><span class="sd"> The new Or condition.</span>
-</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a>
-</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a>
-</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> Example:</span>
-</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a>
-</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a><span class="sd"> Args:</span>
-</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a><span class="sd"> Args:</span>
+</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a>
+</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a><span class="sd"> Returns:</span>
+</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a>
+</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
+</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a><span class="sd"> Wrap this condition with NOT.</span>
</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a>
-</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="sd"> Returns:</span>
-</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a><span class="sd"> The new Not instance.</span>
-</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a>
-</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
-</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
-</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a>
-</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
-</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
-</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
-</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
-</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a>
-</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]):</span>
-</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
-</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
-</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="p">)</span>
-</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a>
-</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="p">]</span>
-</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="p">)</span>
-</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> <span class="p">)</span>
-</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a>
-</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
-</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="sd"> Example:</span>
+</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a>
+</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a><span class="sd"> Args:</span>
+</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a>
+</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a><span class="sd"> Returns:</span>
+</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a>
+</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a>
+</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
+</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
+</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
+</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
+</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a>
+</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]):</span>
+</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
+</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
+</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="p">)</span>
+</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a>
+</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="p">]</span>
+</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="p">)</span>
+</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="p">)</span>
</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a>
-</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
-</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a>
-</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
-</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a>
-</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
-</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a>
-</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a>
-</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a>
-</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
-</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a>
-</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
-</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a>
-</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
-</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a>
-</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
-</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a>
-</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
-</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a>
-</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a>
-</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a>
-</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a>
-</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a>
-</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a>
-</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a>
-</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a>
-</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a>
-</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a>
-</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a>
-</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a>
-</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a>
-</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a>
-</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a>
-</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a>
-</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a>
-</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a>
-</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a>
-</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
-</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
-</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a>
-</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
-</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a>
+</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
+</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="p">)</span>
+</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a>
+</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
+</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a>
+</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
+</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a>
+</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
+</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a>
+</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
+</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a>
+</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
+</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a>
+</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
+</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a>
+</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
+</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a>
+</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
+</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a>
+</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
+</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a>
+</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
+</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a>
+</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a>
+</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a>
+</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a>
+</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a>
+</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a>
+</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a>
+</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a>
+</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a>
+</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a>
+</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a>
+</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a>
+</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a>
+</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a>
+</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a>
+</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a>
+</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a>
+</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a>
+</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a>
-</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
+</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
+</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a>
-</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a>
-</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="nd">@property</span>
-</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
-</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
-</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a>
+</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
+</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a>
+</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a>
+</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
+</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a>
+</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a>
+</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> <span class="nd">@property</span>
</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
@@ -10688,1213 +10688,1223 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a>
</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a>
-</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
-</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a> <span class="o">...</span>
</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a>
-</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="k">def</span> <span class="nf">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
-</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span>
-</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a>
-</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a>
-</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a><span class="p">):</span>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
-</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a> <span class="p">)</span>
-</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span>
-</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a>
-</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a>
-</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a><span class="p">):</span>
-</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
-</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
-</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="p">])</span>
-</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a>
-</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a> <span class="p">)</span>
-</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a> <span class="n">parsed</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
-</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a>
-</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">instance</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span><span class="p">:</span>
-</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="n">existing</span><span class="o">.</span><span class="n">expressions</span> <span class="o">+</span> <span class="n">parsed</span>
-</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a>
-</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a> <span class="n">child</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">parsed</span><span class="p">)</span>
-</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a> <span class="n">child</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a>
-</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a>
-</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a>
-</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a><span class="p">):</span>
-</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a>
-</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a> <span class="p">)</span>
-</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
-</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a> <span class="p">]</span>
-</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a>
-</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="n">existing_expressions</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing_expressions</span><span class="p">:</span>
-</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">existing_expressions</span> <span class="o">+</span> <span class="n">expressions</span>
-</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a>
-</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span>
-</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</span></a>
-</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a>
-</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a><span class="p">):</span>
-</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span> <span class="k">for</span> <span class="n">exp</span> <span class="ow">in</span> <span class="n">expressions</span> <span class="k">if</span> <span class="n">exp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">exp</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">]</span>
-</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
-</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a>
-</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a>
-</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">existing</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">existing</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span>
-</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a>
-</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4989"><a href="#L-4989"><span class="linenos">4989</span></a>
-</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">node</span><span class="p">)</span>
-</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a>
+</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a>
+</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a> <span class="o">...</span>
+</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a>
+</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a>
+</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a>
+</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a>
+</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a><span class="k">def</span> <span class="nf">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
+</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span>
+</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a>
+</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a>
+</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a><span class="p">):</span>
+</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
+</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a> <span class="p">)</span>
+</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span>
+</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a>
+</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a><span class="p">):</span>
+</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
+</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
+</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="p">])</span>
+</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a>
+</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a> <span class="p">)</span>
+</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a> <span class="n">parsed</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
+</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a>
+</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">instance</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span><span class="p">:</span>
+</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="n">existing</span><span class="o">.</span><span class="n">expressions</span> <span class="o">+</span> <span class="n">parsed</span>
+</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a>
+</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a> <span class="n">child</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">parsed</span><span class="p">)</span>
+</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a> <span class="n">child</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a>
+</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a>
+</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a>
+</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a><span class="p">):</span>
+</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a>
+</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="p">)</span>
+</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
+</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a> <span class="p">]</span>
+</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a>
+</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a> <span class="n">existing_expressions</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing_expressions</span><span class="p">:</span>
+</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">existing_expressions</span> <span class="o">+</span> <span class="n">expressions</span>
+</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</span></a>
+</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span>
+</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a>
+</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a>
+</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a><span class="p">):</span>
+</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span> <span class="k">for</span> <span class="n">exp</span> <span class="ow">in</span> <span class="n">expressions</span> <span class="k">if</span> <span class="n">exp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">exp</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">]</span>
+</span><span id="L-4989"><a href="#L-4989"><span class="linenos">4989</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
+</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a>
+</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</span></a>
-</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
-</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
-</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
-</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
-</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="p">)</span>
-</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a>
-</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a>
-</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
-</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
-</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
-</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
-</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a> <span class="p">]</span>
-</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a>
-</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
-</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
-</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
-</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a>
-</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a>
-</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a>
-</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
-</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a>
-</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a>
-</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">existing</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">existing</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span>
+</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a>
+</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a>
+</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">node</span><span class="p">)</span>
+</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a>
+</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a>
+</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
+</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
+</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
+</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
+</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a> <span class="p">)</span>
+</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a>
+</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a>
+</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
+</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
+</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
+</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
+</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a> <span class="p">]</span>
+</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a>
+</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
+</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
+</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a>
+</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a>
</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a>
-</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a><span class="sd"> Example:</span>
-</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
+</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a>
</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a>
-</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a><span class="sd"> Args:</span>
-</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a>
-</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a>
-</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
-</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a>
-</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a>
-</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a>
-</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a><span class="sd"> Example:</span>
-</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a>
+</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a><span class="sd"> Example:</span>
+</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</span></a>
+</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a><span class="sd"> Args:</span>
+</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a>
+</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a>
+</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</span></a>
</span><span id="L-5081"><a href="#L-5081"><span class="linenos">5081</span></a>
-</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a><span class="sd"> Args:</span>
-</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a>
-</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a>
-</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
-</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a>
-</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a>
-</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a>
-</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a><span class="sd"> Example:</span>
-</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a><span class="sd"> &gt;&gt;&gt; except_(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a>
+</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a><span class="sd"> Example:</span>
+</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a>
+</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="sd"> Args:</span>
+</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a>
+</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a>
+</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a>
</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a>
-</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a><span class="sd"> Args:</span>
-</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a>
-</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a>
-</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
-</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a>
-</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a>
-</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</span></a>
-</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a><span class="sd"> Example:</span>
-</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;col1&quot;, &quot;col2&quot;).from_(&quot;tbl&quot;).sql()</span>
-</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a>
-</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a><span class="sd"> Args:</span>
-</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5141"><a href="#L-5141"><span class="linenos">5141</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a>
-</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a>
-</span><span id="L-5149"><a href="#L-5149"><span class="linenos">5149</span></a>
-</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a>
+</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a><span class="sd"> Example:</span>
+</span><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</span></a><span class="sd"> &gt;&gt;&gt; except_(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a>
+</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a><span class="sd"> Args:</span>
+</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a>
+</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a>
+</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a>
+</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a>
+</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="L-5141"><a href="#L-5141"><span class="linenos">5141</span></a>
+</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a><span class="sd"> Example:</span>
+</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;col1&quot;, &quot;col2&quot;).from_(&quot;tbl&quot;).sql()</span>
+</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a>
+</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a><span class="sd"> Args:</span>
+</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5149"><a href="#L-5149"><span class="linenos">5149</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a>
-</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a><span class="sd"> Example:</span>
-</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
-</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a>
-</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="sd"> Args:</span>
-</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a>
-</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a>
-</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a>
-</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
-</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a>
-</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a><span class="sd"> Example:</span>
-</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a><span class="sd"> &gt;&gt;&gt; update(&quot;my_table&quot;, {&quot;x&quot;: 1, &quot;y&quot;: &quot;2&quot;, &quot;z&quot;: None}, from_=&quot;baz&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
-</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a><span class="sd"> &quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
-</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a>
-</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a><span class="sd"> Args:</span>
-</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a>
-</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
-</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a> <span class="p">[</span>
-</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
-</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a> <span class="p">],</span>
-</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a> <span class="p">)</span>
-</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a> <span class="p">)</span>
-</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span>
-</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;WHERE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a> <span class="p">)</span>
-</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="k">return</span> <span class="n">update_expr</span>
-</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a>
-</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a>
-</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a>
+</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a>
+</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a>
+</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a><span class="sd"> Example:</span>
+</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
+</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a>
+</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a><span class="sd"> Args:</span>
+</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a>
+</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a>
+</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a>
+</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
+</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a>
+</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a><span class="sd"> Example:</span>
+</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a><span class="sd"> &gt;&gt;&gt; update(&quot;my_table&quot;, {&quot;x&quot;: 1, &quot;y&quot;: &quot;2&quot;, &quot;z&quot;: None}, from_=&quot;baz&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
+</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a><span class="sd"> &quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
+</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a>
+</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a><span class="sd"> Args:</span>
+</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a>
+</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
+</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</span></a> <span class="p">[</span>
+</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
+</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a> <span class="p">],</span>
+</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a> <span class="p">)</span>
+</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a> <span class="p">)</span>
+</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span>
+</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;WHERE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a> <span class="p">)</span>
+</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a>
</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a>
-</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a><span class="sd"> Example:</span>
-</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;my_table&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
-</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a>
-</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a><span class="sd"> Args:</span>
-</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a><span class="sd"> Builds a delete statement.</span>
</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a>
-</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5247"><a href="#L-5247"><span class="linenos">5247</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a><span class="sd"> Example:</span>
+</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;my_table&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
+</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a>
+</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a><span class="sd"> Args:</span>
+</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-5247"><a href="#L-5247"><span class="linenos">5247</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5250"><a href="#L-5250"><span class="linenos">5250</span></a>
-</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a>
-</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</span></a>
-</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a><span class="sd"> Example:</span>
-</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a>
-</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a><span class="sd"> Args:</span>
-</span><span id="L-5269"><a href="#L-5269"><span class="linenos">5269</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a>
-</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a>
-</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
-</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
-</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5291"><a href="#L-5291"><span class="linenos">5291</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a> <span class="p">)</span>
-</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a>
-</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
-</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a>
-</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a>
-</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a>
-</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a><span class="sd"> Example:</span>
-</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a>
+</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a>
+</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5269"><a href="#L-5269"><span class="linenos">5269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</span></a>
+</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a><span class="sd"> Example:</span>
+</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a>
+</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a><span class="sd"> Args:</span>
+</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a>
+</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5291"><a href="#L-5291"><span class="linenos">5291</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a>
+</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
+</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a> <span class="p">)</span>
+</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a>
+</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a>
</span><span id="L-5306"><a href="#L-5306"><span class="linenos">5306</span></a>
-</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a><span class="sd"> Initialize a logical condition expression.</span>
</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a>
-</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a><span class="sd"> Args:</span>
-</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a>
-</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a> <span class="p">)</span>
-</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a>
-</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a>
-</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5336"><a href="#L-5336"><span class="linenos">5336</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</span></a>
-</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a><span class="sd"> Example:</span>
-</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a><span class="sd"> &gt;&gt;&gt; and_(&quot;x=1&quot;, and_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
-</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a><span class="sd"> Example:</span>
+</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</span></a>
+</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a>
+</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="sd"> Args:</span>
+</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a>
+</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5336"><a href="#L-5336"><span class="linenos">5336</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a> <span class="p">)</span>
+</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a>
</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</span></a>
-</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a><span class="sd"> Args:</span>
-</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a>
-</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a>
-</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a>
-</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a>
-</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a><span class="sd"> Example:</span>
-</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a><span class="sd"> &gt;&gt;&gt; or_(&quot;x=1&quot;, or_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
-</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a>
+</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a><span class="sd"> Example:</span>
+</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a><span class="sd"> &gt;&gt;&gt; and_(&quot;x=1&quot;, and_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
+</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a>
+</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a><span class="sd"> Args:</span>
+</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a>
+</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a><span class="sd"> And: the new condition</span>
+</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a>
</span><span id="L-5366"><a href="#L-5366"><span class="linenos">5366</span></a>
-</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</span></a><span class="sd"> Args:</span>
-</span><span id="L-5368"><a href="#L-5368"><span class="linenos">5368</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-5372"><a href="#L-5372"><span class="linenos">5372</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a>
-</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5377"><a href="#L-5377"><span class="linenos">5377</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</span></a>
-</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a>
-</span><span id="L-5380"><a href="#L-5380"><span class="linenos">5380</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-5381"><a href="#L-5381"><span class="linenos">5381</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-5368"><a href="#L-5368"><span class="linenos">5368</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-5372"><a href="#L-5372"><span class="linenos">5372</span></a>
+</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a><span class="sd"> Example:</span>
+</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a><span class="sd"> &gt;&gt;&gt; or_(&quot;x=1&quot;, or_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
+</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</span></a>
+</span><span id="L-5377"><a href="#L-5377"><span class="linenos">5377</span></a><span class="sd"> Args:</span>
+</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5380"><a href="#L-5380"><span class="linenos">5380</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5381"><a href="#L-5381"><span class="linenos">5381</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5383"><a href="#L-5383"><span class="linenos">5383</span></a>
-</span><span id="L-5384"><a href="#L-5384"><span class="linenos">5384</span></a><span class="sd"> Example:</span>
-</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-5386"><a href="#L-5386"><span class="linenos">5386</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="L-5387"><a href="#L-5387"><span class="linenos">5387</span></a>
-</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</span></a><span class="sd"> Args:</span>
-</span><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5391"><a href="#L-5391"><span class="linenos">5391</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</span></a>
-</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a><span class="sd"> The new condition.</span>
-</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a> <span class="p">)</span>
-</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
-</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a>
-</span><span id="L-5406"><a href="#L-5406"><span class="linenos">5406</span></a>
-</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a><span class="sd"> Wrap an expression in parentheses.</span>
-</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a>
-</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a><span class="sd"> Example:</span>
-</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="L-5413"><a href="#L-5413"><span class="linenos">5413</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a>
-</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a><span class="sd"> Args:</span>
-</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a>
-</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="L-5384"><a href="#L-5384"><span class="linenos">5384</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="L-5386"><a href="#L-5386"><span class="linenos">5386</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5387"><a href="#L-5387"><span class="linenos">5387</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</span></a>
+</span><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a>
+</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="L-5391"><a href="#L-5391"><span class="linenos">5391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</span></a>
+</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</span></a><span class="sd"> Example:</span>
+</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a>
+</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a><span class="sd"> Args:</span>
+</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a>
+</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5406"><a href="#L-5406"><span class="linenos">5406</span></a><span class="sd"> The new condition.</span>
+</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5413"><a href="#L-5413"><span class="linenos">5413</span></a> <span class="p">)</span>
+</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a>
+</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a>
+</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a>
+</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a><span class="sd"> Example:</span>
+</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
</span><span id="L-5424"><a href="#L-5424"><span class="linenos">5424</span></a>
-</span><span id="L-5425"><a href="#L-5425"><span class="linenos">5425</span></a>
-</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a><span class="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;^[_a-zA-Z][\w]*$&quot;</span><span class="p">)</span>
-</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a>
-</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</span></a>
-</span><span id="L-5429"><a href="#L-5429"><span class="linenos">5429</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</span></a> <span class="o">...</span>
-</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a>
-</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a>
-</span><span id="L-5434"><a href="#L-5434"><span class="linenos">5434</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
-</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a> <span class="o">...</span>
-</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</span></a>
-</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a>
-</span><span id="L-5441"><a href="#L-5441"><span class="linenos">5441</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-5425"><a href="#L-5425"><span class="linenos">5425</span></a><span class="sd"> Args:</span>
+</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-5429"><a href="#L-5429"><span class="linenos">5429</span></a>
+</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="L-5434"><a href="#L-5434"><span class="linenos">5434</span></a>
+</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a>
+</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a><span class="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;^[_a-zA-Z][\w]*$&quot;</span><span class="p">)</span>
+</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a>
+</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a>
+</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5441"><a href="#L-5441"><span class="linenos">5441</span></a> <span class="o">...</span>
+</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</span></a>
</span><span id="L-5443"><a href="#L-5443"><span class="linenos">5443</span></a>
-</span><span id="L-5444"><a href="#L-5444"><span class="linenos">5444</span></a><span class="sd"> Args:</span>
-</span><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
-</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a>
-</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</span></a>
-</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="L-5455"><a href="#L-5455"><span class="linenos">5455</span></a>
-</span><span id="L-5456"><a href="#L-5456"><span class="linenos">5456</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
-</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
-</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a> <span class="p">)</span>
-</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a>
-</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</span></a>
-</span><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</span></a><span class="n">INTERVAL_STRING_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\s*([0-9]+)\s*([a-zA-Z]+)\s*&quot;</span><span class="p">)</span>
-</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a>
-</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a>
-</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Interval</span><span class="p">:</span>
-</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an interval expression from a string like &#39;1 day&#39; or &#39;5 months&#39;.&quot;&quot;&quot;</span>
-</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
-</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span>
-</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
+</span><span id="L-5444"><a href="#L-5444"><span class="linenos">5444</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
+</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a> <span class="o">...</span>
+</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a>
+</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a>
+</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a>
+</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a><span class="sd"> Args:</span>
+</span><span id="L-5455"><a href="#L-5455"><span class="linenos">5455</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-5456"><a href="#L-5456"><span class="linenos">5456</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
+</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a>
+</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a>
+</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a>
+</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
+</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
+</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a> <span class="p">)</span>
+</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a>
-</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</span></a>
-</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a>
+</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</span></a><span class="n">INTERVAL_STRING_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\s*([0-9]+)\s*([a-zA-Z]+)\s*&quot;</span><span class="p">)</span>
+</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</span></a>
</span><span id="L-5480"><a href="#L-5480"><span class="linenos">5480</span></a>
-</span><span id="L-5481"><a href="#L-5481"><span class="linenos">5481</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
-</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
-</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</span></a>
-</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
-</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
-</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a> <span class="p">)</span>
+</span><span id="L-5481"><a href="#L-5481"><span class="linenos">5481</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Interval</span><span class="p">:</span>
+</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an interval expression from a string like &#39;1 day&#39; or &#39;5 months&#39;.&quot;&quot;&quot;</span>
+</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
+</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span>
+</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
+</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</span></a>
+</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-5488"><a href="#L-5488"><span class="linenos">5488</span></a>
-</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a>
-</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a> <span class="o">...</span>
+</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a>
+</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
+</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a>
-</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a>
-</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a> <span class="o">...</span>
+</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
+</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
+</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a> <span class="p">)</span>
</span><span id="L-5498"><a href="#L-5498"><span class="linenos">5498</span></a>
</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</span></a>
-</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="L-5501"><a href="#L-5501"><span class="linenos">5501</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
-</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a>
-</span><span id="L-5507"><a href="#L-5507"><span class="linenos">5507</span></a><span class="sd"> Args:</span>
-</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="L-5510"><a href="#L-5510"><span class="linenos">5510</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
-</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a>
-</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5513"><a href="#L-5513"><span class="linenos">5513</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-5517"><a href="#L-5517"><span class="linenos">5517</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a>
-</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-5521"><a href="#L-5521"><span class="linenos">5521</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5522"><a href="#L-5522"><span class="linenos">5522</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a>
-</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</span></a>
-</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</span></a>
-</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="L-5531"><a href="#L-5531"><span class="linenos">5531</span></a>
-</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a>
-</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a><span class="sd"> Args:</span>
-</span><span id="L-5535"><a href="#L-5535"><span class="linenos">5535</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-5543"><a href="#L-5543"><span class="linenos">5543</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-5544"><a href="#L-5544"><span class="linenos">5544</span></a>
-</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</span></a>
-</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-5549"><a href="#L-5549"><span class="linenos">5549</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5553"><a href="#L-5553"><span class="linenos">5553</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a><span class="p">):</span>
-</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</span></a>
-</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</span></a><span class="sd"> Example:</span>
-</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="L-5560"><a href="#L-5560"><span class="linenos">5560</span></a>
-</span><span id="L-5561"><a href="#L-5561"><span class="linenos">5561</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;(select 1, 2)&#39;, &#39;bar&#39;, table=[&#39;a&#39;, &#39;b&#39;]).sql()</span>
-</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a>
-</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a><span class="sd"> Args:</span>
-</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
-</span><span id="L-5570"><a href="#L-5570"><span class="linenos">5570</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5572"><a href="#L-5572"><span class="linenos">5572</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
-</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a>
-</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span>
-</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a>
-</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span>
+</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5501"><a href="#L-5501"><span class="linenos">5501</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a> <span class="o">...</span>
+</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a>
+</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a>
+</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5507"><a href="#L-5507"><span class="linenos">5507</span></a> <span class="o">...</span>
+</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</span></a>
+</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a>
+</span><span id="L-5510"><a href="#L-5510"><span class="linenos">5510</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="L-5513"><a href="#L-5513"><span class="linenos">5513</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
+</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a>
+</span><span id="L-5517"><a href="#L-5517"><span class="linenos">5517</span></a><span class="sd"> Args:</span>
+</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="L-5521"><a href="#L-5521"><span class="linenos">5521</span></a>
+</span><span id="L-5522"><a href="#L-5522"><span class="linenos">5522</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a>
+</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-5531"><a href="#L-5531"><span class="linenos">5531</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a>
+</span><span id="L-5535"><a href="#L-5535"><span class="linenos">5535</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</span></a>
+</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a>
+</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</span></a>
+</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="L-5543"><a href="#L-5543"><span class="linenos">5543</span></a>
+</span><span id="L-5544"><a href="#L-5544"><span class="linenos">5544</span></a><span class="sd"> Args:</span>
+</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5549"><a href="#L-5549"><span class="linenos">5549</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-5553"><a href="#L-5553"><span class="linenos">5553</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a>
+</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a>
+</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5560"><a href="#L-5560"><span class="linenos">5560</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5561"><a href="#L-5561"><span class="linenos">5561</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a><span class="p">):</span>
+</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a>
+</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a><span class="sd"> Example:</span>
+</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-5570"><a href="#L-5570"><span class="linenos">5570</span></a>
+</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;(select 1, 2)&#39;, &#39;bar&#39;, table=[&#39;a&#39;, &#39;b&#39;]).sql()</span>
+</span><span id="L-5572"><a href="#L-5572"><span class="linenos">5572</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a>
+</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="sd"> Args:</span>
+</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
+</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a>
-</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
-</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span>
-</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a>
-</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span>
</span><span id="L-5590"><a href="#L-5590"><span class="linenos">5590</span></a>
-</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a> <span class="c1"># We don&#39;t set the &quot;alias&quot; arg for Window expressions, because that would add an IDENTIFIER node in</span>
-</span><span id="L-5592"><a href="#L-5592"><span class="linenos">5592</span></a> <span class="c1"># the AST, representing a &quot;named_window&quot; [1] construct (eg. bigquery). What we want is an ALIAS node</span>
-</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</span></a> <span class="c1">#</span>
-</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a>
-</span><span id="L-5597"><a href="#L-5597"><span class="linenos">5597</span></a> <span class="k">if</span> <span class="s2">&quot;alias&quot;</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span>
-</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span>
+</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5592"><a href="#L-5592"><span class="linenos">5592</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span>
+</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</span></a>
+</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
+</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5597"><a href="#L-5597"><span class="linenos">5597</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span>
+</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a>
</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a>
-</span><span id="L-5602"><a href="#L-5602"><span class="linenos">5602</span></a>
-</span><span id="L-5603"><a href="#L-5603"><span class="linenos">5603</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a>
+</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a> <span class="c1"># We don&#39;t set the &quot;alias&quot; arg for Window expressions, because that would add an IDENTIFIER node in</span>
+</span><span id="L-5602"><a href="#L-5602"><span class="linenos">5602</span></a> <span class="c1"># the AST, representing a &quot;named_window&quot; [1] construct (eg. bigquery). What we want is an ALIAS node</span>
+</span><span id="L-5603"><a href="#L-5603"><span class="linenos">5603</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a> <span class="c1">#</span>
+</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a>
+</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a> <span class="k">if</span> <span class="s2">&quot;alias&quot;</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span>
+</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span>
+</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a>
-</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</span></a><span class="sd"> Example:</span>
-</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a><span class="sd"> &gt;&gt;&gt; subquery(&#39;select x from tbl&#39;, &#39;bar&#39;).select(&#39;x&#39;).sql()</span>
-</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a>
-</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a><span class="sd"> Args:</span>
-</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a>
-</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a>
-</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</span></a>
-</span><span id="L-5630"><a href="#L-5630"><span class="linenos">5630</span></a>
-</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-5633"><a href="#L-5633"><span class="linenos">5633</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</span></a>
+</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a>
+</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a><span class="sd"> Example:</span>
+</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="sd"> &gt;&gt;&gt; subquery(&#39;select x from tbl&#39;, &#39;bar&#39;).select(&#39;x&#39;).sql()</span>
+</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a>
+</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a><span class="sd"> Args:</span>
+</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="L-5630"><a href="#L-5630"><span class="linenos">5630</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a>
+</span><span id="L-5633"><a href="#L-5633"><span class="linenos">5633</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a>
+</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a>
</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a>
-</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a><span class="sd"> Args:</span>
-</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a><span class="sd"> col: Column name.</span>
-</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</span></a>
-</span><span id="L-5648"><a href="#L-5648"><span class="linenos">5648</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5651"><a href="#L-5651"><span class="linenos">5651</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</span></a> <span class="p">)</span>
+</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-5648"><a href="#L-5648"><span class="linenos">5648</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</span></a>
+</span><span id="L-5651"><a href="#L-5651"><span class="linenos">5651</span></a><span class="sd"> Args:</span>
+</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a><span class="sd"> col: Column name.</span>
+</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
</span><span id="L-5657"><a href="#L-5657"><span class="linenos">5657</span></a>
-</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a>
-</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a>
-</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a><span class="sd"> Example:</span>
-</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a>
-</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a><span class="sd"> Args:</span>
-</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a>
-</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a> <span class="p">)</span>
+</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a>
+</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a>
+</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a>
+</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a><span class="sd"> Example:</span>
+</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a>
-</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a>
-</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
-</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a><span class="sd"> Args:</span>
+</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a>
+</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</span></a>
-</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</span></a><span class="sd"> Args:</span>
-</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a>
-</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a> <span class="p">)</span>
+</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</span></a>
+</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
+</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</span></a>
+</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a><span class="sd"> Args:</span>
+</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a><span class="sd"> alias: Table&#39;s alias.</span>
</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a>
-</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a>
-</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span>
-</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a>
-</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a><span class="sd"> Example:</span>
-</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</span></a>
-</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</span></a><span class="sd"> Args:</span>
-</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span>
-</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a> <span class="p">)</span>
+</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</span></a>
+</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a>
+</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span>
+</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a>
-</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span>
-</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
-</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a>
-</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">],</span>
-</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
-</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a> <span class="p">),</span>
-</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a> <span class="p">)</span>
-</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</span></a>
+</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a><span class="sd"> Example:</span>
+</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</span></a>
+</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a><span class="sd"> Args:</span>
+</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span>
+</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a>
+</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
</span><span id="L-5736"><a href="#L-5736"><span class="linenos">5736</span></a>
-</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
-</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</span></a>
-</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a><span class="sd"> Example:</span>
-</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a>
-</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">],</span>
+</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
+</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a> <span class="p">),</span>
+</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a> <span class="p">)</span>
+</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a>
</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a>
-</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a><span class="sd"> Args:</span>
-</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a><span class="sd"> name: The name of the var or an expression who&#39;s name will become the var.</span>
+</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
+</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</span></a>
-</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5751"><a href="#L-5751"><span class="linenos">5751</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-5752"><a href="#L-5752"><span class="linenos">5752</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span>
-</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
-</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</span></a>
-</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a><span class="sd"> Example:</span>
+</span><span id="L-5751"><a href="#L-5751"><span class="linenos">5751</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-5752"><a href="#L-5752"><span class="linenos">5752</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a>
+</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a>
+</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a><span class="sd"> Args:</span>
+</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a><span class="sd"> name: The name of the var or an expression who&#39;s name will become the var.</span>
</span><span id="L-5759"><a href="#L-5759"><span class="linenos">5759</span></a>
-</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a>
-</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a>
-</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a><span class="sd"> Args:</span>
-</span><span id="L-5765"><a href="#L-5765"><span class="linenos">5765</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="L-5767"><a href="#L-5767"><span class="linenos">5767</span></a>
-</span><span id="L-5768"><a href="#L-5768"><span class="linenos">5768</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5769"><a href="#L-5769"><span class="linenos">5769</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-5770"><a href="#L-5770"><span class="linenos">5770</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
-</span><span id="L-5772"><a href="#L-5772"><span class="linenos">5772</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-5774"><a href="#L-5774"><span class="linenos">5774</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span>
-</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-5776"><a href="#L-5776"><span class="linenos">5776</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span>
-</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a> <span class="p">],</span>
-</span><span id="L-5778"><a href="#L-5778"><span class="linenos">5778</span></a> <span class="p">)</span>
-</span><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a>
-</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a>
-</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a python value into an expression object.</span>
-</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</span></a>
-</span><span id="L-5784"><a href="#L-5784"><span class="linenos">5784</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="L-5785"><a href="#L-5785"><span class="linenos">5785</span></a>
-</span><span id="L-5786"><a href="#L-5786"><span class="linenos">5786</span></a><span class="sd"> Args:</span>
-</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</span></a><span class="sd"> value: A python object.</span>
-</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span>
+</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
+</span><span id="L-5765"><a href="#L-5765"><span class="linenos">5765</span></a>
+</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5767"><a href="#L-5767"><span class="linenos">5767</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-5768"><a href="#L-5768"><span class="linenos">5768</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-5769"><a href="#L-5769"><span class="linenos">5769</span></a>
+</span><span id="L-5770"><a href="#L-5770"><span class="linenos">5770</span></a>
+</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="L-5772"><a href="#L-5772"><span class="linenos">5772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</span></a>
+</span><span id="L-5774"><a href="#L-5774"><span class="linenos">5774</span></a><span class="sd"> Args:</span>
+</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-5776"><a href="#L-5776"><span class="linenos">5776</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a>
+</span><span id="L-5778"><a href="#L-5778"><span class="linenos">5778</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
+</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-5784"><a href="#L-5784"><span class="linenos">5784</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span>
+</span><span id="L-5785"><a href="#L-5785"><span class="linenos">5785</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-5786"><a href="#L-5786"><span class="linenos">5786</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span>
+</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</span></a> <span class="p">],</span>
+</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a> <span class="p">)</span>
</span><span id="L-5789"><a href="#L-5789"><span class="linenos">5789</span></a>
-</span><span id="L-5790"><a href="#L-5790"><span class="linenos">5790</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5793"><a href="#L-5793"><span class="linenos">5793</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5794"><a href="#L-5794"><span class="linenos">5794</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="L-5797"><a href="#L-5797"><span class="linenos">5797</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
-</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
-</span><span id="L-5799"><a href="#L-5799"><span class="linenos">5799</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
-</span><span id="L-5800"><a href="#L-5800"><span class="linenos">5800</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-5801"><a href="#L-5801"><span class="linenos">5801</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span>
-</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span>
-</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
-</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>
-</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</span></a> <span class="p">)</span>
-</span><span id="L-5807"><a href="#L-5807"><span class="linenos">5807</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span>
-</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span>
-</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
-</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span>
-</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
-</span><span id="L-5812"><a href="#L-5812"><span class="linenos">5812</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-5813"><a href="#L-5813"><span class="linenos">5813</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="L-5814"><a href="#L-5814"><span class="linenos">5814</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-5815"><a href="#L-5815"><span class="linenos">5815</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
-</span><span id="L-5816"><a href="#L-5816"><span class="linenos">5816</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
-</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
-</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</span></a> <span class="p">)</span>
-</span><span id="L-5820"><a href="#L-5820"><span class="linenos">5820</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-5821"><a href="#L-5821"><span class="linenos">5821</span></a>
-</span><span id="L-5822"><a href="#L-5822"><span class="linenos">5822</span></a>
-</span><span id="L-5823"><a href="#L-5823"><span class="linenos">5823</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5825"><a href="#L-5825"><span class="linenos">5825</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -&gt; exp.</span>
-</span><span id="L-5826"><a href="#L-5826"><span class="linenos">5826</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5827"><a href="#L-5827"><span class="linenos">5827</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-5828"><a href="#L-5828"><span class="linenos">5828</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
-</span><span id="L-5829"><a href="#L-5829"><span class="linenos">5829</span></a>
-</span><span id="L-5830"><a href="#L-5830"><span class="linenos">5830</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span>
-</span><span id="L-5831"><a href="#L-5831"><span class="linenos">5831</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-5790"><a href="#L-5790"><span class="linenos">5790</span></a>
+</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a python value into an expression object.</span>
+</span><span id="L-5793"><a href="#L-5793"><span class="linenos">5793</span></a>
+</span><span id="L-5794"><a href="#L-5794"><span class="linenos">5794</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a>
+</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a><span class="sd"> Args:</span>
+</span><span id="L-5797"><a href="#L-5797"><span class="linenos">5797</span></a><span class="sd"> value: A python object.</span>
+</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="L-5799"><a href="#L-5799"><span class="linenos">5799</span></a>
+</span><span id="L-5800"><a href="#L-5800"><span class="linenos">5800</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5801"><a href="#L-5801"><span class="linenos">5801</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="L-5807"><a href="#L-5807"><span class="linenos">5807</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
+</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
+</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
+</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span>
+</span><span id="L-5812"><a href="#L-5812"><span class="linenos">5812</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="L-5813"><a href="#L-5813"><span class="linenos">5813</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span>
+</span><span id="L-5814"><a href="#L-5814"><span class="linenos">5814</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="L-5815"><a href="#L-5815"><span class="linenos">5815</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>
+</span><span id="L-5816"><a href="#L-5816"><span class="linenos">5816</span></a> <span class="p">)</span>
+</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span>
+</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span>
+</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
+</span><span id="L-5820"><a href="#L-5820"><span class="linenos">5820</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span>
+</span><span id="L-5821"><a href="#L-5821"><span class="linenos">5821</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
+</span><span id="L-5822"><a href="#L-5822"><span class="linenos">5822</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-5823"><a href="#L-5823"><span class="linenos">5823</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-5825"><a href="#L-5825"><span class="linenos">5825</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+</span><span id="L-5826"><a href="#L-5826"><span class="linenos">5826</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-5827"><a href="#L-5827"><span class="linenos">5827</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
+</span><span id="L-5828"><a href="#L-5828"><span class="linenos">5828</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
+</span><span id="L-5829"><a href="#L-5829"><span class="linenos">5829</span></a> <span class="p">)</span>
+</span><span id="L-5830"><a href="#L-5830"><span class="linenos">5830</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-5831"><a href="#L-5831"><span class="linenos">5831</span></a>
</span><span id="L-5832"><a href="#L-5832"><span class="linenos">5832</span></a>
-</span><span id="L-5833"><a href="#L-5833"><span class="linenos">5833</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span>
-</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
-</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span>
-</span><span id="L-5837"><a href="#L-5837"><span class="linenos">5837</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
-</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
-</span><span id="L-5839"><a href="#L-5839"><span class="linenos">5839</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5840"><a href="#L-5840"><span class="linenos">5840</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span>
-</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</span></a>
-</span><span id="L-5842"><a href="#L-5842"><span class="linenos">5842</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
-</span><span id="L-5843"><a href="#L-5843"><span class="linenos">5843</span></a>
-</span><span id="L-5844"><a href="#L-5844"><span class="linenos">5844</span></a>
-</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5847"><a href="#L-5847"><span class="linenos">5847</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="L-5848"><a href="#L-5848"><span class="linenos">5848</span></a>
-</span><span id="L-5849"><a href="#L-5849"><span class="linenos">5849</span></a><span class="sd"> Example:</span>
-</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-5851"><a href="#L-5851"><span class="linenos">5851</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
-</span><span id="L-5852"><a href="#L-5852"><span class="linenos">5852</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="L-5833"><a href="#L-5833"><span class="linenos">5833</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -&gt; exp.</span>
+</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5837"><a href="#L-5837"><span class="linenos">5837</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
+</span><span id="L-5839"><a href="#L-5839"><span class="linenos">5839</span></a>
+</span><span id="L-5840"><a href="#L-5840"><span class="linenos">5840</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span>
+</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-5842"><a href="#L-5842"><span class="linenos">5842</span></a>
+</span><span id="L-5843"><a href="#L-5843"><span class="linenos">5843</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span>
+</span><span id="L-5844"><a href="#L-5844"><span class="linenos">5844</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
+</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span>
+</span><span id="L-5847"><a href="#L-5847"><span class="linenos">5847</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
+</span><span id="L-5848"><a href="#L-5848"><span class="linenos">5848</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
+</span><span id="L-5849"><a href="#L-5849"><span class="linenos">5849</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span>
+</span><span id="L-5851"><a href="#L-5851"><span class="linenos">5851</span></a>
+</span><span id="L-5852"><a href="#L-5852"><span class="linenos">5852</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</span></a>
-</span><span id="L-5854"><a href="#L-5854"><span class="linenos">5854</span></a><span class="sd"> Args:</span>
-</span><span id="L-5855"><a href="#L-5855"><span class="linenos">5855</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="L-5856"><a href="#L-5856"><span class="linenos">5856</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a>
-</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5859"><a href="#L-5859"><span class="linenos">5859</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="L-5860"><a href="#L-5860"><span class="linenos">5860</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="L-5862"><a href="#L-5862"><span class="linenos">5862</span></a> <span class="n">table</span>
-</span><span id="L-5863"><a href="#L-5863"><span class="linenos">5863</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
-</span><span id="L-5864"><a href="#L-5864"><span class="linenos">5864</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
-</span><span id="L-5865"><a href="#L-5865"><span class="linenos">5865</span></a> <span class="p">}</span>
-</span><span id="L-5866"><a href="#L-5866"><span class="linenos">5866</span></a>
+</span><span id="L-5854"><a href="#L-5854"><span class="linenos">5854</span></a>
+</span><span id="L-5855"><a href="#L-5855"><span class="linenos">5855</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-5856"><a href="#L-5856"><span class="linenos">5856</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</span></a>
+</span><span id="L-5859"><a href="#L-5859"><span class="linenos">5859</span></a><span class="sd"> Example:</span>
+</span><span id="L-5860"><a href="#L-5860"><span class="linenos">5860</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
+</span><span id="L-5862"><a href="#L-5862"><span class="linenos">5862</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="L-5863"><a href="#L-5863"><span class="linenos">5863</span></a>
+</span><span id="L-5864"><a href="#L-5864"><span class="linenos">5864</span></a><span class="sd"> Args:</span>
+</span><span id="L-5865"><a href="#L-5865"><span class="linenos">5865</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="L-5866"><a href="#L-5866"><span class="linenos">5866</span></a><span class="sd"> exclude: a table name to exclude</span>
</span><span id="L-5867"><a href="#L-5867"><span class="linenos">5867</span></a>
-</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get the full name of a table as a string.</span>
-</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</span></a>
-</span><span id="L-5871"><a href="#L-5871"><span class="linenos">5871</span></a><span class="sd"> Args:</span>
-</span><span id="L-5872"><a href="#L-5872"><span class="linenos">5872</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="L-5874"><a href="#L-5874"><span class="linenos">5874</span></a>
-</span><span id="L-5875"><a href="#L-5875"><span class="linenos">5875</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5876"><a href="#L-5876"><span class="linenos">5876</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</span></a><span class="sd"> &gt;&gt;&gt; table_name(parse_one(&quot;select * from a.b.c&quot;).find(exp.Table))</span>
-</span><span id="L-5878"><a href="#L-5878"><span class="linenos">5878</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</span></a>
-</span><span id="L-5880"><a href="#L-5880"><span class="linenos">5880</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</span></a><span class="sd"> The table name.</span>
-</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5883"><a href="#L-5883"><span class="linenos">5883</span></a>
-</span><span id="L-5884"><a href="#L-5884"><span class="linenos">5884</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="L-5885"><a href="#L-5885"><span class="linenos">5885</span></a>
-</span><span id="L-5886"><a href="#L-5886"><span class="linenos">5886</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-5888"><a href="#L-5888"><span class="linenos">5888</span></a>
-</span><span id="L-5889"><a href="#L-5889"><span class="linenos">5889</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="L-5890"><a href="#L-5890"><span class="linenos">5890</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="L-5894"><a href="#L-5894"><span class="linenos">5894</span></a> <span class="p">)</span>
+</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5871"><a href="#L-5871"><span class="linenos">5871</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="L-5872"><a href="#L-5872"><span class="linenos">5872</span></a> <span class="n">table</span>
+</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
+</span><span id="L-5874"><a href="#L-5874"><span class="linenos">5874</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
+</span><span id="L-5875"><a href="#L-5875"><span class="linenos">5875</span></a> <span class="p">}</span>
+</span><span id="L-5876"><a href="#L-5876"><span class="linenos">5876</span></a>
+</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</span></a>
+</span><span id="L-5878"><a href="#L-5878"><span class="linenos">5878</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get the full name of a table as a string.</span>
+</span><span id="L-5880"><a href="#L-5880"><span class="linenos">5880</span></a>
+</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</span></a><span class="sd"> Args:</span>
+</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="L-5883"><a href="#L-5883"><span class="linenos">5883</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="L-5884"><a href="#L-5884"><span class="linenos">5884</span></a>
+</span><span id="L-5885"><a href="#L-5885"><span class="linenos">5885</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5886"><a href="#L-5886"><span class="linenos">5886</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</span></a><span class="sd"> &gt;&gt;&gt; table_name(parse_one(&quot;select * from a.b.c&quot;).find(exp.Table))</span>
+</span><span id="L-5888"><a href="#L-5888"><span class="linenos">5888</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="L-5889"><a href="#L-5889"><span class="linenos">5889</span></a>
+</span><span id="L-5890"><a href="#L-5890"><span class="linenos">5890</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a><span class="sd"> The table name.</span>
+</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</span></a>
+</span><span id="L-5894"><a href="#L-5894"><span class="linenos">5894</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
</span><span id="L-5895"><a href="#L-5895"><span class="linenos">5895</span></a>
-</span><span id="L-5896"><a href="#L-5896"><span class="linenos">5896</span></a>
-</span><span id="L-5897"><a href="#L-5897"><span class="linenos">5897</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5898"><a href="#L-5898"><span class="linenos">5898</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace all tables in expression according to the mapping.</span>
-</span><span id="L-5899"><a href="#L-5899"><span class="linenos">5899</span></a>
-</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</span></a><span class="sd"> Args:</span>
-</span><span id="L-5901"><a href="#L-5901"><span class="linenos">5901</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a>
-</span><span id="L-5905"><a href="#L-5905"><span class="linenos">5905</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5906"><a href="#L-5906"><span class="linenos">5906</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5907"><a href="#L-5907"><span class="linenos">5907</span></a><span class="sd"> &gt;&gt;&gt; replace_tables(parse_one(&quot;select * from a.b&quot;), {&quot;a.b&quot;: &quot;c&quot;}).sql()</span>
-</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="L-5896"><a href="#L-5896"><span class="linenos">5896</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5897"><a href="#L-5897"><span class="linenos">5897</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-5898"><a href="#L-5898"><span class="linenos">5898</span></a>
+</span><span id="L-5899"><a href="#L-5899"><span class="linenos">5899</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-5901"><a href="#L-5901"><span class="linenos">5901</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a> <span class="p">)</span>
+</span><span id="L-5905"><a href="#L-5905"><span class="linenos">5905</span></a>
+</span><span id="L-5906"><a href="#L-5906"><span class="linenos">5906</span></a>
+</span><span id="L-5907"><a href="#L-5907"><span class="linenos">5907</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace all tables in expression according to the mapping.</span>
</span><span id="L-5909"><a href="#L-5909"><span class="linenos">5909</span></a>
-</span><span id="L-5910"><a href="#L-5910"><span class="linenos">5910</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5913"><a href="#L-5913"><span class="linenos">5913</span></a>
-</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5915"><a href="#L-5915"><span class="linenos">5915</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
-</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="L-5919"><a href="#L-5919"><span class="linenos">5919</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
-</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a> <span class="p">)</span>
-</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5910"><a href="#L-5910"><span class="linenos">5910</span></a><span class="sd"> Args:</span>
+</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="L-5913"><a href="#L-5913"><span class="linenos">5913</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</span></a>
+</span><span id="L-5915"><a href="#L-5915"><span class="linenos">5915</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a><span class="sd"> &gt;&gt;&gt; replace_tables(parse_one(&quot;select * from a.b&quot;), {&quot;a.b&quot;: &quot;c&quot;}).sql()</span>
+</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="L-5919"><a href="#L-5919"><span class="linenos">5919</span></a>
+</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5923"><a href="#L-5923"><span class="linenos">5923</span></a>
-</span><span id="L-5924"><a href="#L-5924"><span class="linenos">5924</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="L-5925"><a href="#L-5925"><span class="linenos">5925</span></a>
-</span><span id="L-5926"><a href="#L-5926"><span class="linenos">5926</span></a>
-</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a>
-</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</span></a><span class="sd"> Args:</span>
-</span><span id="L-5931"><a href="#L-5931"><span class="linenos">5931</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-5933"><a href="#L-5933"><span class="linenos">5933</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</span></a>
-</span><span id="L-5935"><a href="#L-5935"><span class="linenos">5935</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5936"><a href="#L-5936"><span class="linenos">5936</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-5937"><a href="#L-5937"><span class="linenos">5937</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-5938"><a href="#L-5938"><span class="linenos">5938</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
-</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-5941"><a href="#L-5941"><span class="linenos">5941</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</span></a>
-</span><span id="L-5943"><a href="#L-5943"><span class="linenos">5943</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5944"><a href="#L-5944"><span class="linenos">5944</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5946"><a href="#L-5946"><span class="linenos">5946</span></a>
-</span><span id="L-5947"><a href="#L-5947"><span class="linenos">5947</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5948"><a href="#L-5948"><span class="linenos">5948</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span>
-</span><span id="L-5949"><a href="#L-5949"><span class="linenos">5949</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
-</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-5955"><a href="#L-5955"><span class="linenos">5955</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
-</span><span id="L-5956"><a href="#L-5956"><span class="linenos">5956</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-5957"><a href="#L-5957"><span class="linenos">5957</span></a> <span class="k">pass</span>
-</span><span id="L-5958"><a href="#L-5958"><span class="linenos">5958</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-5959"><a href="#L-5959"><span class="linenos">5959</span></a>
-</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a>
-</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a>
-</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Transforms an expression by expanding all referenced sources into subqueries.</span>
-</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</span></a>
-</span><span id="L-5968"><a href="#L-5968"><span class="linenos">5968</span></a><span class="sd"> Examples:</span>
-</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;)}).sql()</span>
-</span><span id="L-5971"><a href="#L-5971"><span class="linenos">5971</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-5924"><a href="#L-5924"><span class="linenos">5924</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5925"><a href="#L-5925"><span class="linenos">5925</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="L-5926"><a href="#L-5926"><span class="linenos">5926</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
+</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
+</span><span id="L-5931"><a href="#L-5931"><span class="linenos">5931</span></a> <span class="p">)</span>
+</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5933"><a href="#L-5933"><span class="linenos">5933</span></a>
+</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-5935"><a href="#L-5935"><span class="linenos">5935</span></a>
+</span><span id="L-5936"><a href="#L-5936"><span class="linenos">5936</span></a>
+</span><span id="L-5937"><a href="#L-5937"><span class="linenos">5937</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5938"><a href="#L-5938"><span class="linenos">5938</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a>
+</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a><span class="sd"> Args:</span>
+</span><span id="L-5941"><a href="#L-5941"><span class="linenos">5941</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-5943"><a href="#L-5943"><span class="linenos">5943</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="L-5944"><a href="#L-5944"><span class="linenos">5944</span></a>
+</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5946"><a href="#L-5946"><span class="linenos">5946</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-5947"><a href="#L-5947"><span class="linenos">5947</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-5948"><a href="#L-5948"><span class="linenos">5948</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="L-5949"><a href="#L-5949"><span class="linenos">5949</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
+</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</span></a>
+</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-5955"><a href="#L-5955"><span class="linenos">5955</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5956"><a href="#L-5956"><span class="linenos">5956</span></a>
+</span><span id="L-5957"><a href="#L-5957"><span class="linenos">5957</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5958"><a href="#L-5958"><span class="linenos">5958</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span>
+</span><span id="L-5959"><a href="#L-5959"><span class="linenos">5959</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
+</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</span></a> <span class="k">pass</span>
+</span><span id="L-5968"><a href="#L-5968"><span class="linenos">5968</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a>
+</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-5971"><a href="#L-5971"><span class="linenos">5971</span></a>
</span><span id="L-5972"><a href="#L-5972"><span class="linenos">5972</span></a>
-</span><span id="L-5973"><a href="#L-5973"><span class="linenos">5973</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
-</span><span id="L-5974"><a href="#L-5974"><span class="linenos">5974</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
-</span><span id="L-5975"><a href="#L-5975"><span class="linenos">5975</span></a>
-</span><span id="L-5976"><a href="#L-5976"><span class="linenos">5976</span></a><span class="sd"> Args:</span>
-</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-5978"><a href="#L-5978"><span class="linenos">5978</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a>
-</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</span></a>
-</span><span id="L-5985"><a href="#L-5985"><span class="linenos">5985</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5986"><a href="#L-5986"><span class="linenos">5986</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="L-5987"><a href="#L-5987"><span class="linenos">5987</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="L-5988"><a href="#L-5988"><span class="linenos">5988</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span>
-</span><span id="L-5991"><a href="#L-5991"><span class="linenos">5991</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">]</span>
-</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-5973"><a href="#L-5973"><span class="linenos">5973</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="L-5974"><a href="#L-5974"><span class="linenos">5974</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5975"><a href="#L-5975"><span class="linenos">5975</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5976"><a href="#L-5976"><span class="linenos">5976</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Transforms an expression by expanding all referenced sources into subqueries.</span>
+</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</span></a>
+</span><span id="L-5978"><a href="#L-5978"><span class="linenos">5978</span></a><span class="sd"> Examples:</span>
+</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;)}).sql()</span>
+</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a>
+</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
+</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
+</span><span id="L-5985"><a href="#L-5985"><span class="linenos">5985</span></a>
+</span><span id="L-5986"><a href="#L-5986"><span class="linenos">5986</span></a><span class="sd"> Args:</span>
+</span><span id="L-5987"><a href="#L-5987"><span class="linenos">5987</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-5988"><a href="#L-5988"><span class="linenos">5988</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a>
+</span><span id="L-5991"><a href="#L-5991"><span class="linenos">5991</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5994"><a href="#L-5994"><span class="linenos">5994</span></a>
-</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a>
-</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</span></a>
-</span><span id="L-5998"><a href="#L-5998"><span class="linenos">5998</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="L-5999"><a href="#L-5999"><span class="linenos">5999</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a>
-</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="L-6005"><a href="#L-6005"><span class="linenos">6005</span></a>
-</span><span id="L-6006"><a href="#L-6006"><span class="linenos">6006</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
-</span><span id="L-6007"><a href="#L-6007"><span class="linenos">6007</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a>
-</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</span></a><span class="sd"> Args:</span>
-</span><span id="L-6010"><a href="#L-6010"><span class="linenos">6010</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-6013"><a href="#L-6013"><span class="linenos">6013</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-6014"><a href="#L-6014"><span class="linenos">6014</span></a>
-</span><span id="L-6015"><a href="#L-6015"><span class="linenos">6015</span></a><span class="sd"> Note:</span>
-</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a>
-</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6019"><a href="#L-6019"><span class="linenos">6019</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
-</span><span id="L-6020"><a href="#L-6020"><span class="linenos">6020</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span>
-</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t use both args and kwargs to instantiate a function.&quot;</span><span class="p">)</span>
+</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-5998"><a href="#L-5998"><span class="linenos">5998</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-5999"><a href="#L-5999"><span class="linenos">5999</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span>
+</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">]</span>
+</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</span></a>
+</span><span id="L-6005"><a href="#L-6005"><span class="linenos">6005</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-6006"><a href="#L-6006"><span class="linenos">6006</span></a>
+</span><span id="L-6007"><a href="#L-6007"><span class="linenos">6007</span></a>
+</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6010"><a href="#L-6010"><span class="linenos">6010</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a>
+</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6013"><a href="#L-6013"><span class="linenos">6013</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-6014"><a href="#L-6014"><span class="linenos">6014</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="L-6015"><a href="#L-6015"><span class="linenos">6015</span></a>
+</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
+</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</span></a>
+</span><span id="L-6019"><a href="#L-6019"><span class="linenos">6019</span></a><span class="sd"> Args:</span>
+</span><span id="L-6020"><a href="#L-6020"><span class="linenos">6020</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
</span><span id="L-6024"><a href="#L-6024"><span class="linenos">6024</span></a>
-</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</span></a>
-</span><span id="L-6027"><a href="#L-6027"><span class="linenos">6027</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</span></a>
-</span><span id="L-6030"><a href="#L-6030"><span class="linenos">6030</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
-</span><span id="L-6031"><a href="#L-6031"><span class="linenos">6031</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a>
-</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6036"><a href="#L-6036"><span class="linenos">6036</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span>
-</span><span id="L-6037"><a href="#L-6037"><span class="linenos">6037</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</span></a>
-</span><span id="L-6039"><a href="#L-6039"><span class="linenos">6039</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span>
-</span><span id="L-6040"><a href="#L-6040"><span class="linenos">6040</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span>
-</span><span id="L-6041"><a href="#L-6041"><span class="linenos">6041</span></a>
-</span><span id="L-6042"><a href="#L-6042"><span class="linenos">6042</span></a> <span class="k">return</span> <span class="n">function</span>
-</span><span id="L-6043"><a href="#L-6043"><span class="linenos">6043</span></a>
-</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a>
-</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="L-6046"><a href="#L-6046"><span class="linenos">6046</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6049"><a href="#L-6049"><span class="linenos">6049</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-6050"><a href="#L-6050"><span class="linenos">6050</span></a>
+</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a><span class="sd"> Note:</span>
+</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="L-6027"><a href="#L-6027"><span class="linenos">6027</span></a>
+</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
+</span><span id="L-6030"><a href="#L-6030"><span class="linenos">6030</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-6031"><a href="#L-6031"><span class="linenos">6031</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span>
+</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t use both args and kwargs to instantiate a function.&quot;</span><span class="p">)</span>
+</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a>
+</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="L-6036"><a href="#L-6036"><span class="linenos">6036</span></a>
+</span><span id="L-6037"><a href="#L-6037"><span class="linenos">6037</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-6039"><a href="#L-6039"><span class="linenos">6039</span></a>
+</span><span id="L-6040"><a href="#L-6040"><span class="linenos">6040</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
+</span><span id="L-6041"><a href="#L-6041"><span class="linenos">6041</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="L-6042"><a href="#L-6042"><span class="linenos">6042</span></a>
+</span><span id="L-6043"><a href="#L-6043"><span class="linenos">6043</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6046"><a href="#L-6046"><span class="linenos">6046</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span>
+</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</span></a>
+</span><span id="L-6049"><a href="#L-6049"><span class="linenos">6049</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span>
+</span><span id="L-6050"><a href="#L-6050"><span class="linenos">6050</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span>
</span><span id="L-6051"><a href="#L-6051"><span class="linenos">6051</span></a>
-</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="L-6053"><a href="#L-6053"><span class="linenos">6053</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6054"><a href="#L-6054"><span class="linenos">6054</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="L-6055"><a href="#L-6055"><span class="linenos">6055</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6056"><a href="#L-6056"><span class="linenos">6056</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a>
-</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</span></a>
-</span><span id="L-6059"><a href="#L-6059"><span class="linenos">6059</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
-</span><span id="L-6060"><a href="#L-6060"><span class="linenos">6060</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6061"><a href="#L-6061"><span class="linenos">6061</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="L-6062"><a href="#L-6062"><span class="linenos">6062</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6063"><a href="#L-6063"><span class="linenos">6063</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
-</span><span id="L-6064"><a href="#L-6064"><span class="linenos">6064</span></a>
-</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a>
-</span><span id="L-6066"><a href="#L-6066"><span class="linenos">6066</span></a><span class="c1"># TODO: deprecate this</span>
-</span><span id="L-6067"><a href="#L-6067"><span class="linenos">6067</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-6068"><a href="#L-6068"><span class="linenos">6068</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-6069"><a href="#L-6069"><span class="linenos">6069</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-6053"><a href="#L-6053"><span class="linenos">6053</span></a>
+</span><span id="L-6054"><a href="#L-6054"><span class="linenos">6054</span></a>
+</span><span id="L-6055"><a href="#L-6055"><span class="linenos">6055</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="L-6056"><a href="#L-6056"><span class="linenos">6056</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6059"><a href="#L-6059"><span class="linenos">6059</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-6060"><a href="#L-6060"><span class="linenos">6060</span></a>
+</span><span id="L-6061"><a href="#L-6061"><span class="linenos">6061</span></a>
+</span><span id="L-6062"><a href="#L-6062"><span class="linenos">6062</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="L-6063"><a href="#L-6063"><span class="linenos">6063</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6064"><a href="#L-6064"><span class="linenos">6064</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6066"><a href="#L-6066"><span class="linenos">6066</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-6067"><a href="#L-6067"><span class="linenos">6067</span></a>
+</span><span id="L-6068"><a href="#L-6068"><span class="linenos">6068</span></a>
+</span><span id="L-6069"><a href="#L-6069"><span class="linenos">6069</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
+</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6073"><a href="#L-6073"><span class="linenos">6073</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-6074"><a href="#L-6074"><span class="linenos">6074</span></a>
+</span><span id="L-6075"><a href="#L-6075"><span class="linenos">6075</span></a>
+</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</span></a><span class="c1"># TODO: deprecate this</span>
+</span><span id="L-6077"><a href="#L-6077"><span class="linenos">6077</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-6079"><a href="#L-6079"><span class="linenos">6079</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -12051,469 +12061,476 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</span><span id="Expression-193"><a href="#Expression-193"><span class="linenos">193</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
</span><span id="Expression-194"><a href="#Expression-194"><span class="linenos">194</span></a>
</span><span id="Expression-195"><a href="#Expression-195"><span class="linenos">195</span></a> <span class="nd">@property</span>
-</span><span id="Expression-196"><a href="#Expression-196"><span class="linenos">196</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-197"><a href="#Expression-197"><span class="linenos">197</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</span></a>
-</span><span id="Expression-199"><a href="#Expression-199"><span class="linenos">199</span></a> <span class="nd">@property</span>
-</span><span id="Expression-200"><a href="#Expression-200"><span class="linenos">200</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-201"><a href="#Expression-201"><span class="linenos">201</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Expression-202"><a href="#Expression-202"><span class="linenos">202</span></a>
-</span><span id="Expression-203"><a href="#Expression-203"><span class="linenos">203</span></a> <span class="nd">@property</span>
-</span><span id="Expression-204"><a href="#Expression-204"><span class="linenos">204</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-205"><a href="#Expression-205"><span class="linenos">205</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-206"><a href="#Expression-206"><span class="linenos">206</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
-</span><span id="Expression-207"><a href="#Expression-207"><span class="linenos">207</span></a>
-</span><span id="Expression-208"><a href="#Expression-208"><span class="linenos">208</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="Expression-196"><a href="#Expression-196"><span class="linenos">196</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression-197"><a href="#Expression-197"><span class="linenos">197</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
+</span><span id="Expression-199"><a href="#Expression-199"><span class="linenos">199</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Expression-200"><a href="#Expression-200"><span class="linenos">200</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
+</span><span id="Expression-201"><a href="#Expression-201"><span class="linenos">201</span></a>
+</span><span id="Expression-202"><a href="#Expression-202"><span class="linenos">202</span></a> <span class="nd">@property</span>
+</span><span id="Expression-203"><a href="#Expression-203"><span class="linenos">203</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-204"><a href="#Expression-204"><span class="linenos">204</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="Expression-205"><a href="#Expression-205"><span class="linenos">205</span></a>
+</span><span id="Expression-206"><a href="#Expression-206"><span class="linenos">206</span></a> <span class="nd">@property</span>
+</span><span id="Expression-207"><a href="#Expression-207"><span class="linenos">207</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-208"><a href="#Expression-208"><span class="linenos">208</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="Expression-209"><a href="#Expression-209"><span class="linenos">209</span></a>
-</span><span id="Expression-210"><a href="#Expression-210"><span class="linenos">210</span></a><span class="sd"> Example:</span>
-</span><span id="Expression-211"><a href="#Expression-211"><span class="linenos">211</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="Expression-212"><a href="#Expression-212"><span class="linenos">212</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
-</span><span id="Expression-213"><a href="#Expression-213"><span class="linenos">213</span></a><span class="sd"> &#39;a&#39;</span>
-</span><span id="Expression-214"><a href="#Expression-214"><span class="linenos">214</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
-</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a><span class="sd"> &#39;c&#39;</span>
-</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
-</span><span id="Expression-217"><a href="#Expression-217"><span class="linenos">217</span></a><span class="sd"> &#39;&#39;</span>
-</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-219"><a href="#Expression-219"><span class="linenos">219</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a>
-</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a> <span class="nd">@property</span>
-</span><span id="Expression-222"><a href="#Expression-222"><span class="linenos">222</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
-</span><span id="Expression-223"><a href="#Expression-223"><span class="linenos">223</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
-</span><span id="Expression-224"><a href="#Expression-224"><span class="linenos">224</span></a>
-</span><span id="Expression-225"><a href="#Expression-225"><span class="linenos">225</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
-</span><span id="Expression-226"><a href="#Expression-226"><span class="linenos">226</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-227"><a href="#Expression-227"><span class="linenos">227</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="Expression-228"><a href="#Expression-228"><span class="linenos">228</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="Expression-229"><a href="#Expression-229"><span class="linenos">229</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
-</span><span id="Expression-230"><a href="#Expression-230"><span class="linenos">230</span></a>
-</span><span id="Expression-231"><a href="#Expression-231"><span class="linenos">231</span></a> <span class="nd">@property</span>
-</span><span id="Expression-232"><a href="#Expression-232"><span class="linenos">232</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
-</span><span id="Expression-233"><a href="#Expression-233"><span class="linenos">233</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-234"><a href="#Expression-234"><span class="linenos">234</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="Expression-235"><a href="#Expression-235"><span class="linenos">235</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
-</span><span id="Expression-236"><a href="#Expression-236"><span class="linenos">236</span></a>
-</span><span id="Expression-237"><a href="#Expression-237"><span class="linenos">237</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
-</span><span id="Expression-238"><a href="#Expression-238"><span class="linenos">238</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
-</span><span id="Expression-239"><a href="#Expression-239"><span class="linenos">239</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-240"><a href="#Expression-240"><span class="linenos">240</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
-</span><span id="Expression-241"><a href="#Expression-241"><span class="linenos">241</span></a>
-</span><span id="Expression-242"><a href="#Expression-242"><span class="linenos">242</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-243"><a href="#Expression-243"><span class="linenos">243</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="Expression-244"><a href="#Expression-244"><span class="linenos">244</span></a>
-</span><span id="Expression-245"><a href="#Expression-245"><span class="linenos">245</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-246"><a href="#Expression-246"><span class="linenos">246</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
-</span><span id="Expression-247"><a href="#Expression-247"><span class="linenos">247</span></a>
-</span><span id="Expression-248"><a href="#Expression-248"><span class="linenos">248</span></a> <span class="k">return</span> <span class="n">copy</span>
-</span><span id="Expression-249"><a href="#Expression-249"><span class="linenos">249</span></a>
-</span><span id="Expression-250"><a href="#Expression-250"><span class="linenos">250</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-251"><a href="#Expression-251"><span class="linenos">251</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-252"><a href="#Expression-252"><span class="linenos">252</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="Expression-253"><a href="#Expression-253"><span class="linenos">253</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="Expression-255"><a href="#Expression-255"><span class="linenos">255</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</span></a> <span class="k">return</span> <span class="n">new</span>
-</span><span id="Expression-257"><a href="#Expression-257"><span class="linenos">257</span></a>
-</span><span id="Expression-258"><a href="#Expression-258"><span class="linenos">258</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-259"><a href="#Expression-259"><span class="linenos">259</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-260"><a href="#Expression-260"><span class="linenos">260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression-261"><a href="#Expression-261"><span class="linenos">261</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="Expression-262"><a href="#Expression-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
-</span><span id="Expression-263"><a href="#Expression-263"><span class="linenos">263</span></a>
-</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-265"><a href="#Expression-265"><span class="linenos">265</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-266"><a href="#Expression-266"><span class="linenos">266</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
-</span><span id="Expression-267"><a href="#Expression-267"><span class="linenos">267</span></a>
-</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-269"><a href="#Expression-269"><span class="linenos">269</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="Expression-271"><a href="#Expression-271"><span class="linenos">271</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-272"><a href="#Expression-272"><span class="linenos">272</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="Expression-273"><a href="#Expression-273"><span class="linenos">273</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression-274"><a href="#Expression-274"><span class="linenos">274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="Expression-275"><a href="#Expression-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="Expression-276"><a href="#Expression-276"><span class="linenos">276</span></a>
-</span><span id="Expression-277"><a href="#Expression-277"><span class="linenos">277</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-278"><a href="#Expression-278"><span class="linenos">278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-279"><a href="#Expression-279"><span class="linenos">279</span></a><span class="sd"> Sets arg_key to value.</span>
-</span><span id="Expression-280"><a href="#Expression-280"><span class="linenos">280</span></a>
-</span><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a><span class="sd"> arg_key: name of the expression arg.</span>
-</span><span id="Expression-283"><a href="#Expression-283"><span class="linenos">283</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="Expression-284"><a href="#Expression-284"><span class="linenos">284</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-285"><a href="#Expression-285"><span class="linenos">285</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-286"><a href="#Expression-286"><span class="linenos">286</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</span></a> <span class="k">return</span>
-</span><span id="Expression-288"><a href="#Expression-288"><span class="linenos">288</span></a>
-</span><span id="Expression-289"><a href="#Expression-289"><span class="linenos">289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="Expression-290"><a href="#Expression-290"><span class="linenos">290</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
-</span><span id="Expression-291"><a href="#Expression-291"><span class="linenos">291</span></a>
-</span><span id="Expression-292"><a href="#Expression-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-293"><a href="#Expression-293"><span class="linenos">293</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-294"><a href="#Expression-294"><span class="linenos">294</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-295"><a href="#Expression-295"><span class="linenos">295</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="Expression-296"><a href="#Expression-296"><span class="linenos">296</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="Expression-297"><a href="#Expression-297"><span class="linenos">297</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
-</span><span id="Expression-298"><a href="#Expression-298"><span class="linenos">298</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-299"><a href="#Expression-299"><span class="linenos">299</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
-</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</span></a>
-</span><span id="Expression-302"><a href="#Expression-302"><span class="linenos">302</span></a> <span class="nd">@property</span>
-</span><span id="Expression-303"><a href="#Expression-303"><span class="linenos">303</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
-</span><span id="Expression-304"><a href="#Expression-304"><span class="linenos">304</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-305"><a href="#Expression-305"><span class="linenos">305</span></a><span class="sd"> Returns the depth of this tree.</span>
-</span><span id="Expression-306"><a href="#Expression-306"><span class="linenos">306</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-307"><a href="#Expression-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression-308"><a href="#Expression-308"><span class="linenos">308</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
-</span><span id="Expression-309"><a href="#Expression-309"><span class="linenos">309</span></a> <span class="k">return</span> <span class="mi">0</span>
-</span><span id="Expression-310"><a href="#Expression-310"><span class="linenos">310</span></a>
-</span><span id="Expression-311"><a href="#Expression-311"><span class="linenos">311</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
-</span><span id="Expression-312"><a href="#Expression-312"><span class="linenos">312</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
-</span><span id="Expression-313"><a href="#Expression-313"><span class="linenos">313</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression-314"><a href="#Expression-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="Expression-315"><a href="#Expression-315"><span class="linenos">315</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
-</span><span id="Expression-316"><a href="#Expression-316"><span class="linenos">316</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
-</span><span id="Expression-318"><a href="#Expression-318"><span class="linenos">318</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression-319"><a href="#Expression-319"><span class="linenos">319</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression-320"><a href="#Expression-320"><span class="linenos">320</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
-</span><span id="Expression-321"><a href="#Expression-321"><span class="linenos">321</span></a>
-</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression-323"><a href="#Expression-323"><span class="linenos">323</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-324"><a href="#Expression-324"><span class="linenos">324</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a><span class="sd"> the specified types.</span>
-</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a>
-</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-328"><a href="#Expression-328"><span class="linenos">328</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression-330"><a href="#Expression-330"><span class="linenos">330</span></a>
-</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="Expression-333"><a href="#Expression-333"><span class="linenos">333</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-335"><a href="#Expression-335"><span class="linenos">335</span></a>
-</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-338"><a href="#Expression-338"><span class="linenos">338</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="Expression-339"><a href="#Expression-339"><span class="linenos">339</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</span></a>
-</span><span id="Expression-341"><a href="#Expression-341"><span class="linenos">341</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-342"><a href="#Expression-342"><span class="linenos">342</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression-343"><a href="#Expression-343"><span class="linenos">343</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression-344"><a href="#Expression-344"><span class="linenos">344</span></a>
-</span><span id="Expression-345"><a href="#Expression-345"><span class="linenos">345</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-346"><a href="#Expression-346"><span class="linenos">346</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-347"><a href="#Expression-347"><span class="linenos">347</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-348"><a href="#Expression-348"><span class="linenos">348</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
-</span><span id="Expression-349"><a href="#Expression-349"><span class="linenos">349</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression-350"><a href="#Expression-350"><span class="linenos">350</span></a> <span class="k">yield</span> <span class="n">expression</span>
+</span><span id="Expression-210"><a href="#Expression-210"><span class="linenos">210</span></a> <span class="nd">@property</span>
+</span><span id="Expression-211"><a href="#Expression-211"><span class="linenos">211</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-212"><a href="#Expression-212"><span class="linenos">212</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-213"><a href="#Expression-213"><span class="linenos">213</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
+</span><span id="Expression-214"><a href="#Expression-214"><span class="linenos">214</span></a>
+</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
+</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</span></a>
+</span><span id="Expression-217"><a href="#Expression-217"><span class="linenos">217</span></a><span class="sd"> Example:</span>
+</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="Expression-219"><a href="#Expression-219"><span class="linenos">219</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
+</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a><span class="sd"> &#39;a&#39;</span>
+</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
+</span><span id="Expression-222"><a href="#Expression-222"><span class="linenos">222</span></a><span class="sd"> &#39;c&#39;</span>
+</span><span id="Expression-223"><a href="#Expression-223"><span class="linenos">223</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
+</span><span id="Expression-224"><a href="#Expression-224"><span class="linenos">224</span></a><span class="sd"> &#39;&#39;</span>
+</span><span id="Expression-225"><a href="#Expression-225"><span class="linenos">225</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-226"><a href="#Expression-226"><span class="linenos">226</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Expression-227"><a href="#Expression-227"><span class="linenos">227</span></a>
+</span><span id="Expression-228"><a href="#Expression-228"><span class="linenos">228</span></a> <span class="nd">@property</span>
+</span><span id="Expression-229"><a href="#Expression-229"><span class="linenos">229</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
+</span><span id="Expression-230"><a href="#Expression-230"><span class="linenos">230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
+</span><span id="Expression-231"><a href="#Expression-231"><span class="linenos">231</span></a>
+</span><span id="Expression-232"><a href="#Expression-232"><span class="linenos">232</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
+</span><span id="Expression-233"><a href="#Expression-233"><span class="linenos">233</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-234"><a href="#Expression-234"><span class="linenos">234</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="Expression-235"><a href="#Expression-235"><span class="linenos">235</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="Expression-236"><a href="#Expression-236"><span class="linenos">236</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
+</span><span id="Expression-237"><a href="#Expression-237"><span class="linenos">237</span></a>
+</span><span id="Expression-238"><a href="#Expression-238"><span class="linenos">238</span></a> <span class="nd">@property</span>
+</span><span id="Expression-239"><a href="#Expression-239"><span class="linenos">239</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
+</span><span id="Expression-240"><a href="#Expression-240"><span class="linenos">240</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-241"><a href="#Expression-241"><span class="linenos">241</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="Expression-242"><a href="#Expression-242"><span class="linenos">242</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
+</span><span id="Expression-243"><a href="#Expression-243"><span class="linenos">243</span></a>
+</span><span id="Expression-244"><a href="#Expression-244"><span class="linenos">244</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
+</span><span id="Expression-245"><a href="#Expression-245"><span class="linenos">245</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
+</span><span id="Expression-246"><a href="#Expression-246"><span class="linenos">246</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-247"><a href="#Expression-247"><span class="linenos">247</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
+</span><span id="Expression-248"><a href="#Expression-248"><span class="linenos">248</span></a>
+</span><span id="Expression-249"><a href="#Expression-249"><span class="linenos">249</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-250"><a href="#Expression-250"><span class="linenos">250</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="Expression-251"><a href="#Expression-251"><span class="linenos">251</span></a>
+</span><span id="Expression-252"><a href="#Expression-252"><span class="linenos">252</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-253"><a href="#Expression-253"><span class="linenos">253</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
+</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</span></a>
+</span><span id="Expression-255"><a href="#Expression-255"><span class="linenos">255</span></a> <span class="k">return</span> <span class="n">copy</span>
+</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</span></a>
+</span><span id="Expression-257"><a href="#Expression-257"><span class="linenos">257</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-258"><a href="#Expression-258"><span class="linenos">258</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-259"><a href="#Expression-259"><span class="linenos">259</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="Expression-260"><a href="#Expression-260"><span class="linenos">260</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-261"><a href="#Expression-261"><span class="linenos">261</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="Expression-262"><a href="#Expression-262"><span class="linenos">262</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-263"><a href="#Expression-263"><span class="linenos">263</span></a> <span class="k">return</span> <span class="n">new</span>
+</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</span></a>
+</span><span id="Expression-265"><a href="#Expression-265"><span class="linenos">265</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-266"><a href="#Expression-266"><span class="linenos">266</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-267"><a href="#Expression-267"><span class="linenos">267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression-269"><a href="#Expression-269"><span class="linenos">269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
+</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</span></a>
+</span><span id="Expression-271"><a href="#Expression-271"><span class="linenos">271</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-272"><a href="#Expression-272"><span class="linenos">272</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-273"><a href="#Expression-273"><span class="linenos">273</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
+</span><span id="Expression-274"><a href="#Expression-274"><span class="linenos">274</span></a>
+</span><span id="Expression-275"><a href="#Expression-275"><span class="linenos">275</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-276"><a href="#Expression-276"><span class="linenos">276</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="Expression-277"><a href="#Expression-277"><span class="linenos">277</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="Expression-278"><a href="#Expression-278"><span class="linenos">278</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-279"><a href="#Expression-279"><span class="linenos">279</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="Expression-280"><a href="#Expression-280"><span class="linenos">280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-283"><a href="#Expression-283"><span class="linenos">283</span></a>
+</span><span id="Expression-284"><a href="#Expression-284"><span class="linenos">284</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-285"><a href="#Expression-285"><span class="linenos">285</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-286"><a href="#Expression-286"><span class="linenos">286</span></a><span class="sd"> Sets arg_key to value.</span>
+</span><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</span></a>
+</span><span id="Expression-288"><a href="#Expression-288"><span class="linenos">288</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-289"><a href="#Expression-289"><span class="linenos">289</span></a><span class="sd"> arg_key: name of the expression arg.</span>
+</span><span id="Expression-290"><a href="#Expression-290"><span class="linenos">290</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="Expression-291"><a href="#Expression-291"><span class="linenos">291</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-292"><a href="#Expression-292"><span class="linenos">292</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-293"><a href="#Expression-293"><span class="linenos">293</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-294"><a href="#Expression-294"><span class="linenos">294</span></a> <span class="k">return</span>
+</span><span id="Expression-295"><a href="#Expression-295"><span class="linenos">295</span></a>
+</span><span id="Expression-296"><a href="#Expression-296"><span class="linenos">296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="Expression-297"><a href="#Expression-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+</span><span id="Expression-298"><a href="#Expression-298"><span class="linenos">298</span></a>
+</span><span id="Expression-299"><a href="#Expression-299"><span class="linenos">299</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-302"><a href="#Expression-302"><span class="linenos">302</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="Expression-303"><a href="#Expression-303"><span class="linenos">303</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="Expression-304"><a href="#Expression-304"><span class="linenos">304</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
+</span><span id="Expression-305"><a href="#Expression-305"><span class="linenos">305</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-306"><a href="#Expression-306"><span class="linenos">306</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-307"><a href="#Expression-307"><span class="linenos">307</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
+</span><span id="Expression-308"><a href="#Expression-308"><span class="linenos">308</span></a>
+</span><span id="Expression-309"><a href="#Expression-309"><span class="linenos">309</span></a> <span class="nd">@property</span>
+</span><span id="Expression-310"><a href="#Expression-310"><span class="linenos">310</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
+</span><span id="Expression-311"><a href="#Expression-311"><span class="linenos">311</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-312"><a href="#Expression-312"><span class="linenos">312</span></a><span class="sd"> Returns the depth of this tree.</span>
+</span><span id="Expression-313"><a href="#Expression-313"><span class="linenos">313</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-314"><a href="#Expression-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression-315"><a href="#Expression-315"><span class="linenos">315</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
+</span><span id="Expression-316"><a href="#Expression-316"><span class="linenos">316</span></a> <span class="k">return</span> <span class="mi">0</span>
+</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</span></a>
+</span><span id="Expression-318"><a href="#Expression-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
+</span><span id="Expression-319"><a href="#Expression-319"><span class="linenos">319</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
+</span><span id="Expression-320"><a href="#Expression-320"><span class="linenos">320</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression-321"><a href="#Expression-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
+</span><span id="Expression-323"><a href="#Expression-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-324"><a href="#Expression-324"><span class="linenos">324</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
+</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
+</span><span id="Expression-328"><a href="#Expression-328"><span class="linenos">328</span></a>
+</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression-330"><a href="#Expression-330"><span class="linenos">330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</span></a><span class="sd"> the specified types.</span>
+</span><span id="Expression-333"><a href="#Expression-333"><span class="linenos">333</span></a>
+</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-335"><a href="#Expression-335"><span class="linenos">335</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a>
+</span><span id="Expression-338"><a href="#Expression-338"><span class="linenos">338</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-339"><a href="#Expression-339"><span class="linenos">339</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-341"><a href="#Expression-341"><span class="linenos">341</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-342"><a href="#Expression-342"><span class="linenos">342</span></a>
+</span><span id="Expression-343"><a href="#Expression-343"><span class="linenos">343</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression-344"><a href="#Expression-344"><span class="linenos">344</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-345"><a href="#Expression-345"><span class="linenos">345</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="Expression-346"><a href="#Expression-346"><span class="linenos">346</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="Expression-347"><a href="#Expression-347"><span class="linenos">347</span></a>
+</span><span id="Expression-348"><a href="#Expression-348"><span class="linenos">348</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-349"><a href="#Expression-349"><span class="linenos">349</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-350"><a href="#Expression-350"><span class="linenos">350</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="Expression-351"><a href="#Expression-351"><span class="linenos">351</span></a>
-</span><span id="Expression-352"><a href="#Expression-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="Expression-355"><a href="#Expression-355"><span class="linenos">355</span></a>
-</span><span id="Expression-356"><a href="#Expression-356"><span class="linenos">356</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-357"><a href="#Expression-357"><span class="linenos">357</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-352"><a href="#Expression-352"><span class="linenos">352</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-355"><a href="#Expression-355"><span class="linenos">355</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
+</span><span id="Expression-356"><a href="#Expression-356"><span class="linenos">356</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression-357"><a href="#Expression-357"><span class="linenos">357</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span><span id="Expression-358"><a href="#Expression-358"><span class="linenos">358</span></a>
-</span><span id="Expression-359"><a href="#Expression-359"><span class="linenos">359</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</span></a><span class="sd"> The parent node.</span>
-</span><span id="Expression-361"><a href="#Expression-361"><span class="linenos">361</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-362"><a href="#Expression-362"><span class="linenos">362</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-363"><a href="#Expression-363"><span class="linenos">363</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression-364"><a href="#Expression-364"><span class="linenos">364</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-365"><a href="#Expression-365"><span class="linenos">365</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
-</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</span></a>
-</span><span id="Expression-367"><a href="#Expression-367"><span class="linenos">367</span></a> <span class="nd">@property</span>
-</span><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
-</span><span id="Expression-369"><a href="#Expression-369"><span class="linenos">369</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-370"><a href="#Expression-370"><span class="linenos">370</span></a><span class="sd"> Returns the parent select statement.</span>
-</span><span id="Expression-371"><a href="#Expression-371"><span class="linenos">371</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-372"><a href="#Expression-372"><span class="linenos">372</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span><span id="Expression-359"><a href="#Expression-359"><span class="linenos">359</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-361"><a href="#Expression-361"><span class="linenos">361</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="Expression-362"><a href="#Expression-362"><span class="linenos">362</span></a>
+</span><span id="Expression-363"><a href="#Expression-363"><span class="linenos">363</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-364"><a href="#Expression-364"><span class="linenos">364</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression-365"><a href="#Expression-365"><span class="linenos">365</span></a>
+</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-367"><a href="#Expression-367"><span class="linenos">367</span></a><span class="sd"> The parent node.</span>
+</span><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-369"><a href="#Expression-369"><span class="linenos">369</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-370"><a href="#Expression-370"><span class="linenos">370</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression-371"><a href="#Expression-371"><span class="linenos">371</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-372"><a href="#Expression-372"><span class="linenos">372</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span><span id="Expression-373"><a href="#Expression-373"><span class="linenos">373</span></a>
</span><span id="Expression-374"><a href="#Expression-374"><span class="linenos">374</span></a> <span class="nd">@property</span>
-</span><span id="Expression-375"><a href="#Expression-375"><span class="linenos">375</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Expression-376"><a href="#Expression-376"><span class="linenos">376</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
-</span><span id="Expression-377"><a href="#Expression-377"><span class="linenos">377</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
-</span><span id="Expression-378"><a href="#Expression-378"><span class="linenos">378</span></a>
-</span><span id="Expression-379"><a href="#Expression-379"><span class="linenos">379</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Expression-380"><a href="#Expression-380"><span class="linenos">380</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-381"><a href="#Expression-381"><span class="linenos">381</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="Expression-382"><a href="#Expression-382"><span class="linenos">382</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-383"><a href="#Expression-383"><span class="linenos">383</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-384"><a href="#Expression-384"><span class="linenos">384</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression-385"><a href="#Expression-385"><span class="linenos">385</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-387"><a href="#Expression-387"><span class="linenos">387</span></a>
-</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression-389"><a href="#Expression-389"><span class="linenos">389</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-390"><a href="#Expression-390"><span class="linenos">390</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a>
-</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="Expression-395"><a href="#Expression-395"><span class="linenos">395</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="Expression-396"><a href="#Expression-396"><span class="linenos">396</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
-</span><span id="Expression-397"><a href="#Expression-397"><span class="linenos">397</span></a>
-</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-399"><a href="#Expression-399"><span class="linenos">399</span></a><span class="sd"> the generator object.</span>
-</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-401"><a href="#Expression-401"><span class="linenos">401</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression-403"><a href="#Expression-403"><span class="linenos">403</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression-405"><a href="#Expression-405"><span class="linenos">405</span></a>
-</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression-407"><a href="#Expression-407"><span class="linenos">407</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-408"><a href="#Expression-408"><span class="linenos">408</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression-409"><a href="#Expression-409"><span class="linenos">409</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a>
-</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-412"><a href="#Expression-412"><span class="linenos">412</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-413"><a href="#Expression-413"><span class="linenos">413</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-414"><a href="#Expression-414"><span class="linenos">414</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-415"><a href="#Expression-415"><span class="linenos">415</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</span></a> <span class="k">return</span>
-</span><span id="Expression-418"><a href="#Expression-418"><span class="linenos">418</span></a>
-</span><span id="Expression-419"><a href="#Expression-419"><span class="linenos">419</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression-420"><a href="#Expression-420"><span class="linenos">420</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression-421"><a href="#Expression-421"><span class="linenos">421</span></a>
-</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression-423"><a href="#Expression-423"><span class="linenos">423</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="Expression-426"><a href="#Expression-426"><span class="linenos">426</span></a>
-</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-428"><a href="#Expression-428"><span class="linenos">428</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression-429"><a href="#Expression-429"><span class="linenos">429</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
-</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</span></a>
-</span><span id="Expression-432"><a href="#Expression-432"><span class="linenos">432</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="Expression-433"><a href="#Expression-433"><span class="linenos">433</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
-</span><span id="Expression-434"><a href="#Expression-434"><span class="linenos">434</span></a>
-</span><span id="Expression-435"><a href="#Expression-435"><span class="linenos">435</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression-436"><a href="#Expression-436"><span class="linenos">436</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</span></a> <span class="k">continue</span>
+</span><span id="Expression-375"><a href="#Expression-375"><span class="linenos">375</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
+</span><span id="Expression-376"><a href="#Expression-376"><span class="linenos">376</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-377"><a href="#Expression-377"><span class="linenos">377</span></a><span class="sd"> Returns the parent select statement.</span>
+</span><span id="Expression-378"><a href="#Expression-378"><span class="linenos">378</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-379"><a href="#Expression-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
+</span><span id="Expression-380"><a href="#Expression-380"><span class="linenos">380</span></a>
+</span><span id="Expression-381"><a href="#Expression-381"><span class="linenos">381</span></a> <span class="nd">@property</span>
+</span><span id="Expression-382"><a href="#Expression-382"><span class="linenos">382</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Expression-383"><a href="#Expression-383"><span class="linenos">383</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
+</span><span id="Expression-384"><a href="#Expression-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
+</span><span id="Expression-385"><a href="#Expression-385"><span class="linenos">385</span></a>
+</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Expression-387"><a href="#Expression-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="Expression-389"><a href="#Expression-389"><span class="linenos">389</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-390"><a href="#Expression-390"><span class="linenos">390</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</span></a>
+</span><span id="Expression-395"><a href="#Expression-395"><span class="linenos">395</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression-396"><a href="#Expression-396"><span class="linenos">396</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-397"><a href="#Expression-397"><span class="linenos">397</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
+</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</span></a>
+</span><span id="Expression-399"><a href="#Expression-399"><span class="linenos">399</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="Expression-401"><a href="#Expression-401"><span class="linenos">401</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="Expression-403"><a href="#Expression-403"><span class="linenos">403</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</span></a>
+</span><span id="Expression-405"><a href="#Expression-405"><span class="linenos">405</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</span></a><span class="sd"> the generator object.</span>
+</span><span id="Expression-407"><a href="#Expression-407"><span class="linenos">407</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-408"><a href="#Expression-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="Expression-409"><a href="#Expression-409"><span class="linenos">409</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression-412"><a href="#Expression-412"><span class="linenos">412</span></a>
+</span><span id="Expression-413"><a href="#Expression-413"><span class="linenos">413</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression-414"><a href="#Expression-414"><span class="linenos">414</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-415"><a href="#Expression-415"><span class="linenos">415</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</span></a>
+</span><span id="Expression-418"><a href="#Expression-418"><span class="linenos">418</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-419"><a href="#Expression-419"><span class="linenos">419</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-420"><a href="#Expression-420"><span class="linenos">420</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-421"><a href="#Expression-421"><span class="linenos">421</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression-423"><a href="#Expression-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a> <span class="k">return</span>
+</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</span></a>
+</span><span id="Expression-426"><a href="#Expression-426"><span class="linenos">426</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression-428"><a href="#Expression-428"><span class="linenos">428</span></a>
+</span><span id="Expression-429"><a href="#Expression-429"><span class="linenos">429</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression-432"><a href="#Expression-432"><span class="linenos">432</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="Expression-433"><a href="#Expression-433"><span class="linenos">433</span></a>
+</span><span id="Expression-434"><a href="#Expression-434"><span class="linenos">434</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-435"><a href="#Expression-435"><span class="linenos">435</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression-436"><a href="#Expression-436"><span class="linenos">436</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
</span><span id="Expression-438"><a href="#Expression-438"><span class="linenos">438</span></a>
-</span><span id="Expression-439"><a href="#Expression-439"><span class="linenos">439</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression-440"><a href="#Expression-440"><span class="linenos">440</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="Expression-439"><a href="#Expression-439"><span class="linenos">439</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="Expression-440"><a href="#Expression-440"><span class="linenos">440</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
</span><span id="Expression-441"><a href="#Expression-441"><span class="linenos">441</span></a>
-</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-444"><a href="#Expression-444"><span class="linenos">444</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-446"><a href="#Expression-446"><span class="linenos">446</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression-447"><a href="#Expression-447"><span class="linenos">447</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="Expression-448"><a href="#Expression-448"><span class="linenos">448</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression-449"><a href="#Expression-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-450"><a href="#Expression-450"><span class="linenos">450</span></a>
-</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-452"><a href="#Expression-452"><span class="linenos">452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="Expression-454"><a href="#Expression-454"><span class="linenos">454</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-455"><a href="#Expression-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
-</span><span id="Expression-456"><a href="#Expression-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression-457"><a href="#Expression-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-458"><a href="#Expression-458"><span class="linenos">458</span></a>
-</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-460"><a href="#Expression-460"><span class="linenos">460</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-461"><a href="#Expression-461"><span class="linenos">461</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="Expression-462"><a href="#Expression-462"><span class="linenos">462</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-463"><a href="#Expression-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
-</span><span id="Expression-464"><a href="#Expression-464"><span class="linenos">464</span></a>
-</span><span id="Expression-465"><a href="#Expression-465"><span class="linenos">465</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="Expression-466"><a href="#Expression-466"><span class="linenos">466</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-467"><a href="#Expression-467"><span class="linenos">467</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
-</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</span></a>
-</span><span id="Expression-469"><a href="#Expression-469"><span class="linenos">469</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="Expression-470"><a href="#Expression-470"><span class="linenos">470</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-471"><a href="#Expression-471"><span class="linenos">471</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
-</span><span id="Expression-472"><a href="#Expression-472"><span class="linenos">472</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
-</span><span id="Expression-473"><a href="#Expression-473"><span class="linenos">473</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
-</span><span id="Expression-474"><a href="#Expression-474"><span class="linenos">474</span></a>
-</span><span id="Expression-475"><a href="#Expression-475"><span class="linenos">475</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
-</span><span id="Expression-477"><a href="#Expression-477"><span class="linenos">477</span></a>
-</span><span id="Expression-478"><a href="#Expression-478"><span class="linenos">478</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-479"><a href="#Expression-479"><span class="linenos">479</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
-</span><span id="Expression-480"><a href="#Expression-480"><span class="linenos">480</span></a>
-</span><span id="Expression-481"><a href="#Expression-481"><span class="linenos">481</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression-444"><a href="#Expression-444"><span class="linenos">444</span></a> <span class="k">continue</span>
+</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</span></a>
+</span><span id="Expression-446"><a href="#Expression-446"><span class="linenos">446</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression-447"><a href="#Expression-447"><span class="linenos">447</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="Expression-448"><a href="#Expression-448"><span class="linenos">448</span></a>
+</span><span id="Expression-449"><a href="#Expression-449"><span class="linenos">449</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-450"><a href="#Expression-450"><span class="linenos">450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="Expression-452"><a href="#Expression-452"><span class="linenos">452</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression-454"><a href="#Expression-454"><span class="linenos">454</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="Expression-455"><a href="#Expression-455"><span class="linenos">455</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression-456"><a href="#Expression-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-457"><a href="#Expression-457"><span class="linenos">457</span></a>
+</span><span id="Expression-458"><a href="#Expression-458"><span class="linenos">458</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-460"><a href="#Expression-460"><span class="linenos">460</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="Expression-461"><a href="#Expression-461"><span class="linenos">461</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-462"><a href="#Expression-462"><span class="linenos">462</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
+</span><span id="Expression-463"><a href="#Expression-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression-464"><a href="#Expression-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="Expression-465"><a href="#Expression-465"><span class="linenos">465</span></a>
+</span><span id="Expression-466"><a href="#Expression-466"><span class="linenos">466</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-467"><a href="#Expression-467"><span class="linenos">467</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="Expression-469"><a href="#Expression-469"><span class="linenos">469</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-470"><a href="#Expression-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+</span><span id="Expression-471"><a href="#Expression-471"><span class="linenos">471</span></a>
+</span><span id="Expression-472"><a href="#Expression-472"><span class="linenos">472</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression-473"><a href="#Expression-473"><span class="linenos">473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-474"><a href="#Expression-474"><span class="linenos">474</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
+</span><span id="Expression-475"><a href="#Expression-475"><span class="linenos">475</span></a>
+</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="Expression-477"><a href="#Expression-477"><span class="linenos">477</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-478"><a href="#Expression-478"><span class="linenos">478</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
+</span><span id="Expression-479"><a href="#Expression-479"><span class="linenos">479</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
+</span><span id="Expression-480"><a href="#Expression-480"><span class="linenos">480</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
+</span><span id="Expression-481"><a href="#Expression-481"><span class="linenos">481</span></a>
+</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
</span><span id="Expression-484"><a href="#Expression-484"><span class="linenos">484</span></a>
-</span><span id="Expression-485"><a href="#Expression-485"><span class="linenos">485</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-486"><a href="#Expression-486"><span class="linenos">486</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
-</span><span id="Expression-487"><a href="#Expression-487"><span class="linenos">487</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</span></a>
-</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-490"><a href="#Expression-490"><span class="linenos">490</span></a><span class="sd"> The SQL string.</span>
-</span><span id="Expression-491"><a href="#Expression-491"><span class="linenos">491</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="Expression-493"><a href="#Expression-493"><span class="linenos">493</span></a>
-</span><span id="Expression-494"><a href="#Expression-494"><span class="linenos">494</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-485"><a href="#Expression-485"><span class="linenos">485</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-486"><a href="#Expression-486"><span class="linenos">486</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
+</span><span id="Expression-487"><a href="#Expression-487"><span class="linenos">487</span></a>
+</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-490"><a href="#Expression-490"><span class="linenos">490</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="Expression-491"><a href="#Expression-491"><span class="linenos">491</span></a>
+</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-493"><a href="#Expression-493"><span class="linenos">493</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
+</span><span id="Expression-494"><a href="#Expression-494"><span class="linenos">494</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
</span><span id="Expression-495"><a href="#Expression-495"><span class="linenos">495</span></a>
-</span><span id="Expression-496"><a href="#Expression-496"><span class="linenos">496</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression-497"><a href="#Expression-497"><span class="linenos">497</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
-</span><span id="Expression-498"><a href="#Expression-498"><span class="linenos">498</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
-</span><span id="Expression-499"><a href="#Expression-499"><span class="linenos">499</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
+</span><span id="Expression-496"><a href="#Expression-496"><span class="linenos">496</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-497"><a href="#Expression-497"><span class="linenos">497</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression-498"><a href="#Expression-498"><span class="linenos">498</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-499"><a href="#Expression-499"><span class="linenos">499</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="Expression-500"><a href="#Expression-500"><span class="linenos">500</span></a>
-</span><span id="Expression-501"><a href="#Expression-501"><span class="linenos">501</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Expression-502"><a href="#Expression-502"><span class="linenos">502</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="Expression-503"><a href="#Expression-503"><span class="linenos">503</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
-</span><span id="Expression-504"><a href="#Expression-504"><span class="linenos">504</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
-</span><span id="Expression-505"><a href="#Expression-505"><span class="linenos">505</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
-</span><span id="Expression-506"><a href="#Expression-506"><span class="linenos">506</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
-</span><span id="Expression-507"><a href="#Expression-507"><span class="linenos">507</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="Expression-508"><a href="#Expression-508"><span class="linenos">508</span></a> <span class="p">)</span>
-</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="Expression-510"><a href="#Expression-510"><span class="linenos">510</span></a> <span class="p">}</span>
-</span><span id="Expression-511"><a href="#Expression-511"><span class="linenos">511</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
-</span><span id="Expression-512"><a href="#Expression-512"><span class="linenos">512</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
-</span><span id="Expression-513"><a href="#Expression-513"><span class="linenos">513</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
-</span><span id="Expression-514"><a href="#Expression-514"><span class="linenos">514</span></a>
-</span><span id="Expression-515"><a href="#Expression-515"><span class="linenos">515</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
-</span><span id="Expression-516"><a href="#Expression-516"><span class="linenos">516</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
-</span><span id="Expression-517"><a href="#Expression-517"><span class="linenos">517</span></a>
-</span><span id="Expression-518"><a href="#Expression-518"><span class="linenos">518</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
-</span><span id="Expression-519"><a href="#Expression-519"><span class="linenos">519</span></a>
-</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-522"><a href="#Expression-522"><span class="linenos">522</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="Expression-523"><a href="#Expression-523"><span class="linenos">523</span></a><span class="sd"> and applies the given transformation function to each node.</span>
+</span><span id="Expression-501"><a href="#Expression-501"><span class="linenos">501</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Expression-502"><a href="#Expression-502"><span class="linenos">502</span></a>
+</span><span id="Expression-503"><a href="#Expression-503"><span class="linenos">503</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression-504"><a href="#Expression-504"><span class="linenos">504</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
+</span><span id="Expression-505"><a href="#Expression-505"><span class="linenos">505</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
+</span><span id="Expression-506"><a href="#Expression-506"><span class="linenos">506</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
+</span><span id="Expression-507"><a href="#Expression-507"><span class="linenos">507</span></a>
+</span><span id="Expression-508"><a href="#Expression-508"><span class="linenos">508</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+</span><span id="Expression-510"><a href="#Expression-510"><span class="linenos">510</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
+</span><span id="Expression-511"><a href="#Expression-511"><span class="linenos">511</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
+</span><span id="Expression-512"><a href="#Expression-512"><span class="linenos">512</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+</span><span id="Expression-513"><a href="#Expression-513"><span class="linenos">513</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
+</span><span id="Expression-514"><a href="#Expression-514"><span class="linenos">514</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="Expression-515"><a href="#Expression-515"><span class="linenos">515</span></a> <span class="p">)</span>
+</span><span id="Expression-516"><a href="#Expression-516"><span class="linenos">516</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="Expression-517"><a href="#Expression-517"><span class="linenos">517</span></a> <span class="p">}</span>
+</span><span id="Expression-518"><a href="#Expression-518"><span class="linenos">518</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
+</span><span id="Expression-519"><a href="#Expression-519"><span class="linenos">519</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
+</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
+</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</span></a>
+</span><span id="Expression-522"><a href="#Expression-522"><span class="linenos">522</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
+</span><span id="Expression-523"><a href="#Expression-523"><span class="linenos">523</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
</span><span id="Expression-524"><a href="#Expression-524"><span class="linenos">524</span></a>
-</span><span id="Expression-525"><a href="#Expression-525"><span class="linenos">525</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-526"><a href="#Expression-526"><span class="linenos">526</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="Expression-527"><a href="#Expression-527"><span class="linenos">527</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="Expression-528"><a href="#Expression-528"><span class="linenos">528</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="Expression-529"><a href="#Expression-529"><span class="linenos">529</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
-</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</span></a><span class="sd"> modified in place.</span>
+</span><span id="Expression-525"><a href="#Expression-525"><span class="linenos">525</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
+</span><span id="Expression-526"><a href="#Expression-526"><span class="linenos">526</span></a>
+</span><span id="Expression-527"><a href="#Expression-527"><span class="linenos">527</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="Expression-528"><a href="#Expression-528"><span class="linenos">528</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-529"><a href="#Expression-529"><span class="linenos">529</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</span></a><span class="sd"> and applies the given transformation function to each node.</span>
</span><span id="Expression-531"><a href="#Expression-531"><span class="linenos">531</span></a>
-</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-533"><a href="#Expression-533"><span class="linenos">533</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="Expression-534"><a href="#Expression-534"><span class="linenos">534</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-535"><a href="#Expression-535"><span class="linenos">535</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="Expression-536"><a href="#Expression-536"><span class="linenos">536</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="Expression-537"><a href="#Expression-537"><span class="linenos">537</span></a>
-</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Expression-539"><a href="#Expression-539"><span class="linenos">539</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-540"><a href="#Expression-540"><span class="linenos">540</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="Expression-541"><a href="#Expression-541"><span class="linenos">541</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-542"><a href="#Expression-542"><span class="linenos">542</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-543"><a href="#Expression-543"><span class="linenos">543</span></a>
-</span><span id="Expression-544"><a href="#Expression-544"><span class="linenos">544</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
-</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</span></a>
-</span><span id="Expression-547"><a href="#Expression-547"><span class="linenos">547</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="Expression-548"><a href="#Expression-548"><span class="linenos">548</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression-549"><a href="#Expression-549"><span class="linenos">549</span></a> <span class="o">...</span>
+</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-533"><a href="#Expression-533"><span class="linenos">533</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="Expression-534"><a href="#Expression-534"><span class="linenos">534</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="Expression-535"><a href="#Expression-535"><span class="linenos">535</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="Expression-536"><a href="#Expression-536"><span class="linenos">536</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
+</span><span id="Expression-537"><a href="#Expression-537"><span class="linenos">537</span></a><span class="sd"> modified in place.</span>
+</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</span></a>
+</span><span id="Expression-539"><a href="#Expression-539"><span class="linenos">539</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-540"><a href="#Expression-540"><span class="linenos">540</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="Expression-541"><a href="#Expression-541"><span class="linenos">541</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-542"><a href="#Expression-542"><span class="linenos">542</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="Expression-543"><a href="#Expression-543"><span class="linenos">543</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="Expression-544"><a href="#Expression-544"><span class="linenos">544</span></a>
+</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-547"><a href="#Expression-547"><span class="linenos">547</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="Expression-548"><a href="#Expression-548"><span class="linenos">548</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-549"><a href="#Expression-549"><span class="linenos">549</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</span></a>
-</span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a> <span class="o">...</span>
-</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a>
-</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
-</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a>
-</span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a><span class="sd"> For example::</span>
-</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a>
-</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a>
-</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> expression: new node</span>
-</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a>
-</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a>
-</span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a>
-</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a>
-</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
+</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a>
+</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a> <span class="o">...</span>
+</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a>
+</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a> <span class="o">...</span>
+</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a>
+</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a>
+</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a><span class="sd"> For example::</span>
+</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a>
+</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
+</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a><span class="sd"> (COLUMN this: y)</span>
+</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a>
+</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a><span class="sd"> expression: new node</span>
+</span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</span></a>
+</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a>
+</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a>
-</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a><span class="sd"> The popped expression.</span>
-</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a> <span class="k">return</span> <span class="bp">self</span>
-</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a>
-</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a>
-</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a>
+</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a>
+</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a><span class="sd"> The popped expression.</span>
+</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a>
-</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a><span class="sd"> Examples:</span>
-</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a>
-</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
-</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="Expression-605"><a href="#Expression-605"><span class="linenos">605</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
-</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a>
+</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression-605"><a href="#Expression-605"><span class="linenos">605</span></a>
+</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a><span class="sd"> Examples:</span>
+</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="Expression-608"><a href="#Expression-608"><span class="linenos">608</span></a>
-</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
-</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a>
-</span><span id="Expression-613"><a href="#Expression-613"><span class="linenos">613</span></a><span class="sd"> Args:</span>
-</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
-</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
-</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a>
-</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a>
-</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
-</span><span id="Expression-623"><a href="#Expression-623"><span class="linenos">623</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="Expression-624"><a href="#Expression-624"><span class="linenos">624</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression-625"><a href="#Expression-625"><span class="linenos">625</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
-</span><span id="Expression-627"><a href="#Expression-627"><span class="linenos">627</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
-</span><span id="Expression-628"><a href="#Expression-628"><span class="linenos">628</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a>
-</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="Expression-631"><a href="#Expression-631"><span class="linenos">631</span></a> <span class="n">args</span>
-</span><span id="Expression-632"><a href="#Expression-632"><span class="linenos">632</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
-</span><span id="Expression-633"><a href="#Expression-633"><span class="linenos">633</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="Expression-634"><a href="#Expression-634"><span class="linenos">634</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
-</span><span id="Expression-635"><a href="#Expression-635"><span class="linenos">635</span></a> <span class="p">):</span>
-</span><span id="Expression-636"><a href="#Expression-636"><span class="linenos">636</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Expression-637"><a href="#Expression-637"><span class="linenos">637</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
-</span><span id="Expression-638"><a href="#Expression-638"><span class="linenos">638</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="Expression-639"><a href="#Expression-639"><span class="linenos">639</span></a> <span class="p">)</span>
-</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</span></a>
-</span><span id="Expression-641"><a href="#Expression-641"><span class="linenos">641</span></a> <span class="k">return</span> <span class="n">errors</span>
-</span><span id="Expression-642"><a href="#Expression-642"><span class="linenos">642</span></a>
-</span><span id="Expression-643"><a href="#Expression-643"><span class="linenos">643</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression-644"><a href="#Expression-644"><span class="linenos">644</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-645"><a href="#Expression-645"><span class="linenos">645</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="Expression-646"><a href="#Expression-646"><span class="linenos">646</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-647"><a href="#Expression-647"><span class="linenos">647</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
-</span><span id="Expression-648"><a href="#Expression-648"><span class="linenos">648</span></a>
-</span><span id="Expression-649"><a href="#Expression-649"><span class="linenos">649</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="Expression-650"><a href="#Expression-650"><span class="linenos">650</span></a>
-</span><span id="Expression-651"><a href="#Expression-651"><span class="linenos">651</span></a> <span class="nd">@classmethod</span>
-</span><span id="Expression-652"><a href="#Expression-652"><span class="linenos">652</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
-</span><span id="Expression-653"><a href="#Expression-653"><span class="linenos">653</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression-654"><a href="#Expression-654"><span class="linenos">654</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="Expression-655"><a href="#Expression-655"><span class="linenos">655</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression-656"><a href="#Expression-656"><span class="linenos">656</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
+</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-613"><a href="#Expression-613"><span class="linenos">613</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
+</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a> <span class="k">return</span> <span class="bp">self</span>
+</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a>
+</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a>
+</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a><span class="sd"> Args:</span>
+</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
+</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="Expression-623"><a href="#Expression-623"><span class="linenos">623</span></a>
+</span><span id="Expression-624"><a href="#Expression-624"><span class="linenos">624</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression-625"><a href="#Expression-625"><span class="linenos">625</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-627"><a href="#Expression-627"><span class="linenos">627</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression-628"><a href="#Expression-628"><span class="linenos">628</span></a>
+</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
+</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="Expression-631"><a href="#Expression-631"><span class="linenos">631</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression-632"><a href="#Expression-632"><span class="linenos">632</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression-633"><a href="#Expression-633"><span class="linenos">633</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
+</span><span id="Expression-634"><a href="#Expression-634"><span class="linenos">634</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
+</span><span id="Expression-635"><a href="#Expression-635"><span class="linenos">635</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression-636"><a href="#Expression-636"><span class="linenos">636</span></a>
+</span><span id="Expression-637"><a href="#Expression-637"><span class="linenos">637</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="Expression-638"><a href="#Expression-638"><span class="linenos">638</span></a> <span class="n">args</span>
+</span><span id="Expression-639"><a href="#Expression-639"><span class="linenos">639</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
+</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="Expression-641"><a href="#Expression-641"><span class="linenos">641</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
+</span><span id="Expression-642"><a href="#Expression-642"><span class="linenos">642</span></a> <span class="p">):</span>
+</span><span id="Expression-643"><a href="#Expression-643"><span class="linenos">643</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Expression-644"><a href="#Expression-644"><span class="linenos">644</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
+</span><span id="Expression-645"><a href="#Expression-645"><span class="linenos">645</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="Expression-646"><a href="#Expression-646"><span class="linenos">646</span></a> <span class="p">)</span>
+</span><span id="Expression-647"><a href="#Expression-647"><span class="linenos">647</span></a>
+</span><span id="Expression-648"><a href="#Expression-648"><span class="linenos">648</span></a> <span class="k">return</span> <span class="n">errors</span>
+</span><span id="Expression-649"><a href="#Expression-649"><span class="linenos">649</span></a>
+</span><span id="Expression-650"><a href="#Expression-650"><span class="linenos">650</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression-651"><a href="#Expression-651"><span class="linenos">651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-652"><a href="#Expression-652"><span class="linenos">652</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="Expression-653"><a href="#Expression-653"><span class="linenos">653</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-654"><a href="#Expression-654"><span class="linenos">654</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
+</span><span id="Expression-655"><a href="#Expression-655"><span class="linenos">655</span></a>
+</span><span id="Expression-656"><a href="#Expression-656"><span class="linenos">656</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="Expression-657"><a href="#Expression-657"><span class="linenos">657</span></a>
-</span><span id="Expression-658"><a href="#Expression-658"><span class="linenos">658</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+</span><span id="Expression-658"><a href="#Expression-658"><span class="linenos">658</span></a> <span class="nd">@classmethod</span>
+</span><span id="Expression-659"><a href="#Expression-659"><span class="linenos">659</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
+</span><span id="Expression-660"><a href="#Expression-660"><span class="linenos">660</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression-661"><a href="#Expression-661"><span class="linenos">661</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="Expression-662"><a href="#Expression-662"><span class="linenos">662</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression-663"><a href="#Expression-663"><span class="linenos">663</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="Expression-664"><a href="#Expression-664"><span class="linenos">664</span></a>
+</span><span id="Expression-665"><a href="#Expression-665"><span class="linenos">665</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
</span></pre></div>
@@ -12802,6 +12819,17 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
+ <div id="Expression.alias_column_names" class="classattr">
+ <div class="attr variable">
+ <span class="name">alias_column_names</span><span class="annotation">: List[str]</span>
+
+
+ </div>
+ <a class="headerlink" href="#Expression.alias_column_names"></a>
+
+
+
+ </div>
<div id="Expression.name" class="classattr">
<div class="attr variable">
<span class="name">name</span><span class="annotation">: str</span>
@@ -12887,13 +12915,13 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.copy"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.copy-250"><a href="#Expression.copy-250"><span class="linenos">250</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.copy-251"><a href="#Expression.copy-251"><span class="linenos">251</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.copy-252"><a href="#Expression.copy-252"><span class="linenos">252</span></a><span class="sd"> Returns a deep copy of the expression.</span>
-</span><span id="Expression.copy-253"><a href="#Expression.copy-253"><span class="linenos">253</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.copy-254"><a href="#Expression.copy-254"><span class="linenos">254</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-</span><span id="Expression.copy-255"><a href="#Expression.copy-255"><span class="linenos">255</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.copy-256"><a href="#Expression.copy-256"><span class="linenos">256</span></a> <span class="k">return</span> <span class="n">new</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.copy-257"><a href="#Expression.copy-257"><span class="linenos">257</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.copy-258"><a href="#Expression.copy-258"><span class="linenos">258</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.copy-259"><a href="#Expression.copy-259"><span class="linenos">259</span></a><span class="sd"> Returns a deep copy of the expression.</span>
+</span><span id="Expression.copy-260"><a href="#Expression.copy-260"><span class="linenos">260</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.copy-261"><a href="#Expression.copy-261"><span class="linenos">261</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+</span><span id="Expression.copy-262"><a href="#Expression.copy-262"><span class="linenos">262</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.copy-263"><a href="#Expression.copy-263"><span class="linenos">263</span></a> <span class="k">return</span> <span class="n">new</span>
</span></pre></div>
@@ -12913,11 +12941,11 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.add_comments"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.add_comments-258"><a href="#Expression.add_comments-258"><span class="linenos">258</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.add_comments-259"><a href="#Expression.add_comments-259"><span class="linenos">259</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.add_comments-260"><a href="#Expression.add_comments-260"><span class="linenos">260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression.add_comments-261"><a href="#Expression.add_comments-261"><span class="linenos">261</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
-</span><span id="Expression.add_comments-262"><a href="#Expression.add_comments-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.add_comments-265"><a href="#Expression.add_comments-265"><span class="linenos">265</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.add_comments-266"><a href="#Expression.add_comments-266"><span class="linenos">266</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.add_comments-267"><a href="#Expression.add_comments-267"><span class="linenos">267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression.add_comments-268"><a href="#Expression.add_comments-268"><span class="linenos">268</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
+</span><span id="Expression.add_comments-269"><a href="#Expression.add_comments-269"><span class="linenos">269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
</span></pre></div>
@@ -12935,18 +12963,18 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.append"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.append-264"><a href="#Expression.append-264"><span class="linenos">264</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.append-265"><a href="#Expression.append-265"><span class="linenos">265</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.append-266"><a href="#Expression.append-266"><span class="linenos">266</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
-</span><span id="Expression.append-267"><a href="#Expression.append-267"><span class="linenos">267</span></a>
-</span><span id="Expression.append-268"><a href="#Expression.append-268"><span class="linenos">268</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.append-269"><a href="#Expression.append-269"><span class="linenos">269</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
-</span><span id="Expression.append-270"><a href="#Expression.append-270"><span class="linenos">270</span></a><span class="sd"> value (Any): value to append to the list</span>
-</span><span id="Expression.append-271"><a href="#Expression.append-271"><span class="linenos">271</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.append-272"><a href="#Expression.append-272"><span class="linenos">272</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="Expression.append-273"><a href="#Expression.append-273"><span class="linenos">273</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression.append-274"><a href="#Expression.append-274"><span class="linenos">274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="Expression.append-275"><a href="#Expression.append-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.append-271"><a href="#Expression.append-271"><span class="linenos">271</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.append-272"><a href="#Expression.append-272"><span class="linenos">272</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.append-273"><a href="#Expression.append-273"><span class="linenos">273</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
+</span><span id="Expression.append-274"><a href="#Expression.append-274"><span class="linenos">274</span></a>
+</span><span id="Expression.append-275"><a href="#Expression.append-275"><span class="linenos">275</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.append-276"><a href="#Expression.append-276"><span class="linenos">276</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
+</span><span id="Expression.append-277"><a href="#Expression.append-277"><span class="linenos">277</span></a><span class="sd"> value (Any): value to append to the list</span>
+</span><span id="Expression.append-278"><a href="#Expression.append-278"><span class="linenos">278</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.append-279"><a href="#Expression.append-279"><span class="linenos">279</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="Expression.append-280"><a href="#Expression.append-280"><span class="linenos">280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression.append-281"><a href="#Expression.append-281"><span class="linenos">281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="Expression.append-282"><a href="#Expression.append-282"><span class="linenos">282</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
@@ -12973,20 +13001,20 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.set"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.set-277"><a href="#Expression.set-277"><span class="linenos">277</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.set-278"><a href="#Expression.set-278"><span class="linenos">278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.set-279"><a href="#Expression.set-279"><span class="linenos">279</span></a><span class="sd"> Sets arg_key to value.</span>
-</span><span id="Expression.set-280"><a href="#Expression.set-280"><span class="linenos">280</span></a>
-</span><span id="Expression.set-281"><a href="#Expression.set-281"><span class="linenos">281</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.set-282"><a href="#Expression.set-282"><span class="linenos">282</span></a><span class="sd"> arg_key: name of the expression arg.</span>
-</span><span id="Expression.set-283"><a href="#Expression.set-283"><span class="linenos">283</span></a><span class="sd"> value: value to set the arg to.</span>
-</span><span id="Expression.set-284"><a href="#Expression.set-284"><span class="linenos">284</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.set-285"><a href="#Expression.set-285"><span class="linenos">285</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="Expression.set-286"><a href="#Expression.set-286"><span class="linenos">286</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression.set-287"><a href="#Expression.set-287"><span class="linenos">287</span></a> <span class="k">return</span>
-</span><span id="Expression.set-288"><a href="#Expression.set-288"><span class="linenos">288</span></a>
-</span><span id="Expression.set-289"><a href="#Expression.set-289"><span class="linenos">289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
-</span><span id="Expression.set-290"><a href="#Expression.set-290"><span class="linenos">290</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.set-284"><a href="#Expression.set-284"><span class="linenos">284</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.set-285"><a href="#Expression.set-285"><span class="linenos">285</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.set-286"><a href="#Expression.set-286"><span class="linenos">286</span></a><span class="sd"> Sets arg_key to value.</span>
+</span><span id="Expression.set-287"><a href="#Expression.set-287"><span class="linenos">287</span></a>
+</span><span id="Expression.set-288"><a href="#Expression.set-288"><span class="linenos">288</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.set-289"><a href="#Expression.set-289"><span class="linenos">289</span></a><span class="sd"> arg_key: name of the expression arg.</span>
+</span><span id="Expression.set-290"><a href="#Expression.set-290"><span class="linenos">290</span></a><span class="sd"> value: value to set the arg to.</span>
+</span><span id="Expression.set-291"><a href="#Expression.set-291"><span class="linenos">291</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.set-292"><a href="#Expression.set-292"><span class="linenos">292</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="Expression.set-293"><a href="#Expression.set-293"><span class="linenos">293</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression.set-294"><a href="#Expression.set-294"><span class="linenos">294</span></a> <span class="k">return</span>
+</span><span id="Expression.set-295"><a href="#Expression.set-295"><span class="linenos">295</span></a>
+</span><span id="Expression.set-296"><a href="#Expression.set-296"><span class="linenos">296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+</span><span id="Expression.set-297"><a href="#Expression.set-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
@@ -13026,16 +13054,16 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.iter_expressions"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.iter_expressions-311"><a href="#Expression.iter_expressions-311"><span class="linenos">311</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
-</span><span id="Expression.iter_expressions-312"><a href="#Expression.iter_expressions-312"><span class="linenos">312</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
-</span><span id="Expression.iter_expressions-313"><a href="#Expression.iter_expressions-313"><span class="linenos">313</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression.iter_expressions-314"><a href="#Expression.iter_expressions-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-315"><a href="#Expression.iter_expressions-315"><span class="linenos">315</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-316"><a href="#Expression.iter_expressions-316"><span class="linenos">316</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression.iter_expressions-317"><a href="#Expression.iter_expressions-317"><span class="linenos">317</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
-</span><span id="Expression.iter_expressions-318"><a href="#Expression.iter_expressions-318"><span class="linenos">318</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression.iter_expressions-319"><a href="#Expression.iter_expressions-319"><span class="linenos">319</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
-</span><span id="Expression.iter_expressions-320"><a href="#Expression.iter_expressions-320"><span class="linenos">320</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.iter_expressions-318"><a href="#Expression.iter_expressions-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
+</span><span id="Expression.iter_expressions-319"><a href="#Expression.iter_expressions-319"><span class="linenos">319</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
+</span><span id="Expression.iter_expressions-320"><a href="#Expression.iter_expressions-320"><span class="linenos">320</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression.iter_expressions-321"><a href="#Expression.iter_expressions-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-322"><a href="#Expression.iter_expressions-322"><span class="linenos">322</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-323"><a href="#Expression.iter_expressions-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression.iter_expressions-324"><a href="#Expression.iter_expressions-324"><span class="linenos">324</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
+</span><span id="Expression.iter_expressions-325"><a href="#Expression.iter_expressions-325"><span class="linenos">325</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression.iter_expressions-326"><a href="#Expression.iter_expressions-326"><span class="linenos">326</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
+</span><span id="Expression.iter_expressions-327"><a href="#Expression.iter_expressions-327"><span class="linenos">327</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
</span></pre></div>
@@ -13055,19 +13083,19 @@ for args that are strings or leaf Expression instances, such as identifiers and
</div>
<a class="headerlink" href="#Expression.find"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find-322"><a href="#Expression.find-322"><span class="linenos">322</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression.find-323"><a href="#Expression.find-323"><span class="linenos">323</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find-324"><a href="#Expression.find-324"><span class="linenos">324</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
-</span><span id="Expression.find-325"><a href="#Expression.find-325"><span class="linenos">325</span></a><span class="sd"> the specified types.</span>
-</span><span id="Expression.find-326"><a href="#Expression.find-326"><span class="linenos">326</span></a>
-</span><span id="Expression.find-327"><a href="#Expression.find-327"><span class="linenos">327</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find-328"><a href="#Expression.find-328"><span class="linenos">328</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find-329"><a href="#Expression.find-329"><span class="linenos">329</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression.find-330"><a href="#Expression.find-330"><span class="linenos">330</span></a>
-</span><span id="Expression.find-331"><a href="#Expression.find-331"><span class="linenos">331</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find-332"><a href="#Expression.find-332"><span class="linenos">332</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
-</span><span id="Expression.find-333"><a href="#Expression.find-333"><span class="linenos">333</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find-334"><a href="#Expression.find-334"><span class="linenos">334</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find-329"><a href="#Expression.find-329"><span class="linenos">329</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression.find-330"><a href="#Expression.find-330"><span class="linenos">330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find-331"><a href="#Expression.find-331"><span class="linenos">331</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
+</span><span id="Expression.find-332"><a href="#Expression.find-332"><span class="linenos">332</span></a><span class="sd"> the specified types.</span>
+</span><span id="Expression.find-333"><a href="#Expression.find-333"><span class="linenos">333</span></a>
+</span><span id="Expression.find-334"><a href="#Expression.find-334"><span class="linenos">334</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find-335"><a href="#Expression.find-335"><span class="linenos">335</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find-336"><a href="#Expression.find-336"><span class="linenos">336</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression.find-337"><a href="#Expression.find-337"><span class="linenos">337</span></a>
+</span><span id="Expression.find-338"><a href="#Expression.find-338"><span class="linenos">338</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find-339"><a href="#Expression.find-339"><span class="linenos">339</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
+</span><span id="Expression.find-340"><a href="#Expression.find-340"><span class="linenos">340</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find-341"><a href="#Expression.find-341"><span class="linenos">341</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
</span></pre></div>
@@ -13101,21 +13129,21 @@ the specified types.</p>
</div>
<a class="headerlink" href="#Expression.find_all"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_all-336"><a href="#Expression.find_all-336"><span class="linenos">336</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression.find_all-337"><a href="#Expression.find_all-337"><span class="linenos">337</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find_all-338"><a href="#Expression.find_all-338"><span class="linenos">338</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
-</span><span id="Expression.find_all-339"><a href="#Expression.find_all-339"><span class="linenos">339</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
-</span><span id="Expression.find_all-340"><a href="#Expression.find_all-340"><span class="linenos">340</span></a>
-</span><span id="Expression.find_all-341"><a href="#Expression.find_all-341"><span class="linenos">341</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find_all-342"><a href="#Expression.find_all-342"><span class="linenos">342</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find_all-343"><a href="#Expression.find_all-343"><span class="linenos">343</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
-</span><span id="Expression.find_all-344"><a href="#Expression.find_all-344"><span class="linenos">344</span></a>
-</span><span id="Expression.find_all-345"><a href="#Expression.find_all-345"><span class="linenos">345</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find_all-346"><a href="#Expression.find_all-346"><span class="linenos">346</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.find_all-347"><a href="#Expression.find_all-347"><span class="linenos">347</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find_all-348"><a href="#Expression.find_all-348"><span class="linenos">348</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
-</span><span id="Expression.find_all-349"><a href="#Expression.find_all-349"><span class="linenos">349</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression.find_all-350"><a href="#Expression.find_all-350"><span class="linenos">350</span></a> <span class="k">yield</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_all-343"><a href="#Expression.find_all-343"><span class="linenos">343</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression.find_all-344"><a href="#Expression.find_all-344"><span class="linenos">344</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find_all-345"><a href="#Expression.find_all-345"><span class="linenos">345</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
+</span><span id="Expression.find_all-346"><a href="#Expression.find_all-346"><span class="linenos">346</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
+</span><span id="Expression.find_all-347"><a href="#Expression.find_all-347"><span class="linenos">347</span></a>
+</span><span id="Expression.find_all-348"><a href="#Expression.find_all-348"><span class="linenos">348</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find_all-349"><a href="#Expression.find_all-349"><span class="linenos">349</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find_all-350"><a href="#Expression.find_all-350"><span class="linenos">350</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
+</span><span id="Expression.find_all-351"><a href="#Expression.find_all-351"><span class="linenos">351</span></a>
+</span><span id="Expression.find_all-352"><a href="#Expression.find_all-352"><span class="linenos">352</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find_all-353"><a href="#Expression.find_all-353"><span class="linenos">353</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.find_all-354"><a href="#Expression.find_all-354"><span class="linenos">354</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find_all-355"><a href="#Expression.find_all-355"><span class="linenos">355</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
+</span><span id="Expression.find_all-356"><a href="#Expression.find_all-356"><span class="linenos">356</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression.find_all-357"><a href="#Expression.find_all-357"><span class="linenos">357</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span></pre></div>
@@ -13149,20 +13177,20 @@ yields those that match at least one of the specified expression types.</p>
</div>
<a class="headerlink" href="#Expression.find_ancestor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_ancestor-352"><a href="#Expression.find_ancestor-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
-</span><span id="Expression.find_ancestor-353"><a href="#Expression.find_ancestor-353"><span class="linenos">353</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.find_ancestor-354"><a href="#Expression.find_ancestor-354"><span class="linenos">354</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
-</span><span id="Expression.find_ancestor-355"><a href="#Expression.find_ancestor-355"><span class="linenos">355</span></a>
-</span><span id="Expression.find_ancestor-356"><a href="#Expression.find_ancestor-356"><span class="linenos">356</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.find_ancestor-357"><a href="#Expression.find_ancestor-357"><span class="linenos">357</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
-</span><span id="Expression.find_ancestor-358"><a href="#Expression.find_ancestor-358"><span class="linenos">358</span></a>
-</span><span id="Expression.find_ancestor-359"><a href="#Expression.find_ancestor-359"><span class="linenos">359</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.find_ancestor-360"><a href="#Expression.find_ancestor-360"><span class="linenos">360</span></a><span class="sd"> The parent node.</span>
-</span><span id="Expression.find_ancestor-361"><a href="#Expression.find_ancestor-361"><span class="linenos">361</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.find_ancestor-362"><a href="#Expression.find_ancestor-362"><span class="linenos">362</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.find_ancestor-363"><a href="#Expression.find_ancestor-363"><span class="linenos">363</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
-</span><span id="Expression.find_ancestor-364"><a href="#Expression.find_ancestor-364"><span class="linenos">364</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.find_ancestor-365"><a href="#Expression.find_ancestor-365"><span class="linenos">365</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_ancestor-359"><a href="#Expression.find_ancestor-359"><span class="linenos">359</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
+</span><span id="Expression.find_ancestor-360"><a href="#Expression.find_ancestor-360"><span class="linenos">360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.find_ancestor-361"><a href="#Expression.find_ancestor-361"><span class="linenos">361</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
+</span><span id="Expression.find_ancestor-362"><a href="#Expression.find_ancestor-362"><span class="linenos">362</span></a>
+</span><span id="Expression.find_ancestor-363"><a href="#Expression.find_ancestor-363"><span class="linenos">363</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.find_ancestor-364"><a href="#Expression.find_ancestor-364"><span class="linenos">364</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
+</span><span id="Expression.find_ancestor-365"><a href="#Expression.find_ancestor-365"><span class="linenos">365</span></a>
+</span><span id="Expression.find_ancestor-366"><a href="#Expression.find_ancestor-366"><span class="linenos">366</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.find_ancestor-367"><a href="#Expression.find_ancestor-367"><span class="linenos">367</span></a><span class="sd"> The parent node.</span>
+</span><span id="Expression.find_ancestor-368"><a href="#Expression.find_ancestor-368"><span class="linenos">368</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.find_ancestor-369"><a href="#Expression.find_ancestor-369"><span class="linenos">369</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.find_ancestor-370"><a href="#Expression.find_ancestor-370"><span class="linenos">370</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
+</span><span id="Expression.find_ancestor-371"><a href="#Expression.find_ancestor-371"><span class="linenos">371</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.find_ancestor-372"><a href="#Expression.find_ancestor-372"><span class="linenos">372</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span></pre></div>
@@ -13220,14 +13248,14 @@ yields those that match at least one of the specified expression types.</p>
</div>
<a class="headerlink" href="#Expression.root"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.root-379"><a href="#Expression.root-379"><span class="linenos">379</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Expression.root-380"><a href="#Expression.root-380"><span class="linenos">380</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.root-381"><a href="#Expression.root-381"><span class="linenos">381</span></a><span class="sd"> Returns the root expression of this tree.</span>
-</span><span id="Expression.root-382"><a href="#Expression.root-382"><span class="linenos">382</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.root-383"><a href="#Expression.root-383"><span class="linenos">383</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression.root-384"><a href="#Expression.root-384"><span class="linenos">384</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression.root-385"><a href="#Expression.root-385"><span class="linenos">385</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.root-386"><a href="#Expression.root-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.root-386"><a href="#Expression.root-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Expression.root-387"><a href="#Expression.root-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.root-388"><a href="#Expression.root-388"><span class="linenos">388</span></a><span class="sd"> Returns the root expression of this tree.</span>
+</span><span id="Expression.root-389"><a href="#Expression.root-389"><span class="linenos">389</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.root-390"><a href="#Expression.root-390"><span class="linenos">390</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression.root-391"><a href="#Expression.root-391"><span class="linenos">391</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression.root-392"><a href="#Expression.root-392"><span class="linenos">392</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.root-393"><a href="#Expression.root-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -13247,23 +13275,23 @@ yields those that match at least one of the specified expression types.</p>
</div>
<a class="headerlink" href="#Expression.walk"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.walk-388"><a href="#Expression.walk-388"><span class="linenos">388</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression.walk-389"><a href="#Expression.walk-389"><span class="linenos">389</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.walk-390"><a href="#Expression.walk-390"><span class="linenos">390</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
-</span><span id="Expression.walk-391"><a href="#Expression.walk-391"><span class="linenos">391</span></a>
-</span><span id="Expression.walk-392"><a href="#Expression.walk-392"><span class="linenos">392</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.walk-393"><a href="#Expression.walk-393"><span class="linenos">393</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
-</span><span id="Expression.walk-394"><a href="#Expression.walk-394"><span class="linenos">394</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
-</span><span id="Expression.walk-395"><a href="#Expression.walk-395"><span class="linenos">395</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
-</span><span id="Expression.walk-396"><a href="#Expression.walk-396"><span class="linenos">396</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
-</span><span id="Expression.walk-397"><a href="#Expression.walk-397"><span class="linenos">397</span></a>
-</span><span id="Expression.walk-398"><a href="#Expression.walk-398"><span class="linenos">398</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.walk-399"><a href="#Expression.walk-399"><span class="linenos">399</span></a><span class="sd"> the generator object.</span>
-</span><span id="Expression.walk-400"><a href="#Expression.walk-400"><span class="linenos">400</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.walk-401"><a href="#Expression.walk-401"><span class="linenos">401</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
-</span><span id="Expression.walk-402"><a href="#Expression.walk-402"><span class="linenos">402</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
-</span><span id="Expression.walk-403"><a href="#Expression.walk-403"><span class="linenos">403</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Expression.walk-404"><a href="#Expression.walk-404"><span class="linenos">404</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.walk-395"><a href="#Expression.walk-395"><span class="linenos">395</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression.walk-396"><a href="#Expression.walk-396"><span class="linenos">396</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.walk-397"><a href="#Expression.walk-397"><span class="linenos">397</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
+</span><span id="Expression.walk-398"><a href="#Expression.walk-398"><span class="linenos">398</span></a>
+</span><span id="Expression.walk-399"><a href="#Expression.walk-399"><span class="linenos">399</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.walk-400"><a href="#Expression.walk-400"><span class="linenos">400</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
+</span><span id="Expression.walk-401"><a href="#Expression.walk-401"><span class="linenos">401</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
+</span><span id="Expression.walk-402"><a href="#Expression.walk-402"><span class="linenos">402</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
+</span><span id="Expression.walk-403"><a href="#Expression.walk-403"><span class="linenos">403</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
+</span><span id="Expression.walk-404"><a href="#Expression.walk-404"><span class="linenos">404</span></a>
+</span><span id="Expression.walk-405"><a href="#Expression.walk-405"><span class="linenos">405</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.walk-406"><a href="#Expression.walk-406"><span class="linenos">406</span></a><span class="sd"> the generator object.</span>
+</span><span id="Expression.walk-407"><a href="#Expression.walk-407"><span class="linenos">407</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.walk-408"><a href="#Expression.walk-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
+</span><span id="Expression.walk-409"><a href="#Expression.walk-409"><span class="linenos">409</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
+</span><span id="Expression.walk-410"><a href="#Expression.walk-410"><span class="linenos">410</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Expression.walk-411"><a href="#Expression.walk-411"><span class="linenos">411</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span></pre></div>
@@ -13298,21 +13326,21 @@ the generator should stop traversing this branch of the tree.</li>
</div>
<a class="headerlink" href="#Expression.dfs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dfs-406"><a href="#Expression.dfs-406"><span class="linenos">406</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression.dfs-407"><a href="#Expression.dfs-407"><span class="linenos">407</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.dfs-408"><a href="#Expression.dfs-408"><span class="linenos">408</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression.dfs-409"><a href="#Expression.dfs-409"><span class="linenos">409</span></a><span class="sd"> the DFS (Depth-first) order.</span>
-</span><span id="Expression.dfs-410"><a href="#Expression.dfs-410"><span class="linenos">410</span></a>
-</span><span id="Expression.dfs-411"><a href="#Expression.dfs-411"><span class="linenos">411</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.dfs-412"><a href="#Expression.dfs-412"><span class="linenos">412</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.dfs-413"><a href="#Expression.dfs-413"><span class="linenos">413</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.dfs-414"><a href="#Expression.dfs-414"><span class="linenos">414</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.dfs-415"><a href="#Expression.dfs-415"><span class="linenos">415</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression.dfs-416"><a href="#Expression.dfs-416"><span class="linenos">416</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression.dfs-417"><a href="#Expression.dfs-417"><span class="linenos">417</span></a> <span class="k">return</span>
-</span><span id="Expression.dfs-418"><a href="#Expression.dfs-418"><span class="linenos">418</span></a>
-</span><span id="Expression.dfs-419"><a href="#Expression.dfs-419"><span class="linenos">419</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression.dfs-420"><a href="#Expression.dfs-420"><span class="linenos">420</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dfs-413"><a href="#Expression.dfs-413"><span class="linenos">413</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression.dfs-414"><a href="#Expression.dfs-414"><span class="linenos">414</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.dfs-415"><a href="#Expression.dfs-415"><span class="linenos">415</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression.dfs-416"><a href="#Expression.dfs-416"><span class="linenos">416</span></a><span class="sd"> the DFS (Depth-first) order.</span>
+</span><span id="Expression.dfs-417"><a href="#Expression.dfs-417"><span class="linenos">417</span></a>
+</span><span id="Expression.dfs-418"><a href="#Expression.dfs-418"><span class="linenos">418</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.dfs-419"><a href="#Expression.dfs-419"><span class="linenos">419</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.dfs-420"><a href="#Expression.dfs-420"><span class="linenos">420</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.dfs-421"><a href="#Expression.dfs-421"><span class="linenos">421</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.dfs-422"><a href="#Expression.dfs-422"><span class="linenos">422</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression.dfs-423"><a href="#Expression.dfs-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression.dfs-424"><a href="#Expression.dfs-424"><span class="linenos">424</span></a> <span class="k">return</span>
+</span><span id="Expression.dfs-425"><a href="#Expression.dfs-425"><span class="linenos">425</span></a>
+</span><span id="Expression.dfs-426"><a href="#Expression.dfs-426"><span class="linenos">426</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression.dfs-427"><a href="#Expression.dfs-427"><span class="linenos">427</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
</span></pre></div>
@@ -13339,25 +13367,25 @@ the DFS (Depth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.bfs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.bfs-422"><a href="#Expression.bfs-422"><span class="linenos">422</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
-</span><span id="Expression.bfs-423"><a href="#Expression.bfs-423"><span class="linenos">423</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.bfs-424"><a href="#Expression.bfs-424"><span class="linenos">424</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
-</span><span id="Expression.bfs-425"><a href="#Expression.bfs-425"><span class="linenos">425</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
-</span><span id="Expression.bfs-426"><a href="#Expression.bfs-426"><span class="linenos">426</span></a>
-</span><span id="Expression.bfs-427"><a href="#Expression.bfs-427"><span class="linenos">427</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.bfs-428"><a href="#Expression.bfs-428"><span class="linenos">428</span></a><span class="sd"> The generator object.</span>
-</span><span id="Expression.bfs-429"><a href="#Expression.bfs-429"><span class="linenos">429</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.bfs-430"><a href="#Expression.bfs-430"><span class="linenos">430</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
-</span><span id="Expression.bfs-431"><a href="#Expression.bfs-431"><span class="linenos">431</span></a>
-</span><span id="Expression.bfs-432"><a href="#Expression.bfs-432"><span class="linenos">432</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
-</span><span id="Expression.bfs-433"><a href="#Expression.bfs-433"><span class="linenos">433</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
-</span><span id="Expression.bfs-434"><a href="#Expression.bfs-434"><span class="linenos">434</span></a>
-</span><span id="Expression.bfs-435"><a href="#Expression.bfs-435"><span class="linenos">435</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
-</span><span id="Expression.bfs-436"><a href="#Expression.bfs-436"><span class="linenos">436</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
-</span><span id="Expression.bfs-437"><a href="#Expression.bfs-437"><span class="linenos">437</span></a> <span class="k">continue</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.bfs-429"><a href="#Expression.bfs-429"><span class="linenos">429</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+</span><span id="Expression.bfs-430"><a href="#Expression.bfs-430"><span class="linenos">430</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.bfs-431"><a href="#Expression.bfs-431"><span class="linenos">431</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
+</span><span id="Expression.bfs-432"><a href="#Expression.bfs-432"><span class="linenos">432</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
+</span><span id="Expression.bfs-433"><a href="#Expression.bfs-433"><span class="linenos">433</span></a>
+</span><span id="Expression.bfs-434"><a href="#Expression.bfs-434"><span class="linenos">434</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.bfs-435"><a href="#Expression.bfs-435"><span class="linenos">435</span></a><span class="sd"> The generator object.</span>
+</span><span id="Expression.bfs-436"><a href="#Expression.bfs-436"><span class="linenos">436</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.bfs-437"><a href="#Expression.bfs-437"><span class="linenos">437</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
</span><span id="Expression.bfs-438"><a href="#Expression.bfs-438"><span class="linenos">438</span></a>
-</span><span id="Expression.bfs-439"><a href="#Expression.bfs-439"><span class="linenos">439</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
-</span><span id="Expression.bfs-440"><a href="#Expression.bfs-440"><span class="linenos">440</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
+</span><span id="Expression.bfs-439"><a href="#Expression.bfs-439"><span class="linenos">439</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
+</span><span id="Expression.bfs-440"><a href="#Expression.bfs-440"><span class="linenos">440</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
+</span><span id="Expression.bfs-441"><a href="#Expression.bfs-441"><span class="linenos">441</span></a>
+</span><span id="Expression.bfs-442"><a href="#Expression.bfs-442"><span class="linenos">442</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
+</span><span id="Expression.bfs-443"><a href="#Expression.bfs-443"><span class="linenos">443</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
+</span><span id="Expression.bfs-444"><a href="#Expression.bfs-444"><span class="linenos">444</span></a> <span class="k">continue</span>
+</span><span id="Expression.bfs-445"><a href="#Expression.bfs-445"><span class="linenos">445</span></a>
+</span><span id="Expression.bfs-446"><a href="#Expression.bfs-446"><span class="linenos">446</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
+</span><span id="Expression.bfs-447"><a href="#Expression.bfs-447"><span class="linenos">447</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
</span></pre></div>
@@ -13384,14 +13412,14 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest-442"><a href="#Expression.unnest-442"><span class="linenos">442</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.unnest-443"><a href="#Expression.unnest-443"><span class="linenos">443</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unnest-444"><a href="#Expression.unnest-444"><span class="linenos">444</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
-</span><span id="Expression.unnest-445"><a href="#Expression.unnest-445"><span class="linenos">445</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unnest-446"><a href="#Expression.unnest-446"><span class="linenos">446</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Expression.unnest-447"><a href="#Expression.unnest-447"><span class="linenos">447</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="Expression.unnest-448"><a href="#Expression.unnest-448"><span class="linenos">448</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression.unnest-449"><a href="#Expression.unnest-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest-449"><a href="#Expression.unnest-449"><span class="linenos">449</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.unnest-450"><a href="#Expression.unnest-450"><span class="linenos">450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unnest-451"><a href="#Expression.unnest-451"><span class="linenos">451</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
+</span><span id="Expression.unnest-452"><a href="#Expression.unnest-452"><span class="linenos">452</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unnest-453"><a href="#Expression.unnest-453"><span class="linenos">453</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Expression.unnest-454"><a href="#Expression.unnest-454"><span class="linenos">454</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="Expression.unnest-455"><a href="#Expression.unnest-455"><span class="linenos">455</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression.unnest-456"><a href="#Expression.unnest-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -13411,13 +13439,13 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.unalias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unalias-451"><a href="#Expression.unalias-451"><span class="linenos">451</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.unalias-452"><a href="#Expression.unalias-452"><span class="linenos">452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unalias-453"><a href="#Expression.unalias-453"><span class="linenos">453</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
-</span><span id="Expression.unalias-454"><a href="#Expression.unalias-454"><span class="linenos">454</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unalias-455"><a href="#Expression.unalias-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
-</span><span id="Expression.unalias-456"><a href="#Expression.unalias-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Expression.unalias-457"><a href="#Expression.unalias-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unalias-458"><a href="#Expression.unalias-458"><span class="linenos">458</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.unalias-459"><a href="#Expression.unalias-459"><span class="linenos">459</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unalias-460"><a href="#Expression.unalias-460"><span class="linenos">460</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
+</span><span id="Expression.unalias-461"><a href="#Expression.unalias-461"><span class="linenos">461</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unalias-462"><a href="#Expression.unalias-462"><span class="linenos">462</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
+</span><span id="Expression.unalias-463"><a href="#Expression.unalias-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Expression.unalias-464"><a href="#Expression.unalias-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -13437,11 +13465,11 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.unnest_operands"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest_operands-459"><a href="#Expression.unnest_operands-459"><span class="linenos">459</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.unnest_operands-460"><a href="#Expression.unnest_operands-460"><span class="linenos">460</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.unnest_operands-461"><a href="#Expression.unnest_operands-461"><span class="linenos">461</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
-</span><span id="Expression.unnest_operands-462"><a href="#Expression.unnest_operands-462"><span class="linenos">462</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.unnest_operands-463"><a href="#Expression.unnest_operands-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest_operands-466"><a href="#Expression.unnest_operands-466"><span class="linenos">466</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.unnest_operands-467"><a href="#Expression.unnest_operands-467"><span class="linenos">467</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.unnest_operands-468"><a href="#Expression.unnest_operands-468"><span class="linenos">468</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
+</span><span id="Expression.unnest_operands-469"><a href="#Expression.unnest_operands-469"><span class="linenos">469</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.unnest_operands-470"><a href="#Expression.unnest_operands-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
</span></pre></div>
@@ -13461,15 +13489,15 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.flatten"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.flatten-465"><a href="#Expression.flatten-465"><span class="linenos">465</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="Expression.flatten-466"><a href="#Expression.flatten-466"><span class="linenos">466</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.flatten-467"><a href="#Expression.flatten-467"><span class="linenos">467</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
-</span><span id="Expression.flatten-468"><a href="#Expression.flatten-468"><span class="linenos">468</span></a>
-</span><span id="Expression.flatten-469"><a href="#Expression.flatten-469"><span class="linenos">469</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
-</span><span id="Expression.flatten-470"><a href="#Expression.flatten-470"><span class="linenos">470</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.flatten-471"><a href="#Expression.flatten-471"><span class="linenos">471</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
-</span><span id="Expression.flatten-472"><a href="#Expression.flatten-472"><span class="linenos">472</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
-</span><span id="Expression.flatten-473"><a href="#Expression.flatten-473"><span class="linenos">473</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.flatten-472"><a href="#Expression.flatten-472"><span class="linenos">472</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="Expression.flatten-473"><a href="#Expression.flatten-473"><span class="linenos">473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.flatten-474"><a href="#Expression.flatten-474"><span class="linenos">474</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
+</span><span id="Expression.flatten-475"><a href="#Expression.flatten-475"><span class="linenos">475</span></a>
+</span><span id="Expression.flatten-476"><a href="#Expression.flatten-476"><span class="linenos">476</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
+</span><span id="Expression.flatten-477"><a href="#Expression.flatten-477"><span class="linenos">477</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.flatten-478"><a href="#Expression.flatten-478"><span class="linenos">478</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
+</span><span id="Expression.flatten-479"><a href="#Expression.flatten-479"><span class="linenos">479</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
+</span><span id="Expression.flatten-480"><a href="#Expression.flatten-480"><span class="linenos">480</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span></pre></div>
@@ -13491,20 +13519,20 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.sql"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.sql-481"><a href="#Expression.sql-481"><span class="linenos">481</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Expression.sql-482"><a href="#Expression.sql-482"><span class="linenos">482</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.sql-483"><a href="#Expression.sql-483"><span class="linenos">483</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
-</span><span id="Expression.sql-484"><a href="#Expression.sql-484"><span class="linenos">484</span></a>
-</span><span id="Expression.sql-485"><a href="#Expression.sql-485"><span class="linenos">485</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.sql-486"><a href="#Expression.sql-486"><span class="linenos">486</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
-</span><span id="Expression.sql-487"><a href="#Expression.sql-487"><span class="linenos">487</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
-</span><span id="Expression.sql-488"><a href="#Expression.sql-488"><span class="linenos">488</span></a>
-</span><span id="Expression.sql-489"><a href="#Expression.sql-489"><span class="linenos">489</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.sql-490"><a href="#Expression.sql-490"><span class="linenos">490</span></a><span class="sd"> The SQL string.</span>
-</span><span id="Expression.sql-491"><a href="#Expression.sql-491"><span class="linenos">491</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.sql-492"><a href="#Expression.sql-492"><span class="linenos">492</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="Expression.sql-493"><a href="#Expression.sql-493"><span class="linenos">493</span></a>
-</span><span id="Expression.sql-494"><a href="#Expression.sql-494"><span class="linenos">494</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.sql-488"><a href="#Expression.sql-488"><span class="linenos">488</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Expression.sql-489"><a href="#Expression.sql-489"><span class="linenos">489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.sql-490"><a href="#Expression.sql-490"><span class="linenos">490</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
+</span><span id="Expression.sql-491"><a href="#Expression.sql-491"><span class="linenos">491</span></a>
+</span><span id="Expression.sql-492"><a href="#Expression.sql-492"><span class="linenos">492</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.sql-493"><a href="#Expression.sql-493"><span class="linenos">493</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
+</span><span id="Expression.sql-494"><a href="#Expression.sql-494"><span class="linenos">494</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
+</span><span id="Expression.sql-495"><a href="#Expression.sql-495"><span class="linenos">495</span></a>
+</span><span id="Expression.sql-496"><a href="#Expression.sql-496"><span class="linenos">496</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.sql-497"><a href="#Expression.sql-497"><span class="linenos">497</span></a><span class="sd"> The SQL string.</span>
+</span><span id="Expression.sql-498"><a href="#Expression.sql-498"><span class="linenos">498</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.sql-499"><a href="#Expression.sql-499"><span class="linenos">499</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="Expression.sql-500"><a href="#Expression.sql-500"><span class="linenos">500</span></a>
+</span><span id="Expression.sql-501"><a href="#Expression.sql-501"><span class="linenos">501</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -13537,32 +13565,32 @@ the BFS (Breadth-first) order.</p>
</div>
<a class="headerlink" href="#Expression.transform"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.transform-520"><a href="#Expression.transform-520"><span class="linenos">520</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="Expression.transform-521"><a href="#Expression.transform-521"><span class="linenos">521</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.transform-522"><a href="#Expression.transform-522"><span class="linenos">522</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
-</span><span id="Expression.transform-523"><a href="#Expression.transform-523"><span class="linenos">523</span></a><span class="sd"> and applies the given transformation function to each node.</span>
-</span><span id="Expression.transform-524"><a href="#Expression.transform-524"><span class="linenos">524</span></a>
-</span><span id="Expression.transform-525"><a href="#Expression.transform-525"><span class="linenos">525</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.transform-526"><a href="#Expression.transform-526"><span class="linenos">526</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
-</span><span id="Expression.transform-527"><a href="#Expression.transform-527"><span class="linenos">527</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
-</span><span id="Expression.transform-528"><a href="#Expression.transform-528"><span class="linenos">528</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
-</span><span id="Expression.transform-529"><a href="#Expression.transform-529"><span class="linenos">529</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
-</span><span id="Expression.transform-530"><a href="#Expression.transform-530"><span class="linenos">530</span></a><span class="sd"> modified in place.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.transform-527"><a href="#Expression.transform-527"><span class="linenos">527</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="Expression.transform-528"><a href="#Expression.transform-528"><span class="linenos">528</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.transform-529"><a href="#Expression.transform-529"><span class="linenos">529</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
+</span><span id="Expression.transform-530"><a href="#Expression.transform-530"><span class="linenos">530</span></a><span class="sd"> and applies the given transformation function to each node.</span>
</span><span id="Expression.transform-531"><a href="#Expression.transform-531"><span class="linenos">531</span></a>
-</span><span id="Expression.transform-532"><a href="#Expression.transform-532"><span class="linenos">532</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.transform-533"><a href="#Expression.transform-533"><span class="linenos">533</span></a><span class="sd"> The transformed tree.</span>
-</span><span id="Expression.transform-534"><a href="#Expression.transform-534"><span class="linenos">534</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.transform-535"><a href="#Expression.transform-535"><span class="linenos">535</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
-</span><span id="Expression.transform-536"><a href="#Expression.transform-536"><span class="linenos">536</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="Expression.transform-537"><a href="#Expression.transform-537"><span class="linenos">537</span></a>
-</span><span id="Expression.transform-538"><a href="#Expression.transform-538"><span class="linenos">538</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Expression.transform-539"><a href="#Expression.transform-539"><span class="linenos">539</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression.transform-540"><a href="#Expression.transform-540"><span class="linenos">540</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="Expression.transform-541"><a href="#Expression.transform-541"><span class="linenos">541</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.transform-542"><a href="#Expression.transform-542"><span class="linenos">542</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="Expression.transform-543"><a href="#Expression.transform-543"><span class="linenos">543</span></a>
-</span><span id="Expression.transform-544"><a href="#Expression.transform-544"><span class="linenos">544</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
-</span><span id="Expression.transform-545"><a href="#Expression.transform-545"><span class="linenos">545</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-532"><a href="#Expression.transform-532"><span class="linenos">532</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.transform-533"><a href="#Expression.transform-533"><span class="linenos">533</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
+</span><span id="Expression.transform-534"><a href="#Expression.transform-534"><span class="linenos">534</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
+</span><span id="Expression.transform-535"><a href="#Expression.transform-535"><span class="linenos">535</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
+</span><span id="Expression.transform-536"><a href="#Expression.transform-536"><span class="linenos">536</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
+</span><span id="Expression.transform-537"><a href="#Expression.transform-537"><span class="linenos">537</span></a><span class="sd"> modified in place.</span>
+</span><span id="Expression.transform-538"><a href="#Expression.transform-538"><span class="linenos">538</span></a>
+</span><span id="Expression.transform-539"><a href="#Expression.transform-539"><span class="linenos">539</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.transform-540"><a href="#Expression.transform-540"><span class="linenos">540</span></a><span class="sd"> The transformed tree.</span>
+</span><span id="Expression.transform-541"><a href="#Expression.transform-541"><span class="linenos">541</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.transform-542"><a href="#Expression.transform-542"><span class="linenos">542</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
+</span><span id="Expression.transform-543"><a href="#Expression.transform-543"><span class="linenos">543</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="Expression.transform-544"><a href="#Expression.transform-544"><span class="linenos">544</span></a>
+</span><span id="Expression.transform-545"><a href="#Expression.transform-545"><span class="linenos">545</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Expression.transform-546"><a href="#Expression.transform-546"><span class="linenos">546</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-547"><a href="#Expression.transform-547"><span class="linenos">547</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="Expression.transform-548"><a href="#Expression.transform-548"><span class="linenos">548</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.transform-549"><a href="#Expression.transform-549"><span class="linenos">549</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="Expression.transform-550"><a href="#Expression.transform-550"><span class="linenos">550</span></a>
+</span><span id="Expression.transform-551"><a href="#Expression.transform-551"><span class="linenos">551</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
+</span><span id="Expression.transform-552"><a href="#Expression.transform-552"><span class="linenos">552</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span></pre></div>
@@ -13599,32 +13627,32 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.replace"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-555"><a href="#Expression.replace-555"><span class="linenos">555</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
-</span><span id="Expression.replace-556"><a href="#Expression.replace-556"><span class="linenos">556</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.replace-557"><a href="#Expression.replace-557"><span class="linenos">557</span></a><span class="sd"> Swap out this expression with a new expression.</span>
-</span><span id="Expression.replace-558"><a href="#Expression.replace-558"><span class="linenos">558</span></a>
-</span><span id="Expression.replace-559"><a href="#Expression.replace-559"><span class="linenos">559</span></a><span class="sd"> For example::</span>
-</span><span id="Expression.replace-560"><a href="#Expression.replace-560"><span class="linenos">560</span></a>
-</span><span id="Expression.replace-561"><a href="#Expression.replace-561"><span class="linenos">561</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
-</span><span id="Expression.replace-562"><a href="#Expression.replace-562"><span class="linenos">562</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
-</span><span id="Expression.replace-563"><a href="#Expression.replace-563"><span class="linenos">563</span></a><span class="sd"> (COLUMN this: y)</span>
-</span><span id="Expression.replace-564"><a href="#Expression.replace-564"><span class="linenos">564</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
-</span><span id="Expression.replace-565"><a href="#Expression.replace-565"><span class="linenos">565</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
-</span><span id="Expression.replace-566"><a href="#Expression.replace-566"><span class="linenos">566</span></a>
-</span><span id="Expression.replace-567"><a href="#Expression.replace-567"><span class="linenos">567</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.replace-568"><a href="#Expression.replace-568"><span class="linenos">568</span></a><span class="sd"> expression: new node</span>
-</span><span id="Expression.replace-569"><a href="#Expression.replace-569"><span class="linenos">569</span></a>
-</span><span id="Expression.replace-570"><a href="#Expression.replace-570"><span class="linenos">570</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.replace-571"><a href="#Expression.replace-571"><span class="linenos">571</span></a><span class="sd"> The new expression or expressions.</span>
-</span><span id="Expression.replace-572"><a href="#Expression.replace-572"><span class="linenos">572</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.replace-573"><a href="#Expression.replace-573"><span class="linenos">573</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
-</span><span id="Expression.replace-574"><a href="#Expression.replace-574"><span class="linenos">574</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Expression.replace-575"><a href="#Expression.replace-575"><span class="linenos">575</span></a>
-</span><span id="Expression.replace-576"><a href="#Expression.replace-576"><span class="linenos">576</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
-</span><span id="Expression.replace-577"><a href="#Expression.replace-577"><span class="linenos">577</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Expression.replace-578"><a href="#Expression.replace-578"><span class="linenos">578</span></a>
-</span><span id="Expression.replace-579"><a href="#Expression.replace-579"><span class="linenos">579</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
-</span><span id="Expression.replace-580"><a href="#Expression.replace-580"><span class="linenos">580</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-562"><a href="#Expression.replace-562"><span class="linenos">562</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
+</span><span id="Expression.replace-563"><a href="#Expression.replace-563"><span class="linenos">563</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.replace-564"><a href="#Expression.replace-564"><span class="linenos">564</span></a><span class="sd"> Swap out this expression with a new expression.</span>
+</span><span id="Expression.replace-565"><a href="#Expression.replace-565"><span class="linenos">565</span></a>
+</span><span id="Expression.replace-566"><a href="#Expression.replace-566"><span class="linenos">566</span></a><span class="sd"> For example::</span>
+</span><span id="Expression.replace-567"><a href="#Expression.replace-567"><span class="linenos">567</span></a>
+</span><span id="Expression.replace-568"><a href="#Expression.replace-568"><span class="linenos">568</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
+</span><span id="Expression.replace-569"><a href="#Expression.replace-569"><span class="linenos">569</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
+</span><span id="Expression.replace-570"><a href="#Expression.replace-570"><span class="linenos">570</span></a><span class="sd"> (COLUMN this: y)</span>
+</span><span id="Expression.replace-571"><a href="#Expression.replace-571"><span class="linenos">571</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
+</span><span id="Expression.replace-572"><a href="#Expression.replace-572"><span class="linenos">572</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
+</span><span id="Expression.replace-573"><a href="#Expression.replace-573"><span class="linenos">573</span></a>
+</span><span id="Expression.replace-574"><a href="#Expression.replace-574"><span class="linenos">574</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.replace-575"><a href="#Expression.replace-575"><span class="linenos">575</span></a><span class="sd"> expression: new node</span>
+</span><span id="Expression.replace-576"><a href="#Expression.replace-576"><span class="linenos">576</span></a>
+</span><span id="Expression.replace-577"><a href="#Expression.replace-577"><span class="linenos">577</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.replace-578"><a href="#Expression.replace-578"><span class="linenos">578</span></a><span class="sd"> The new expression or expressions.</span>
+</span><span id="Expression.replace-579"><a href="#Expression.replace-579"><span class="linenos">579</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.replace-580"><a href="#Expression.replace-580"><span class="linenos">580</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
+</span><span id="Expression.replace-581"><a href="#Expression.replace-581"><span class="linenos">581</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Expression.replace-582"><a href="#Expression.replace-582"><span class="linenos">582</span></a>
+</span><span id="Expression.replace-583"><a href="#Expression.replace-583"><span class="linenos">583</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
+</span><span id="Expression.replace-584"><a href="#Expression.replace-584"><span class="linenos">584</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Expression.replace-585"><a href="#Expression.replace-585"><span class="linenos">585</span></a>
+</span><span id="Expression.replace-586"><a href="#Expression.replace-586"><span class="linenos">586</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
+</span><span id="Expression.replace-587"><a href="#Expression.replace-587"><span class="linenos">587</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -13665,15 +13693,15 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.pop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-582"><a href="#Expression.pop-582"><span class="linenos">582</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression.pop-583"><a href="#Expression.pop-583"><span class="linenos">583</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.pop-584"><a href="#Expression.pop-584"><span class="linenos">584</span></a><span class="sd"> Remove this expression from its AST.</span>
-</span><span id="Expression.pop-585"><a href="#Expression.pop-585"><span class="linenos">585</span></a>
-</span><span id="Expression.pop-586"><a href="#Expression.pop-586"><span class="linenos">586</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.pop-587"><a href="#Expression.pop-587"><span class="linenos">587</span></a><span class="sd"> The popped expression.</span>
-</span><span id="Expression.pop-588"><a href="#Expression.pop-588"><span class="linenos">588</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.pop-589"><a href="#Expression.pop-589"><span class="linenos">589</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
-</span><span id="Expression.pop-590"><a href="#Expression.pop-590"><span class="linenos">590</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-589"><a href="#Expression.pop-589"><span class="linenos">589</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression.pop-590"><a href="#Expression.pop-590"><span class="linenos">590</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.pop-591"><a href="#Expression.pop-591"><span class="linenos">591</span></a><span class="sd"> Remove this expression from its AST.</span>
+</span><span id="Expression.pop-592"><a href="#Expression.pop-592"><span class="linenos">592</span></a>
+</span><span id="Expression.pop-593"><a href="#Expression.pop-593"><span class="linenos">593</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.pop-594"><a href="#Expression.pop-594"><span class="linenos">594</span></a><span class="sd"> The popped expression.</span>
+</span><span id="Expression.pop-595"><a href="#Expression.pop-595"><span class="linenos">595</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.pop-596"><a href="#Expression.pop-596"><span class="linenos">596</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
+</span><span id="Expression.pop-597"><a href="#Expression.pop-597"><span class="linenos">597</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -13699,22 +13727,22 @@ modified in place.</li>
</div>
<a class="headerlink" href="#Expression.assert_is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-592"><a href="#Expression.assert_is-592"><span class="linenos">592</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Expression.assert_is-593"><a href="#Expression.assert_is-593"><span class="linenos">593</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.assert_is-594"><a href="#Expression.assert_is-594"><span class="linenos">594</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
-</span><span id="Expression.assert_is-595"><a href="#Expression.assert_is-595"><span class="linenos">595</span></a>
-</span><span id="Expression.assert_is-596"><a href="#Expression.assert_is-596"><span class="linenos">596</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
-</span><span id="Expression.assert_is-597"><a href="#Expression.assert_is-597"><span class="linenos">597</span></a><span class="sd"> Otherwise, this returns this expression.</span>
-</span><span id="Expression.assert_is-598"><a href="#Expression.assert_is-598"><span class="linenos">598</span></a>
-</span><span id="Expression.assert_is-599"><a href="#Expression.assert_is-599"><span class="linenos">599</span></a><span class="sd"> Examples:</span>
-</span><span id="Expression.assert_is-600"><a href="#Expression.assert_is-600"><span class="linenos">600</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
-</span><span id="Expression.assert_is-601"><a href="#Expression.assert_is-601"><span class="linenos">601</span></a>
-</span><span id="Expression.assert_is-602"><a href="#Expression.assert_is-602"><span class="linenos">602</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Expression.assert_is-603"><a href="#Expression.assert_is-603"><span class="linenos">603</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
-</span><span id="Expression.assert_is-604"><a href="#Expression.assert_is-604"><span class="linenos">604</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
-</span><span id="Expression.assert_is-605"><a href="#Expression.assert_is-605"><span class="linenos">605</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.assert_is-606"><a href="#Expression.assert_is-606"><span class="linenos">606</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
-</span><span id="Expression.assert_is-607"><a href="#Expression.assert_is-607"><span class="linenos">607</span></a> <span class="k">return</span> <span class="bp">self</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-599"><a href="#Expression.assert_is-599"><span class="linenos">599</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Expression.assert_is-600"><a href="#Expression.assert_is-600"><span class="linenos">600</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.assert_is-601"><a href="#Expression.assert_is-601"><span class="linenos">601</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
+</span><span id="Expression.assert_is-602"><a href="#Expression.assert_is-602"><span class="linenos">602</span></a>
+</span><span id="Expression.assert_is-603"><a href="#Expression.assert_is-603"><span class="linenos">603</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
+</span><span id="Expression.assert_is-604"><a href="#Expression.assert_is-604"><span class="linenos">604</span></a><span class="sd"> Otherwise, this returns this expression.</span>
+</span><span id="Expression.assert_is-605"><a href="#Expression.assert_is-605"><span class="linenos">605</span></a>
+</span><span id="Expression.assert_is-606"><a href="#Expression.assert_is-606"><span class="linenos">606</span></a><span class="sd"> Examples:</span>
+</span><span id="Expression.assert_is-607"><a href="#Expression.assert_is-607"><span class="linenos">607</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
+</span><span id="Expression.assert_is-608"><a href="#Expression.assert_is-608"><span class="linenos">608</span></a>
+</span><span id="Expression.assert_is-609"><a href="#Expression.assert_is-609"><span class="linenos">609</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Expression.assert_is-610"><a href="#Expression.assert_is-610"><span class="linenos">610</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
+</span><span id="Expression.assert_is-611"><a href="#Expression.assert_is-611"><span class="linenos">611</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
+</span><span id="Expression.assert_is-612"><a href="#Expression.assert_is-612"><span class="linenos">612</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.assert_is-613"><a href="#Expression.assert_is-613"><span class="linenos">613</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
+</span><span id="Expression.assert_is-614"><a href="#Expression.assert_is-614"><span class="linenos">614</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
@@ -13750,39 +13778,39 @@ Otherwise, this returns this expression.</p>
</div>
<a class="headerlink" href="#Expression.error_messages"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-609"><a href="#Expression.error_messages-609"><span class="linenos">609</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Expression.error_messages-610"><a href="#Expression.error_messages-610"><span class="linenos">610</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.error_messages-611"><a href="#Expression.error_messages-611"><span class="linenos">611</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
-</span><span id="Expression.error_messages-612"><a href="#Expression.error_messages-612"><span class="linenos">612</span></a>
-</span><span id="Expression.error_messages-613"><a href="#Expression.error_messages-613"><span class="linenos">613</span></a><span class="sd"> Args:</span>
-</span><span id="Expression.error_messages-614"><a href="#Expression.error_messages-614"><span class="linenos">614</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
-</span><span id="Expression.error_messages-615"><a href="#Expression.error_messages-615"><span class="linenos">615</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
-</span><span id="Expression.error_messages-616"><a href="#Expression.error_messages-616"><span class="linenos">616</span></a>
-</span><span id="Expression.error_messages-617"><a href="#Expression.error_messages-617"><span class="linenos">617</span></a><span class="sd"> Returns:</span>
-</span><span id="Expression.error_messages-618"><a href="#Expression.error_messages-618"><span class="linenos">618</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
-</span><span id="Expression.error_messages-619"><a href="#Expression.error_messages-619"><span class="linenos">619</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.error_messages-620"><a href="#Expression.error_messages-620"><span class="linenos">620</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Expression.error_messages-621"><a href="#Expression.error_messages-621"><span class="linenos">621</span></a>
-</span><span id="Expression.error_messages-622"><a href="#Expression.error_messages-622"><span class="linenos">622</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
-</span><span id="Expression.error_messages-623"><a href="#Expression.error_messages-623"><span class="linenos">623</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
-</span><span id="Expression.error_messages-624"><a href="#Expression.error_messages-624"><span class="linenos">624</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression.error_messages-625"><a href="#Expression.error_messages-625"><span class="linenos">625</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Expression.error_messages-626"><a href="#Expression.error_messages-626"><span class="linenos">626</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
-</span><span id="Expression.error_messages-627"><a href="#Expression.error_messages-627"><span class="linenos">627</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
-</span><span id="Expression.error_messages-628"><a href="#Expression.error_messages-628"><span class="linenos">628</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="Expression.error_messages-629"><a href="#Expression.error_messages-629"><span class="linenos">629</span></a>
-</span><span id="Expression.error_messages-630"><a href="#Expression.error_messages-630"><span class="linenos">630</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="Expression.error_messages-631"><a href="#Expression.error_messages-631"><span class="linenos">631</span></a> <span class="n">args</span>
-</span><span id="Expression.error_messages-632"><a href="#Expression.error_messages-632"><span class="linenos">632</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
-</span><span id="Expression.error_messages-633"><a href="#Expression.error_messages-633"><span class="linenos">633</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="Expression.error_messages-634"><a href="#Expression.error_messages-634"><span class="linenos">634</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
-</span><span id="Expression.error_messages-635"><a href="#Expression.error_messages-635"><span class="linenos">635</span></a> <span class="p">):</span>
-</span><span id="Expression.error_messages-636"><a href="#Expression.error_messages-636"><span class="linenos">636</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Expression.error_messages-637"><a href="#Expression.error_messages-637"><span class="linenos">637</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
-</span><span id="Expression.error_messages-638"><a href="#Expression.error_messages-638"><span class="linenos">638</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="Expression.error_messages-639"><a href="#Expression.error_messages-639"><span class="linenos">639</span></a> <span class="p">)</span>
-</span><span id="Expression.error_messages-640"><a href="#Expression.error_messages-640"><span class="linenos">640</span></a>
-</span><span id="Expression.error_messages-641"><a href="#Expression.error_messages-641"><span class="linenos">641</span></a> <span class="k">return</span> <span class="n">errors</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-616"><a href="#Expression.error_messages-616"><span class="linenos">616</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Expression.error_messages-617"><a href="#Expression.error_messages-617"><span class="linenos">617</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.error_messages-618"><a href="#Expression.error_messages-618"><span class="linenos">618</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
+</span><span id="Expression.error_messages-619"><a href="#Expression.error_messages-619"><span class="linenos">619</span></a>
+</span><span id="Expression.error_messages-620"><a href="#Expression.error_messages-620"><span class="linenos">620</span></a><span class="sd"> Args:</span>
+</span><span id="Expression.error_messages-621"><a href="#Expression.error_messages-621"><span class="linenos">621</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
+</span><span id="Expression.error_messages-622"><a href="#Expression.error_messages-622"><span class="linenos">622</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
+</span><span id="Expression.error_messages-623"><a href="#Expression.error_messages-623"><span class="linenos">623</span></a>
+</span><span id="Expression.error_messages-624"><a href="#Expression.error_messages-624"><span class="linenos">624</span></a><span class="sd"> Returns:</span>
+</span><span id="Expression.error_messages-625"><a href="#Expression.error_messages-625"><span class="linenos">625</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
+</span><span id="Expression.error_messages-626"><a href="#Expression.error_messages-626"><span class="linenos">626</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.error_messages-627"><a href="#Expression.error_messages-627"><span class="linenos">627</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Expression.error_messages-628"><a href="#Expression.error_messages-628"><span class="linenos">628</span></a>
+</span><span id="Expression.error_messages-629"><a href="#Expression.error_messages-629"><span class="linenos">629</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
+</span><span id="Expression.error_messages-630"><a href="#Expression.error_messages-630"><span class="linenos">630</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
+</span><span id="Expression.error_messages-631"><a href="#Expression.error_messages-631"><span class="linenos">631</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression.error_messages-632"><a href="#Expression.error_messages-632"><span class="linenos">632</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Expression.error_messages-633"><a href="#Expression.error_messages-633"><span class="linenos">633</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
+</span><span id="Expression.error_messages-634"><a href="#Expression.error_messages-634"><span class="linenos">634</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
+</span><span id="Expression.error_messages-635"><a href="#Expression.error_messages-635"><span class="linenos">635</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="Expression.error_messages-636"><a href="#Expression.error_messages-636"><span class="linenos">636</span></a>
+</span><span id="Expression.error_messages-637"><a href="#Expression.error_messages-637"><span class="linenos">637</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="Expression.error_messages-638"><a href="#Expression.error_messages-638"><span class="linenos">638</span></a> <span class="n">args</span>
+</span><span id="Expression.error_messages-639"><a href="#Expression.error_messages-639"><span class="linenos">639</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
+</span><span id="Expression.error_messages-640"><a href="#Expression.error_messages-640"><span class="linenos">640</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="Expression.error_messages-641"><a href="#Expression.error_messages-641"><span class="linenos">641</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
+</span><span id="Expression.error_messages-642"><a href="#Expression.error_messages-642"><span class="linenos">642</span></a> <span class="p">):</span>
+</span><span id="Expression.error_messages-643"><a href="#Expression.error_messages-643"><span class="linenos">643</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Expression.error_messages-644"><a href="#Expression.error_messages-644"><span class="linenos">644</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
+</span><span id="Expression.error_messages-645"><a href="#Expression.error_messages-645"><span class="linenos">645</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="Expression.error_messages-646"><a href="#Expression.error_messages-646"><span class="linenos">646</span></a> <span class="p">)</span>
+</span><span id="Expression.error_messages-647"><a href="#Expression.error_messages-647"><span class="linenos">647</span></a>
+</span><span id="Expression.error_messages-648"><a href="#Expression.error_messages-648"><span class="linenos">648</span></a> <span class="k">return</span> <span class="n">errors</span>
</span></pre></div>
@@ -13815,13 +13843,13 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Expression.dump"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-643"><a href="#Expression.dump-643"><span class="linenos">643</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Expression.dump-644"><a href="#Expression.dump-644"><span class="linenos">644</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.dump-645"><a href="#Expression.dump-645"><span class="linenos">645</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
-</span><span id="Expression.dump-646"><a href="#Expression.dump-646"><span class="linenos">646</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.dump-647"><a href="#Expression.dump-647"><span class="linenos">647</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
-</span><span id="Expression.dump-648"><a href="#Expression.dump-648"><span class="linenos">648</span></a>
-</span><span id="Expression.dump-649"><a href="#Expression.dump-649"><span class="linenos">649</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-650"><a href="#Expression.dump-650"><span class="linenos">650</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Expression.dump-651"><a href="#Expression.dump-651"><span class="linenos">651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.dump-652"><a href="#Expression.dump-652"><span class="linenos">652</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
+</span><span id="Expression.dump-653"><a href="#Expression.dump-653"><span class="linenos">653</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.dump-654"><a href="#Expression.dump-654"><span class="linenos">654</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
+</span><span id="Expression.dump-655"><a href="#Expression.dump-655"><span class="linenos">655</span></a>
+</span><span id="Expression.dump-656"><a href="#Expression.dump-656"><span class="linenos">656</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span></pre></div>
@@ -13842,14 +13870,14 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Expression.load"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-651"><a href="#Expression.load-651"><span class="linenos">651</span></a> <span class="nd">@classmethod</span>
-</span><span id="Expression.load-652"><a href="#Expression.load-652"><span class="linenos">652</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
-</span><span id="Expression.load-653"><a href="#Expression.load-653"><span class="linenos">653</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Expression.load-654"><a href="#Expression.load-654"><span class="linenos">654</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
-</span><span id="Expression.load-655"><a href="#Expression.load-655"><span class="linenos">655</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Expression.load-656"><a href="#Expression.load-656"><span class="linenos">656</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
-</span><span id="Expression.load-657"><a href="#Expression.load-657"><span class="linenos">657</span></a>
-</span><span id="Expression.load-658"><a href="#Expression.load-658"><span class="linenos">658</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-658"><a href="#Expression.load-658"><span class="linenos">658</span></a> <span class="nd">@classmethod</span>
+</span><span id="Expression.load-659"><a href="#Expression.load-659"><span class="linenos">659</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
+</span><span id="Expression.load-660"><a href="#Expression.load-660"><span class="linenos">660</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Expression.load-661"><a href="#Expression.load-661"><span class="linenos">661</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
+</span><span id="Expression.load-662"><a href="#Expression.load-662"><span class="linenos">662</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Expression.load-663"><a href="#Expression.load-663"><span class="linenos">663</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
+</span><span id="Expression.load-664"><a href="#Expression.load-664"><span class="linenos">664</span></a>
+</span><span id="Expression.load-665"><a href="#Expression.load-665"><span class="linenos">665</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
</span></pre></div>
@@ -13895,217 +13923,217 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-669"><a href="#Condition-669"><span class="linenos">669</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Condition-670"><a href="#Condition-670"><span class="linenos">670</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="Condition-671"><a href="#Condition-671"><span class="linenos">671</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition-672"><a href="#Condition-672"><span class="linenos">672</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Condition-673"><a href="#Condition-673"><span class="linenos">673</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-674"><a href="#Condition-674"><span class="linenos">674</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition-675"><a href="#Condition-675"><span class="linenos">675</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Condition-677"><a href="#Condition-677"><span class="linenos">677</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition-678"><a href="#Condition-678"><span class="linenos">678</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a>
-</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a><span class="sd"> Example:</span>
-</span><span id="Condition-681"><a href="#Condition-681"><span class="linenos">681</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition-682"><a href="#Condition-682"><span class="linenos">682</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="Condition-683"><a href="#Condition-683"><span class="linenos">683</span></a>
-</span><span id="Condition-684"><a href="#Condition-684"><span class="linenos">684</span></a><span class="sd"> Args:</span>
-</span><span id="Condition-685"><a href="#Condition-685"><span class="linenos">685</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Condition-686"><a href="#Condition-686"><span class="linenos">686</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition-687"><a href="#Condition-687"><span class="linenos">687</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Condition-688"><a href="#Condition-688"><span class="linenos">688</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition-689"><a href="#Condition-689"><span class="linenos">689</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Condition-677"><a href="#Condition-677"><span class="linenos">677</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="Condition-678"><a href="#Condition-678"><span class="linenos">678</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-681"><a href="#Condition-681"><span class="linenos">681</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-682"><a href="#Condition-682"><span class="linenos">682</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-683"><a href="#Condition-683"><span class="linenos">683</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Condition-684"><a href="#Condition-684"><span class="linenos">684</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition-685"><a href="#Condition-685"><span class="linenos">685</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
+</span><span id="Condition-686"><a href="#Condition-686"><span class="linenos">686</span></a>
+</span><span id="Condition-687"><a href="#Condition-687"><span class="linenos">687</span></a><span class="sd"> Example:</span>
+</span><span id="Condition-688"><a href="#Condition-688"><span class="linenos">688</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition-689"><a href="#Condition-689"><span class="linenos">689</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="Condition-690"><a href="#Condition-690"><span class="linenos">690</span></a>
-</span><span id="Condition-691"><a href="#Condition-691"><span class="linenos">691</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition-692"><a href="#Condition-692"><span class="linenos">692</span></a><span class="sd"> The new And condition.</span>
-</span><span id="Condition-693"><a href="#Condition-693"><span class="linenos">693</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition-694"><a href="#Condition-694"><span class="linenos">694</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Condition-695"><a href="#Condition-695"><span class="linenos">695</span></a>
-</span><span id="Condition-696"><a href="#Condition-696"><span class="linenos">696</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="Condition-697"><a href="#Condition-697"><span class="linenos">697</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition-698"><a href="#Condition-698"><span class="linenos">698</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Condition-699"><a href="#Condition-699"><span class="linenos">699</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-700"><a href="#Condition-700"><span class="linenos">700</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition-701"><a href="#Condition-701"><span class="linenos">701</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition-702"><a href="#Condition-702"><span class="linenos">702</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Condition-703"><a href="#Condition-703"><span class="linenos">703</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition-704"><a href="#Condition-704"><span class="linenos">704</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="Condition-705"><a href="#Condition-705"><span class="linenos">705</span></a>
-</span><span id="Condition-706"><a href="#Condition-706"><span class="linenos">706</span></a><span class="sd"> Example:</span>
-</span><span id="Condition-707"><a href="#Condition-707"><span class="linenos">707</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition-708"><a href="#Condition-708"><span class="linenos">708</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="Condition-709"><a href="#Condition-709"><span class="linenos">709</span></a>
-</span><span id="Condition-710"><a href="#Condition-710"><span class="linenos">710</span></a><span class="sd"> Args:</span>
-</span><span id="Condition-711"><a href="#Condition-711"><span class="linenos">711</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Condition-712"><a href="#Condition-712"><span class="linenos">712</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition-713"><a href="#Condition-713"><span class="linenos">713</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Condition-714"><a href="#Condition-714"><span class="linenos">714</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition-715"><a href="#Condition-715"><span class="linenos">715</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition-691"><a href="#Condition-691"><span class="linenos">691</span></a><span class="sd"> Args:</span>
+</span><span id="Condition-692"><a href="#Condition-692"><span class="linenos">692</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition-693"><a href="#Condition-693"><span class="linenos">693</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition-694"><a href="#Condition-694"><span class="linenos">694</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition-695"><a href="#Condition-695"><span class="linenos">695</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition-696"><a href="#Condition-696"><span class="linenos">696</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition-697"><a href="#Condition-697"><span class="linenos">697</span></a>
+</span><span id="Condition-698"><a href="#Condition-698"><span class="linenos">698</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition-699"><a href="#Condition-699"><span class="linenos">699</span></a><span class="sd"> The new And condition.</span>
+</span><span id="Condition-700"><a href="#Condition-700"><span class="linenos">700</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition-701"><a href="#Condition-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Condition-702"><a href="#Condition-702"><span class="linenos">702</span></a>
+</span><span id="Condition-703"><a href="#Condition-703"><span class="linenos">703</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="Condition-704"><a href="#Condition-704"><span class="linenos">704</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-705"><a href="#Condition-705"><span class="linenos">705</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Condition-706"><a href="#Condition-706"><span class="linenos">706</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-707"><a href="#Condition-707"><span class="linenos">707</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-708"><a href="#Condition-708"><span class="linenos">708</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-709"><a href="#Condition-709"><span class="linenos">709</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Condition-710"><a href="#Condition-710"><span class="linenos">710</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition-711"><a href="#Condition-711"><span class="linenos">711</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="Condition-712"><a href="#Condition-712"><span class="linenos">712</span></a>
+</span><span id="Condition-713"><a href="#Condition-713"><span class="linenos">713</span></a><span class="sd"> Example:</span>
+</span><span id="Condition-714"><a href="#Condition-714"><span class="linenos">714</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition-715"><a href="#Condition-715"><span class="linenos">715</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
</span><span id="Condition-716"><a href="#Condition-716"><span class="linenos">716</span></a>
-</span><span id="Condition-717"><a href="#Condition-717"><span class="linenos">717</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition-718"><a href="#Condition-718"><span class="linenos">718</span></a><span class="sd"> The new Or condition.</span>
-</span><span id="Condition-719"><a href="#Condition-719"><span class="linenos">719</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition-720"><a href="#Condition-720"><span class="linenos">720</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Condition-721"><a href="#Condition-721"><span class="linenos">721</span></a>
-</span><span id="Condition-722"><a href="#Condition-722"><span class="linenos">722</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-</span><span id="Condition-723"><a href="#Condition-723"><span class="linenos">723</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition-724"><a href="#Condition-724"><span class="linenos">724</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="Condition-725"><a href="#Condition-725"><span class="linenos">725</span></a>
-</span><span id="Condition-726"><a href="#Condition-726"><span class="linenos">726</span></a><span class="sd"> Example:</span>
-</span><span id="Condition-727"><a href="#Condition-727"><span class="linenos">727</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="Condition-728"><a href="#Condition-728"><span class="linenos">728</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="Condition-729"><a href="#Condition-729"><span class="linenos">729</span></a>
-</span><span id="Condition-730"><a href="#Condition-730"><span class="linenos">730</span></a><span class="sd"> Args:</span>
-</span><span id="Condition-731"><a href="#Condition-731"><span class="linenos">731</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Condition-717"><a href="#Condition-717"><span class="linenos">717</span></a><span class="sd"> Args:</span>
+</span><span id="Condition-718"><a href="#Condition-718"><span class="linenos">718</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition-719"><a href="#Condition-719"><span class="linenos">719</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition-720"><a href="#Condition-720"><span class="linenos">720</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition-721"><a href="#Condition-721"><span class="linenos">721</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition-722"><a href="#Condition-722"><span class="linenos">722</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition-723"><a href="#Condition-723"><span class="linenos">723</span></a>
+</span><span id="Condition-724"><a href="#Condition-724"><span class="linenos">724</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition-725"><a href="#Condition-725"><span class="linenos">725</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="Condition-726"><a href="#Condition-726"><span class="linenos">726</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition-727"><a href="#Condition-727"><span class="linenos">727</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Condition-728"><a href="#Condition-728"><span class="linenos">728</span></a>
+</span><span id="Condition-729"><a href="#Condition-729"><span class="linenos">729</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
+</span><span id="Condition-730"><a href="#Condition-730"><span class="linenos">730</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition-731"><a href="#Condition-731"><span class="linenos">731</span></a><span class="sd"> Wrap this condition with NOT.</span>
</span><span id="Condition-732"><a href="#Condition-732"><span class="linenos">732</span></a>
-</span><span id="Condition-733"><a href="#Condition-733"><span class="linenos">733</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition-734"><a href="#Condition-734"><span class="linenos">734</span></a><span class="sd"> The new Not instance.</span>
-</span><span id="Condition-735"><a href="#Condition-735"><span class="linenos">735</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition-736"><a href="#Condition-736"><span class="linenos">736</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="Condition-737"><a href="#Condition-737"><span class="linenos">737</span></a>
-</span><span id="Condition-738"><a href="#Condition-738"><span class="linenos">738</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
-</span><span id="Condition-739"><a href="#Condition-739"><span class="linenos">739</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition-740"><a href="#Condition-740"><span class="linenos">740</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="Condition-741"><a href="#Condition-741"><span class="linenos">741</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-742"><a href="#Condition-742"><span class="linenos">742</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-743"><a href="#Condition-743"><span class="linenos">743</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition-744"><a href="#Condition-744"><span class="linenos">744</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition-745"><a href="#Condition-745"><span class="linenos">745</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
-</span><span id="Condition-746"><a href="#Condition-746"><span class="linenos">746</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Condition-747"><a href="#Condition-747"><span class="linenos">747</span></a>
-</span><span id="Condition-748"><a href="#Condition-748"><span class="linenos">748</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="Condition-749"><a href="#Condition-749"><span class="linenos">749</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="Condition-750"><a href="#Condition-750"><span class="linenos">750</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-751"><a href="#Condition-751"><span class="linenos">751</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
-</span><span id="Condition-752"><a href="#Condition-752"><span class="linenos">752</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="Condition-753"><a href="#Condition-753"><span class="linenos">753</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
-</span><span id="Condition-754"><a href="#Condition-754"><span class="linenos">754</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
-</span><span id="Condition-755"><a href="#Condition-755"><span class="linenos">755</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
-</span><span id="Condition-756"><a href="#Condition-756"><span class="linenos">756</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-757"><a href="#Condition-757"><span class="linenos">757</span></a>
-</span><span id="Condition-758"><a href="#Condition-758"><span class="linenos">758</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]):</span>
-</span><span id="Condition-759"><a href="#Condition-759"><span class="linenos">759</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
-</span><span id="Condition-760"><a href="#Condition-760"><span class="linenos">760</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
-</span><span id="Condition-761"><a href="#Condition-761"><span class="linenos">761</span></a> <span class="p">)</span>
-</span><span id="Condition-762"><a href="#Condition-762"><span class="linenos">762</span></a>
-</span><span id="Condition-763"><a href="#Condition-763"><span class="linenos">763</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Condition-764"><a href="#Condition-764"><span class="linenos">764</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition-765"><a href="#Condition-765"><span class="linenos">765</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Condition-766"><a href="#Condition-766"><span class="linenos">766</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-767"><a href="#Condition-767"><span class="linenos">767</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-768"><a href="#Condition-768"><span class="linenos">768</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition-769"><a href="#Condition-769"><span class="linenos">769</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition-770"><a href="#Condition-770"><span class="linenos">770</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Condition-771"><a href="#Condition-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Condition-772"><a href="#Condition-772"><span class="linenos">772</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Condition-773"><a href="#Condition-773"><span class="linenos">773</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Condition-774"><a href="#Condition-774"><span class="linenos">774</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-775"><a href="#Condition-775"><span class="linenos">775</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Condition-776"><a href="#Condition-776"><span class="linenos">776</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Condition-777"><a href="#Condition-777"><span class="linenos">777</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Condition-778"><a href="#Condition-778"><span class="linenos">778</span></a> <span class="p">]</span>
-</span><span id="Condition-779"><a href="#Condition-779"><span class="linenos">779</span></a> <span class="p">)</span>
-</span><span id="Condition-780"><a href="#Condition-780"><span class="linenos">780</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Condition-781"><a href="#Condition-781"><span class="linenos">781</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition-782"><a href="#Condition-782"><span class="linenos">782</span></a> <span class="p">)</span>
-</span><span id="Condition-783"><a href="#Condition-783"><span class="linenos">783</span></a>
-</span><span id="Condition-784"><a href="#Condition-784"><span class="linenos">784</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
-</span><span id="Condition-785"><a href="#Condition-785"><span class="linenos">785</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="Condition-786"><a href="#Condition-786"><span class="linenos">786</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Condition-787"><a href="#Condition-787"><span class="linenos">787</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Condition-788"><a href="#Condition-788"><span class="linenos">788</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Condition-733"><a href="#Condition-733"><span class="linenos">733</span></a><span class="sd"> Example:</span>
+</span><span id="Condition-734"><a href="#Condition-734"><span class="linenos">734</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="Condition-735"><a href="#Condition-735"><span class="linenos">735</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="Condition-736"><a href="#Condition-736"><span class="linenos">736</span></a>
+</span><span id="Condition-737"><a href="#Condition-737"><span class="linenos">737</span></a><span class="sd"> Args:</span>
+</span><span id="Condition-738"><a href="#Condition-738"><span class="linenos">738</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Condition-739"><a href="#Condition-739"><span class="linenos">739</span></a>
+</span><span id="Condition-740"><a href="#Condition-740"><span class="linenos">740</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition-741"><a href="#Condition-741"><span class="linenos">741</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="Condition-742"><a href="#Condition-742"><span class="linenos">742</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition-743"><a href="#Condition-743"><span class="linenos">743</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="Condition-744"><a href="#Condition-744"><span class="linenos">744</span></a>
+</span><span id="Condition-745"><a href="#Condition-745"><span class="linenos">745</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="Condition-746"><a href="#Condition-746"><span class="linenos">746</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-747"><a href="#Condition-747"><span class="linenos">747</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="Condition-748"><a href="#Condition-748"><span class="linenos">748</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-749"><a href="#Condition-749"><span class="linenos">749</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-750"><a href="#Condition-750"><span class="linenos">750</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-751"><a href="#Condition-751"><span class="linenos">751</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-752"><a href="#Condition-752"><span class="linenos">752</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="Condition-753"><a href="#Condition-753"><span class="linenos">753</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Condition-754"><a href="#Condition-754"><span class="linenos">754</span></a>
+</span><span id="Condition-755"><a href="#Condition-755"><span class="linenos">755</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="Condition-756"><a href="#Condition-756"><span class="linenos">756</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="Condition-757"><a href="#Condition-757"><span class="linenos">757</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-758"><a href="#Condition-758"><span class="linenos">758</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
+</span><span id="Condition-759"><a href="#Condition-759"><span class="linenos">759</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="Condition-760"><a href="#Condition-760"><span class="linenos">760</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
+</span><span id="Condition-761"><a href="#Condition-761"><span class="linenos">761</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
+</span><span id="Condition-762"><a href="#Condition-762"><span class="linenos">762</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
+</span><span id="Condition-763"><a href="#Condition-763"><span class="linenos">763</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-764"><a href="#Condition-764"><span class="linenos">764</span></a>
+</span><span id="Condition-765"><a href="#Condition-765"><span class="linenos">765</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]):</span>
+</span><span id="Condition-766"><a href="#Condition-766"><span class="linenos">766</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
+</span><span id="Condition-767"><a href="#Condition-767"><span class="linenos">767</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
+</span><span id="Condition-768"><a href="#Condition-768"><span class="linenos">768</span></a> <span class="p">)</span>
+</span><span id="Condition-769"><a href="#Condition-769"><span class="linenos">769</span></a>
+</span><span id="Condition-770"><a href="#Condition-770"><span class="linenos">770</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Condition-771"><a href="#Condition-771"><span class="linenos">771</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition-772"><a href="#Condition-772"><span class="linenos">772</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Condition-773"><a href="#Condition-773"><span class="linenos">773</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-774"><a href="#Condition-774"><span class="linenos">774</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-775"><a href="#Condition-775"><span class="linenos">775</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition-776"><a href="#Condition-776"><span class="linenos">776</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition-777"><a href="#Condition-777"><span class="linenos">777</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Condition-778"><a href="#Condition-778"><span class="linenos">778</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Condition-779"><a href="#Condition-779"><span class="linenos">779</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Condition-780"><a href="#Condition-780"><span class="linenos">780</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Condition-781"><a href="#Condition-781"><span class="linenos">781</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition-782"><a href="#Condition-782"><span class="linenos">782</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Condition-783"><a href="#Condition-783"><span class="linenos">783</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Condition-784"><a href="#Condition-784"><span class="linenos">784</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Condition-785"><a href="#Condition-785"><span class="linenos">785</span></a> <span class="p">]</span>
+</span><span id="Condition-786"><a href="#Condition-786"><span class="linenos">786</span></a> <span class="p">)</span>
+</span><span id="Condition-787"><a href="#Condition-787"><span class="linenos">787</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Condition-788"><a href="#Condition-788"><span class="linenos">788</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition-789"><a href="#Condition-789"><span class="linenos">789</span></a> <span class="p">)</span>
</span><span id="Condition-790"><a href="#Condition-790"><span class="linenos">790</span></a>
-</span><span id="Condition-791"><a href="#Condition-791"><span class="linenos">791</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
-</span><span id="Condition-792"><a href="#Condition-792"><span class="linenos">792</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-793"><a href="#Condition-793"><span class="linenos">793</span></a>
-</span><span id="Condition-794"><a href="#Condition-794"><span class="linenos">794</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
-</span><span id="Condition-795"><a href="#Condition-795"><span class="linenos">795</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-796"><a href="#Condition-796"><span class="linenos">796</span></a>
-</span><span id="Condition-797"><a href="#Condition-797"><span class="linenos">797</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
-</span><span id="Condition-798"><a href="#Condition-798"><span class="linenos">798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-799"><a href="#Condition-799"><span class="linenos">799</span></a>
-</span><span id="Condition-800"><a href="#Condition-800"><span class="linenos">800</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="Condition-801"><a href="#Condition-801"><span class="linenos">801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-802"><a href="#Condition-802"><span class="linenos">802</span></a>
-</span><span id="Condition-803"><a href="#Condition-803"><span class="linenos">803</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="Condition-804"><a href="#Condition-804"><span class="linenos">804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-805"><a href="#Condition-805"><span class="linenos">805</span></a>
-</span><span id="Condition-806"><a href="#Condition-806"><span class="linenos">806</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
-</span><span id="Condition-807"><a href="#Condition-807"><span class="linenos">807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-808"><a href="#Condition-808"><span class="linenos">808</span></a>
-</span><span id="Condition-809"><a href="#Condition-809"><span class="linenos">809</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
-</span><span id="Condition-810"><a href="#Condition-810"><span class="linenos">810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-811"><a href="#Condition-811"><span class="linenos">811</span></a>
-</span><span id="Condition-812"><a href="#Condition-812"><span class="linenos">812</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
-</span><span id="Condition-813"><a href="#Condition-813"><span class="linenos">813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-814"><a href="#Condition-814"><span class="linenos">814</span></a>
-</span><span id="Condition-815"><a href="#Condition-815"><span class="linenos">815</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
-</span><span id="Condition-816"><a href="#Condition-816"><span class="linenos">816</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-817"><a href="#Condition-817"><span class="linenos">817</span></a>
-</span><span id="Condition-818"><a href="#Condition-818"><span class="linenos">818</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
-</span><span id="Condition-819"><a href="#Condition-819"><span class="linenos">819</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-820"><a href="#Condition-820"><span class="linenos">820</span></a>
-</span><span id="Condition-821"><a href="#Condition-821"><span class="linenos">821</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="Condition-822"><a href="#Condition-822"><span class="linenos">822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-823"><a href="#Condition-823"><span class="linenos">823</span></a>
-</span><span id="Condition-824"><a href="#Condition-824"><span class="linenos">824</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
-</span><span id="Condition-825"><a href="#Condition-825"><span class="linenos">825</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-826"><a href="#Condition-826"><span class="linenos">826</span></a>
-</span><span id="Condition-827"><a href="#Condition-827"><span class="linenos">827</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="Condition-828"><a href="#Condition-828"><span class="linenos">828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-829"><a href="#Condition-829"><span class="linenos">829</span></a>
-</span><span id="Condition-830"><a href="#Condition-830"><span class="linenos">830</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
-</span><span id="Condition-831"><a href="#Condition-831"><span class="linenos">831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-832"><a href="#Condition-832"><span class="linenos">832</span></a>
-</span><span id="Condition-833"><a href="#Condition-833"><span class="linenos">833</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="Condition-834"><a href="#Condition-834"><span class="linenos">834</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-835"><a href="#Condition-835"><span class="linenos">835</span></a>
-</span><span id="Condition-836"><a href="#Condition-836"><span class="linenos">836</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
-</span><span id="Condition-837"><a href="#Condition-837"><span class="linenos">837</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-838"><a href="#Condition-838"><span class="linenos">838</span></a>
-</span><span id="Condition-839"><a href="#Condition-839"><span class="linenos">839</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Condition-840"><a href="#Condition-840"><span class="linenos">840</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-841"><a href="#Condition-841"><span class="linenos">841</span></a>
-</span><span id="Condition-842"><a href="#Condition-842"><span class="linenos">842</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
-</span><span id="Condition-843"><a href="#Condition-843"><span class="linenos">843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-844"><a href="#Condition-844"><span class="linenos">844</span></a>
-</span><span id="Condition-845"><a href="#Condition-845"><span class="linenos">845</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="Condition-846"><a href="#Condition-846"><span class="linenos">846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-847"><a href="#Condition-847"><span class="linenos">847</span></a>
-</span><span id="Condition-848"><a href="#Condition-848"><span class="linenos">848</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
-</span><span id="Condition-849"><a href="#Condition-849"><span class="linenos">849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-850"><a href="#Condition-850"><span class="linenos">850</span></a>
-</span><span id="Condition-851"><a href="#Condition-851"><span class="linenos">851</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="Condition-852"><a href="#Condition-852"><span class="linenos">852</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-853"><a href="#Condition-853"><span class="linenos">853</span></a>
-</span><span id="Condition-854"><a href="#Condition-854"><span class="linenos">854</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
-</span><span id="Condition-855"><a href="#Condition-855"><span class="linenos">855</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-856"><a href="#Condition-856"><span class="linenos">856</span></a>
-</span><span id="Condition-857"><a href="#Condition-857"><span class="linenos">857</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="Condition-858"><a href="#Condition-858"><span class="linenos">858</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-859"><a href="#Condition-859"><span class="linenos">859</span></a>
-</span><span id="Condition-860"><a href="#Condition-860"><span class="linenos">860</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
-</span><span id="Condition-861"><a href="#Condition-861"><span class="linenos">861</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-862"><a href="#Condition-862"><span class="linenos">862</span></a>
-</span><span id="Condition-863"><a href="#Condition-863"><span class="linenos">863</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="Condition-864"><a href="#Condition-864"><span class="linenos">864</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-865"><a href="#Condition-865"><span class="linenos">865</span></a>
-</span><span id="Condition-866"><a href="#Condition-866"><span class="linenos">866</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
-</span><span id="Condition-867"><a href="#Condition-867"><span class="linenos">867</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-868"><a href="#Condition-868"><span class="linenos">868</span></a>
-</span><span id="Condition-869"><a href="#Condition-869"><span class="linenos">869</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="Condition-870"><a href="#Condition-870"><span class="linenos">870</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
-</span><span id="Condition-871"><a href="#Condition-871"><span class="linenos">871</span></a>
-</span><span id="Condition-872"><a href="#Condition-872"><span class="linenos">872</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
-</span><span id="Condition-873"><a href="#Condition-873"><span class="linenos">873</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Condition-874"><a href="#Condition-874"><span class="linenos">874</span></a>
-</span><span id="Condition-875"><a href="#Condition-875"><span class="linenos">875</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
-</span><span id="Condition-876"><a href="#Condition-876"><span class="linenos">876</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
-</span><span id="Condition-877"><a href="#Condition-877"><span class="linenos">877</span></a>
-</span><span id="Condition-878"><a href="#Condition-878"><span class="linenos">878</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="Condition-879"><a href="#Condition-879"><span class="linenos">879</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
+</span><span id="Condition-791"><a href="#Condition-791"><span class="linenos">791</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
+</span><span id="Condition-792"><a href="#Condition-792"><span class="linenos">792</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="Condition-793"><a href="#Condition-793"><span class="linenos">793</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Condition-794"><a href="#Condition-794"><span class="linenos">794</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Condition-795"><a href="#Condition-795"><span class="linenos">795</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Condition-796"><a href="#Condition-796"><span class="linenos">796</span></a> <span class="p">)</span>
+</span><span id="Condition-797"><a href="#Condition-797"><span class="linenos">797</span></a>
+</span><span id="Condition-798"><a href="#Condition-798"><span class="linenos">798</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
+</span><span id="Condition-799"><a href="#Condition-799"><span class="linenos">799</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-800"><a href="#Condition-800"><span class="linenos">800</span></a>
+</span><span id="Condition-801"><a href="#Condition-801"><span class="linenos">801</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
+</span><span id="Condition-802"><a href="#Condition-802"><span class="linenos">802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-803"><a href="#Condition-803"><span class="linenos">803</span></a>
+</span><span id="Condition-804"><a href="#Condition-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
+</span><span id="Condition-805"><a href="#Condition-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-806"><a href="#Condition-806"><span class="linenos">806</span></a>
+</span><span id="Condition-807"><a href="#Condition-807"><span class="linenos">807</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
+</span><span id="Condition-808"><a href="#Condition-808"><span class="linenos">808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-809"><a href="#Condition-809"><span class="linenos">809</span></a>
+</span><span id="Condition-810"><a href="#Condition-810"><span class="linenos">810</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
+</span><span id="Condition-811"><a href="#Condition-811"><span class="linenos">811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-812"><a href="#Condition-812"><span class="linenos">812</span></a>
+</span><span id="Condition-813"><a href="#Condition-813"><span class="linenos">813</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
+</span><span id="Condition-814"><a href="#Condition-814"><span class="linenos">814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-815"><a href="#Condition-815"><span class="linenos">815</span></a>
+</span><span id="Condition-816"><a href="#Condition-816"><span class="linenos">816</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
+</span><span id="Condition-817"><a href="#Condition-817"><span class="linenos">817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-818"><a href="#Condition-818"><span class="linenos">818</span></a>
+</span><span id="Condition-819"><a href="#Condition-819"><span class="linenos">819</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
+</span><span id="Condition-820"><a href="#Condition-820"><span class="linenos">820</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-821"><a href="#Condition-821"><span class="linenos">821</span></a>
+</span><span id="Condition-822"><a href="#Condition-822"><span class="linenos">822</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
+</span><span id="Condition-823"><a href="#Condition-823"><span class="linenos">823</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-824"><a href="#Condition-824"><span class="linenos">824</span></a>
+</span><span id="Condition-825"><a href="#Condition-825"><span class="linenos">825</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
+</span><span id="Condition-826"><a href="#Condition-826"><span class="linenos">826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-827"><a href="#Condition-827"><span class="linenos">827</span></a>
+</span><span id="Condition-828"><a href="#Condition-828"><span class="linenos">828</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="Condition-829"><a href="#Condition-829"><span class="linenos">829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-830"><a href="#Condition-830"><span class="linenos">830</span></a>
+</span><span id="Condition-831"><a href="#Condition-831"><span class="linenos">831</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
+</span><span id="Condition-832"><a href="#Condition-832"><span class="linenos">832</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-833"><a href="#Condition-833"><span class="linenos">833</span></a>
+</span><span id="Condition-834"><a href="#Condition-834"><span class="linenos">834</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="Condition-835"><a href="#Condition-835"><span class="linenos">835</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-836"><a href="#Condition-836"><span class="linenos">836</span></a>
+</span><span id="Condition-837"><a href="#Condition-837"><span class="linenos">837</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
+</span><span id="Condition-838"><a href="#Condition-838"><span class="linenos">838</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-839"><a href="#Condition-839"><span class="linenos">839</span></a>
+</span><span id="Condition-840"><a href="#Condition-840"><span class="linenos">840</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="Condition-841"><a href="#Condition-841"><span class="linenos">841</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-842"><a href="#Condition-842"><span class="linenos">842</span></a>
+</span><span id="Condition-843"><a href="#Condition-843"><span class="linenos">843</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
+</span><span id="Condition-844"><a href="#Condition-844"><span class="linenos">844</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-845"><a href="#Condition-845"><span class="linenos">845</span></a>
+</span><span id="Condition-846"><a href="#Condition-846"><span class="linenos">846</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="Condition-847"><a href="#Condition-847"><span class="linenos">847</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-848"><a href="#Condition-848"><span class="linenos">848</span></a>
+</span><span id="Condition-849"><a href="#Condition-849"><span class="linenos">849</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
+</span><span id="Condition-850"><a href="#Condition-850"><span class="linenos">850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-851"><a href="#Condition-851"><span class="linenos">851</span></a>
+</span><span id="Condition-852"><a href="#Condition-852"><span class="linenos">852</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="Condition-853"><a href="#Condition-853"><span class="linenos">853</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-854"><a href="#Condition-854"><span class="linenos">854</span></a>
+</span><span id="Condition-855"><a href="#Condition-855"><span class="linenos">855</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
+</span><span id="Condition-856"><a href="#Condition-856"><span class="linenos">856</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-857"><a href="#Condition-857"><span class="linenos">857</span></a>
+</span><span id="Condition-858"><a href="#Condition-858"><span class="linenos">858</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="Condition-859"><a href="#Condition-859"><span class="linenos">859</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-860"><a href="#Condition-860"><span class="linenos">860</span></a>
+</span><span id="Condition-861"><a href="#Condition-861"><span class="linenos">861</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
+</span><span id="Condition-862"><a href="#Condition-862"><span class="linenos">862</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-863"><a href="#Condition-863"><span class="linenos">863</span></a>
+</span><span id="Condition-864"><a href="#Condition-864"><span class="linenos">864</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="Condition-865"><a href="#Condition-865"><span class="linenos">865</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-866"><a href="#Condition-866"><span class="linenos">866</span></a>
+</span><span id="Condition-867"><a href="#Condition-867"><span class="linenos">867</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
+</span><span id="Condition-868"><a href="#Condition-868"><span class="linenos">868</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-869"><a href="#Condition-869"><span class="linenos">869</span></a>
+</span><span id="Condition-870"><a href="#Condition-870"><span class="linenos">870</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="Condition-871"><a href="#Condition-871"><span class="linenos">871</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-872"><a href="#Condition-872"><span class="linenos">872</span></a>
+</span><span id="Condition-873"><a href="#Condition-873"><span class="linenos">873</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
+</span><span id="Condition-874"><a href="#Condition-874"><span class="linenos">874</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-875"><a href="#Condition-875"><span class="linenos">875</span></a>
+</span><span id="Condition-876"><a href="#Condition-876"><span class="linenos">876</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="Condition-877"><a href="#Condition-877"><span class="linenos">877</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+</span><span id="Condition-878"><a href="#Condition-878"><span class="linenos">878</span></a>
+</span><span id="Condition-879"><a href="#Condition-879"><span class="linenos">879</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
+</span><span id="Condition-880"><a href="#Condition-880"><span class="linenos">880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Condition-881"><a href="#Condition-881"><span class="linenos">881</span></a>
+</span><span id="Condition-882"><a href="#Condition-882"><span class="linenos">882</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
+</span><span id="Condition-883"><a href="#Condition-883"><span class="linenos">883</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
+</span><span id="Condition-884"><a href="#Condition-884"><span class="linenos">884</span></a>
+</span><span id="Condition-885"><a href="#Condition-885"><span class="linenos">885</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="Condition-886"><a href="#Condition-886"><span class="linenos">886</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
</span></pre></div>
@@ -14122,31 +14150,31 @@ to check that the provided arguments don't exceed the function argument limit.</
</div>
<a class="headerlink" href="#Condition.and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.and_-670"><a href="#Condition.and_-670"><span class="linenos">670</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="Condition.and_-671"><a href="#Condition.and_-671"><span class="linenos">671</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition.and_-672"><a href="#Condition.and_-672"><span class="linenos">672</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Condition.and_-673"><a href="#Condition.and_-673"><span class="linenos">673</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.and_-674"><a href="#Condition.and_-674"><span class="linenos">674</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition.and_-675"><a href="#Condition.and_-675"><span class="linenos">675</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition.and_-676"><a href="#Condition.and_-676"><span class="linenos">676</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Condition.and_-677"><a href="#Condition.and_-677"><span class="linenos">677</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition.and_-678"><a href="#Condition.and_-678"><span class="linenos">678</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
-</span><span id="Condition.and_-679"><a href="#Condition.and_-679"><span class="linenos">679</span></a>
-</span><span id="Condition.and_-680"><a href="#Condition.and_-680"><span class="linenos">680</span></a><span class="sd"> Example:</span>
-</span><span id="Condition.and_-681"><a href="#Condition.and_-681"><span class="linenos">681</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition.and_-682"><a href="#Condition.and_-682"><span class="linenos">682</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
-</span><span id="Condition.and_-683"><a href="#Condition.and_-683"><span class="linenos">683</span></a>
-</span><span id="Condition.and_-684"><a href="#Condition.and_-684"><span class="linenos">684</span></a><span class="sd"> Args:</span>
-</span><span id="Condition.and_-685"><a href="#Condition.and_-685"><span class="linenos">685</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Condition.and_-686"><a href="#Condition.and_-686"><span class="linenos">686</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition.and_-687"><a href="#Condition.and_-687"><span class="linenos">687</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Condition.and_-688"><a href="#Condition.and_-688"><span class="linenos">688</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition.and_-689"><a href="#Condition.and_-689"><span class="linenos">689</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.and_-677"><a href="#Condition.and_-677"><span class="linenos">677</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="Condition.and_-678"><a href="#Condition.and_-678"><span class="linenos">678</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.and_-679"><a href="#Condition.and_-679"><span class="linenos">679</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Condition.and_-680"><a href="#Condition.and_-680"><span class="linenos">680</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.and_-681"><a href="#Condition.and_-681"><span class="linenos">681</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.and_-682"><a href="#Condition.and_-682"><span class="linenos">682</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.and_-683"><a href="#Condition.and_-683"><span class="linenos">683</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Condition.and_-684"><a href="#Condition.and_-684"><span class="linenos">684</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition.and_-685"><a href="#Condition.and_-685"><span class="linenos">685</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
+</span><span id="Condition.and_-686"><a href="#Condition.and_-686"><span class="linenos">686</span></a>
+</span><span id="Condition.and_-687"><a href="#Condition.and_-687"><span class="linenos">687</span></a><span class="sd"> Example:</span>
+</span><span id="Condition.and_-688"><a href="#Condition.and_-688"><span class="linenos">688</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition.and_-689"><a href="#Condition.and_-689"><span class="linenos">689</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="Condition.and_-690"><a href="#Condition.and_-690"><span class="linenos">690</span></a>
-</span><span id="Condition.and_-691"><a href="#Condition.and_-691"><span class="linenos">691</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition.and_-692"><a href="#Condition.and_-692"><span class="linenos">692</span></a><span class="sd"> The new And condition.</span>
-</span><span id="Condition.and_-693"><a href="#Condition.and_-693"><span class="linenos">693</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition.and_-694"><a href="#Condition.and_-694"><span class="linenos">694</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Condition.and_-691"><a href="#Condition.and_-691"><span class="linenos">691</span></a><span class="sd"> Args:</span>
+</span><span id="Condition.and_-692"><a href="#Condition.and_-692"><span class="linenos">692</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition.and_-693"><a href="#Condition.and_-693"><span class="linenos">693</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition.and_-694"><a href="#Condition.and_-694"><span class="linenos">694</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition.and_-695"><a href="#Condition.and_-695"><span class="linenos">695</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition.and_-696"><a href="#Condition.and_-696"><span class="linenos">696</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition.and_-697"><a href="#Condition.and_-697"><span class="linenos">697</span></a>
+</span><span id="Condition.and_-698"><a href="#Condition.and_-698"><span class="linenos">698</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition.and_-699"><a href="#Condition.and_-699"><span class="linenos">699</span></a><span class="sd"> The new And condition.</span>
+</span><span id="Condition.and_-700"><a href="#Condition.and_-700"><span class="linenos">700</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition.and_-701"><a href="#Condition.and_-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -14192,31 +14220,31 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.or_-696"><a href="#Condition.or_-696"><span class="linenos">696</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="Condition.or_-697"><a href="#Condition.or_-697"><span class="linenos">697</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition.or_-698"><a href="#Condition.or_-698"><span class="linenos">698</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Condition.or_-699"><a href="#Condition.or_-699"><span class="linenos">699</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.or_-700"><a href="#Condition.or_-700"><span class="linenos">700</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition.or_-701"><a href="#Condition.or_-701"><span class="linenos">701</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition.or_-702"><a href="#Condition.or_-702"><span class="linenos">702</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="Condition.or_-703"><a href="#Condition.or_-703"><span class="linenos">703</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition.or_-704"><a href="#Condition.or_-704"><span class="linenos">704</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
-</span><span id="Condition.or_-705"><a href="#Condition.or_-705"><span class="linenos">705</span></a>
-</span><span id="Condition.or_-706"><a href="#Condition.or_-706"><span class="linenos">706</span></a><span class="sd"> Example:</span>
-</span><span id="Condition.or_-707"><a href="#Condition.or_-707"><span class="linenos">707</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
-</span><span id="Condition.or_-708"><a href="#Condition.or_-708"><span class="linenos">708</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
-</span><span id="Condition.or_-709"><a href="#Condition.or_-709"><span class="linenos">709</span></a>
-</span><span id="Condition.or_-710"><a href="#Condition.or_-710"><span class="linenos">710</span></a><span class="sd"> Args:</span>
-</span><span id="Condition.or_-711"><a href="#Condition.or_-711"><span class="linenos">711</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Condition.or_-712"><a href="#Condition.or_-712"><span class="linenos">712</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Condition.or_-713"><a href="#Condition.or_-713"><span class="linenos">713</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Condition.or_-714"><a href="#Condition.or_-714"><span class="linenos">714</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
-</span><span id="Condition.or_-715"><a href="#Condition.or_-715"><span class="linenos">715</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.or_-703"><a href="#Condition.or_-703"><span class="linenos">703</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="Condition.or_-704"><a href="#Condition.or_-704"><span class="linenos">704</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.or_-705"><a href="#Condition.or_-705"><span class="linenos">705</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Condition.or_-706"><a href="#Condition.or_-706"><span class="linenos">706</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.or_-707"><a href="#Condition.or_-707"><span class="linenos">707</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.or_-708"><a href="#Condition.or_-708"><span class="linenos">708</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.or_-709"><a href="#Condition.or_-709"><span class="linenos">709</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="Condition.or_-710"><a href="#Condition.or_-710"><span class="linenos">710</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition.or_-711"><a href="#Condition.or_-711"><span class="linenos">711</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
+</span><span id="Condition.or_-712"><a href="#Condition.or_-712"><span class="linenos">712</span></a>
+</span><span id="Condition.or_-713"><a href="#Condition.or_-713"><span class="linenos">713</span></a><span class="sd"> Example:</span>
+</span><span id="Condition.or_-714"><a href="#Condition.or_-714"><span class="linenos">714</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
+</span><span id="Condition.or_-715"><a href="#Condition.or_-715"><span class="linenos">715</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
</span><span id="Condition.or_-716"><a href="#Condition.or_-716"><span class="linenos">716</span></a>
-</span><span id="Condition.or_-717"><a href="#Condition.or_-717"><span class="linenos">717</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition.or_-718"><a href="#Condition.or_-718"><span class="linenos">718</span></a><span class="sd"> The new Or condition.</span>
-</span><span id="Condition.or_-719"><a href="#Condition.or_-719"><span class="linenos">719</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition.or_-720"><a href="#Condition.or_-720"><span class="linenos">720</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Condition.or_-717"><a href="#Condition.or_-717"><span class="linenos">717</span></a><span class="sd"> Args:</span>
+</span><span id="Condition.or_-718"><a href="#Condition.or_-718"><span class="linenos">718</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Condition.or_-719"><a href="#Condition.or_-719"><span class="linenos">719</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Condition.or_-720"><a href="#Condition.or_-720"><span class="linenos">720</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Condition.or_-721"><a href="#Condition.or_-721"><span class="linenos">721</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
+</span><span id="Condition.or_-722"><a href="#Condition.or_-722"><span class="linenos">722</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Condition.or_-723"><a href="#Condition.or_-723"><span class="linenos">723</span></a>
+</span><span id="Condition.or_-724"><a href="#Condition.or_-724"><span class="linenos">724</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition.or_-725"><a href="#Condition.or_-725"><span class="linenos">725</span></a><span class="sd"> The new Or condition.</span>
+</span><span id="Condition.or_-726"><a href="#Condition.or_-726"><span class="linenos">726</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition.or_-727"><a href="#Condition.or_-727"><span class="linenos">727</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -14262,21 +14290,21 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.not_-722"><a href="#Condition.not_-722"><span class="linenos">722</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
-</span><span id="Condition.not_-723"><a href="#Condition.not_-723"><span class="linenos">723</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Condition.not_-724"><a href="#Condition.not_-724"><span class="linenos">724</span></a><span class="sd"> Wrap this condition with NOT.</span>
-</span><span id="Condition.not_-725"><a href="#Condition.not_-725"><span class="linenos">725</span></a>
-</span><span id="Condition.not_-726"><a href="#Condition.not_-726"><span class="linenos">726</span></a><span class="sd"> Example:</span>
-</span><span id="Condition.not_-727"><a href="#Condition.not_-727"><span class="linenos">727</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
-</span><span id="Condition.not_-728"><a href="#Condition.not_-728"><span class="linenos">728</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
-</span><span id="Condition.not_-729"><a href="#Condition.not_-729"><span class="linenos">729</span></a>
-</span><span id="Condition.not_-730"><a href="#Condition.not_-730"><span class="linenos">730</span></a><span class="sd"> Args:</span>
-</span><span id="Condition.not_-731"><a href="#Condition.not_-731"><span class="linenos">731</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.not_-729"><a href="#Condition.not_-729"><span class="linenos">729</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
+</span><span id="Condition.not_-730"><a href="#Condition.not_-730"><span class="linenos">730</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Condition.not_-731"><a href="#Condition.not_-731"><span class="linenos">731</span></a><span class="sd"> Wrap this condition with NOT.</span>
</span><span id="Condition.not_-732"><a href="#Condition.not_-732"><span class="linenos">732</span></a>
-</span><span id="Condition.not_-733"><a href="#Condition.not_-733"><span class="linenos">733</span></a><span class="sd"> Returns:</span>
-</span><span id="Condition.not_-734"><a href="#Condition.not_-734"><span class="linenos">734</span></a><span class="sd"> The new Not instance.</span>
-</span><span id="Condition.not_-735"><a href="#Condition.not_-735"><span class="linenos">735</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Condition.not_-736"><a href="#Condition.not_-736"><span class="linenos">736</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="Condition.not_-733"><a href="#Condition.not_-733"><span class="linenos">733</span></a><span class="sd"> Example:</span>
+</span><span id="Condition.not_-734"><a href="#Condition.not_-734"><span class="linenos">734</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
+</span><span id="Condition.not_-735"><a href="#Condition.not_-735"><span class="linenos">735</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
+</span><span id="Condition.not_-736"><a href="#Condition.not_-736"><span class="linenos">736</span></a>
+</span><span id="Condition.not_-737"><a href="#Condition.not_-737"><span class="linenos">737</span></a><span class="sd"> Args:</span>
+</span><span id="Condition.not_-738"><a href="#Condition.not_-738"><span class="linenos">738</span></a><span class="sd"> copy: whether or not to copy this object.</span>
+</span><span id="Condition.not_-739"><a href="#Condition.not_-739"><span class="linenos">739</span></a>
+</span><span id="Condition.not_-740"><a href="#Condition.not_-740"><span class="linenos">740</span></a><span class="sd"> Returns:</span>
+</span><span id="Condition.not_-741"><a href="#Condition.not_-741"><span class="linenos">741</span></a><span class="sd"> The new Not instance.</span>
+</span><span id="Condition.not_-742"><a href="#Condition.not_-742"><span class="linenos">742</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Condition.not_-743"><a href="#Condition.not_-743"><span class="linenos">743</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
@@ -14318,15 +14346,15 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.as_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.as_-738"><a href="#Condition.as_-738"><span class="linenos">738</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
-</span><span id="Condition.as_-739"><a href="#Condition.as_-739"><span class="linenos">739</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition.as_-740"><a href="#Condition.as_-740"><span class="linenos">740</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="Condition.as_-741"><a href="#Condition.as_-741"><span class="linenos">741</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.as_-742"><a href="#Condition.as_-742"><span class="linenos">742</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.as_-743"><a href="#Condition.as_-743"><span class="linenos">743</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition.as_-744"><a href="#Condition.as_-744"><span class="linenos">744</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition.as_-745"><a href="#Condition.as_-745"><span class="linenos">745</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
-</span><span id="Condition.as_-746"><a href="#Condition.as_-746"><span class="linenos">746</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.as_-745"><a href="#Condition.as_-745"><span class="linenos">745</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
+</span><span id="Condition.as_-746"><a href="#Condition.as_-746"><span class="linenos">746</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.as_-747"><a href="#Condition.as_-747"><span class="linenos">747</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="Condition.as_-748"><a href="#Condition.as_-748"><span class="linenos">748</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.as_-749"><a href="#Condition.as_-749"><span class="linenos">749</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.as_-750"><a href="#Condition.as_-750"><span class="linenos">750</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.as_-751"><a href="#Condition.as_-751"><span class="linenos">751</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.as_-752"><a href="#Condition.as_-752"><span class="linenos">752</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
+</span><span id="Condition.as_-753"><a href="#Condition.as_-753"><span class="linenos">753</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -14344,26 +14372,26 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.isin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.isin-763"><a href="#Condition.isin-763"><span class="linenos">763</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Condition.isin-764"><a href="#Condition.isin-764"><span class="linenos">764</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Condition.isin-765"><a href="#Condition.isin-765"><span class="linenos">765</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Condition.isin-766"><a href="#Condition.isin-766"><span class="linenos">766</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.isin-767"><a href="#Condition.isin-767"><span class="linenos">767</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.isin-768"><a href="#Condition.isin-768"><span class="linenos">768</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Condition.isin-769"><a href="#Condition.isin-769"><span class="linenos">769</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Condition.isin-770"><a href="#Condition.isin-770"><span class="linenos">770</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Condition.isin-771"><a href="#Condition.isin-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Condition.isin-772"><a href="#Condition.isin-772"><span class="linenos">772</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Condition.isin-773"><a href="#Condition.isin-773"><span class="linenos">773</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Condition.isin-774"><a href="#Condition.isin-774"><span class="linenos">774</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.isin-775"><a href="#Condition.isin-775"><span class="linenos">775</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Condition.isin-776"><a href="#Condition.isin-776"><span class="linenos">776</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Condition.isin-777"><a href="#Condition.isin-777"><span class="linenos">777</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Condition.isin-778"><a href="#Condition.isin-778"><span class="linenos">778</span></a> <span class="p">]</span>
-</span><span id="Condition.isin-779"><a href="#Condition.isin-779"><span class="linenos">779</span></a> <span class="p">)</span>
-</span><span id="Condition.isin-780"><a href="#Condition.isin-780"><span class="linenos">780</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Condition.isin-781"><a href="#Condition.isin-781"><span class="linenos">781</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Condition.isin-782"><a href="#Condition.isin-782"><span class="linenos">782</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.isin-770"><a href="#Condition.isin-770"><span class="linenos">770</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Condition.isin-771"><a href="#Condition.isin-771"><span class="linenos">771</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Condition.isin-772"><a href="#Condition.isin-772"><span class="linenos">772</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Condition.isin-773"><a href="#Condition.isin-773"><span class="linenos">773</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.isin-774"><a href="#Condition.isin-774"><span class="linenos">774</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.isin-775"><a href="#Condition.isin-775"><span class="linenos">775</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Condition.isin-776"><a href="#Condition.isin-776"><span class="linenos">776</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Condition.isin-777"><a href="#Condition.isin-777"><span class="linenos">777</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Condition.isin-778"><a href="#Condition.isin-778"><span class="linenos">778</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Condition.isin-779"><a href="#Condition.isin-779"><span class="linenos">779</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Condition.isin-780"><a href="#Condition.isin-780"><span class="linenos">780</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Condition.isin-781"><a href="#Condition.isin-781"><span class="linenos">781</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.isin-782"><a href="#Condition.isin-782"><span class="linenos">782</span></a> <span class="n">unnest</span><span class="o">=</span><span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Condition.isin-783"><a href="#Condition.isin-783"><span class="linenos">783</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Condition.isin-784"><a href="#Condition.isin-784"><span class="linenos">784</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Condition.isin-785"><a href="#Condition.isin-785"><span class="linenos">785</span></a> <span class="p">]</span>
+</span><span id="Condition.isin-786"><a href="#Condition.isin-786"><span class="linenos">786</span></a> <span class="p">)</span>
+</span><span id="Condition.isin-787"><a href="#Condition.isin-787"><span class="linenos">787</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Condition.isin-788"><a href="#Condition.isin-788"><span class="linenos">788</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Condition.isin-789"><a href="#Condition.isin-789"><span class="linenos">789</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14381,12 +14409,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.between-784"><a href="#Condition.between-784"><span class="linenos">784</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
-</span><span id="Condition.between-785"><a href="#Condition.between-785"><span class="linenos">785</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
-</span><span id="Condition.between-786"><a href="#Condition.between-786"><span class="linenos">786</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Condition.between-787"><a href="#Condition.between-787"><span class="linenos">787</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Condition.between-788"><a href="#Condition.between-788"><span class="linenos">788</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Condition.between-789"><a href="#Condition.between-789"><span class="linenos">789</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.between-791"><a href="#Condition.between-791"><span class="linenos">791</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
+</span><span id="Condition.between-792"><a href="#Condition.between-792"><span class="linenos">792</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
+</span><span id="Condition.between-793"><a href="#Condition.between-793"><span class="linenos">793</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Condition.between-794"><a href="#Condition.between-794"><span class="linenos">794</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Condition.between-795"><a href="#Condition.between-795"><span class="linenos">795</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Condition.between-796"><a href="#Condition.between-796"><span class="linenos">796</span></a> <span class="p">)</span>
</span></pre></div>
@@ -14404,8 +14432,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.is_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.is_-791"><a href="#Condition.is_-791"><span class="linenos">791</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
-</span><span id="Condition.is_-792"><a href="#Condition.is_-792"><span class="linenos">792</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.is_-798"><a href="#Condition.is_-798"><span class="linenos">798</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
+</span><span id="Condition.is_-799"><a href="#Condition.is_-799"><span class="linenos">799</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -14423,8 +14451,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.like-794"><a href="#Condition.like-794"><span class="linenos">794</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
-</span><span id="Condition.like-795"><a href="#Condition.like-795"><span class="linenos">795</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.like-801"><a href="#Condition.like-801"><span class="linenos">801</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
+</span><span id="Condition.like-802"><a href="#Condition.like-802"><span class="linenos">802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -14442,8 +14470,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.ilike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.ilike-797"><a href="#Condition.ilike-797"><span class="linenos">797</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
-</span><span id="Condition.ilike-798"><a href="#Condition.ilike-798"><span class="linenos">798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.ilike-804"><a href="#Condition.ilike-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
+</span><span id="Condition.ilike-805"><a href="#Condition.ilike-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -14461,8 +14489,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.eq"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.eq-800"><a href="#Condition.eq-800"><span class="linenos">800</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
-</span><span id="Condition.eq-801"><a href="#Condition.eq-801"><span class="linenos">801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.eq-807"><a href="#Condition.eq-807"><span class="linenos">807</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
+</span><span id="Condition.eq-808"><a href="#Condition.eq-808"><span class="linenos">808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -14480,8 +14508,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.neq"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.neq-803"><a href="#Condition.neq-803"><span class="linenos">803</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
-</span><span id="Condition.neq-804"><a href="#Condition.neq-804"><span class="linenos">804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.neq-810"><a href="#Condition.neq-810"><span class="linenos">810</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
+</span><span id="Condition.neq-811"><a href="#Condition.neq-811"><span class="linenos">811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -14499,8 +14527,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Condition.rlike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.rlike-806"><a href="#Condition.rlike-806"><span class="linenos">806</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
-</span><span id="Condition.rlike-807"><a href="#Condition.rlike-807"><span class="linenos">807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.rlike-813"><a href="#Condition.rlike-813"><span class="linenos">813</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
+</span><span id="Condition.rlike-814"><a href="#Condition.rlike-814"><span class="linenos">814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
@@ -14539,6 +14567,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Condition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Condition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Condition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Condition.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Condition.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Condition.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Condition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -14587,8 +14616,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Predicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-882"><a href="#Predicate-882"><span class="linenos">882</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Predicate-883"><a href="#Predicate-883"><span class="linenos">883</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-889"><a href="#Predicate-889"><span class="linenos">889</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Predicate-890"><a href="#Predicate-890"><span class="linenos">890</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
</span></pre></div>
@@ -14628,6 +14657,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Predicate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Predicate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Predicate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Predicate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Predicate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Predicate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Predicate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -14691,14 +14721,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#DerivedTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-886"><a href="#DerivedTable-886"><span class="linenos">886</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DerivedTable-887"><a href="#DerivedTable-887"><span class="linenos">887</span></a> <span class="nd">@property</span>
-</span><span id="DerivedTable-888"><a href="#DerivedTable-888"><span class="linenos">888</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="DerivedTable-889"><a href="#DerivedTable-889"><span class="linenos">889</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="DerivedTable-890"><a href="#DerivedTable-890"><span class="linenos">890</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
-</span><span id="DerivedTable-891"><a href="#DerivedTable-891"><span class="linenos">891</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="DerivedTable-892"><a href="#DerivedTable-892"><span class="linenos">892</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]]</span>
-</span><span id="DerivedTable-893"><a href="#DerivedTable-893"><span class="linenos">893</span></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-893"><a href="#DerivedTable-893"><span class="linenos">893</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="DerivedTable-894"><a href="#DerivedTable-894"><span class="linenos">894</span></a> <span class="nd">@property</span>
</span><span id="DerivedTable-895"><a href="#DerivedTable-895"><span class="linenos">895</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
</span><span id="DerivedTable-896"><a href="#DerivedTable-896"><span class="linenos">896</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
@@ -14711,17 +14734,6 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
- <div id="DerivedTable.alias_column_names" class="classattr">
- <div class="attr variable">
- <span class="name">alias_column_names</span><span class="annotation">: List[str]</span>
-
-
- </div>
- <a class="headerlink" href="#DerivedTable.alias_column_names"></a>
-
-
-
- </div>
<div id="DerivedTable.selects" class="classattr">
<div class="attr variable">
<span class="name">selects</span><span class="annotation">: List[<a href="#Expression">sqlglot.expressions.Expression</a>]</span>
@@ -14776,6 +14788,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DerivedTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DerivedTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DerivedTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DerivedTable.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DerivedTable.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DerivedTable.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DerivedTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15134,6 +15147,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unionable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unionable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unionable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Unionable.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Unionable.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Unionable.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Unionable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15235,6 +15249,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UDTF.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UDTF.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UDTF.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UDTF.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UDTF.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UDTF.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UDTF.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15270,8 +15285,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
- <dd id="UDTF.alias_column_names" class="variable"><a href="#DerivedTable.alias_column_names">alias_column_names</a></dd>
- <dd id="UDTF.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
+ <dd id="UDTF.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
@@ -15350,6 +15364,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Cache.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Cache.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cache.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Cache.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Cache.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Cache.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Cache.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15448,6 +15463,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Uncache.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Uncache.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Uncache.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Uncache.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Uncache.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Uncache.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Uncache.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15585,6 +15601,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DDL.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DDL.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DDL.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DDL.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DDL.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DDL.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DDL.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15697,6 +15714,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Create.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Create.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Create.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Create.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Create.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Create.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Create.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15806,6 +15824,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Clone.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Clone.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Clone.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Clone.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Clone.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Clone.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Clone.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15904,6 +15923,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Describe.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Describe.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Describe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Describe.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Describe.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Describe.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Describe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -15991,6 +16011,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pragma.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Pragma.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Pragma.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Pragma.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Pragma.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Pragma.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Pragma.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16089,6 +16110,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Set.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Set.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Set.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Set.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Set.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Set.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Set.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16193,6 +16215,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SetItem.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetItem.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetItem.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SetItem.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SetItem.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SetItem.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SetItem.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16308,6 +16331,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Show.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Show.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Show.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Show.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Show.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Show.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Show.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16406,6 +16430,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UserDefinedFunction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UserDefinedFunction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UserDefinedFunction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UserDefinedFunction.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UserDefinedFunction.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UserDefinedFunction.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UserDefinedFunction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16504,6 +16529,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSet.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CharacterSet.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CharacterSet.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CharacterSet.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CharacterSet.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CharacterSet.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CharacterSet.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16617,6 +16643,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="With.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="With.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="With.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="With.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="With.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="With.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="With.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16715,6 +16742,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WithinGroup.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithinGroup.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithinGroup.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WithinGroup.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="WithinGroup.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="WithinGroup.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="WithinGroup.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16813,6 +16841,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CTE.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CTE.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CTE.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CTE.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CTE.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -16848,8 +16877,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
- <dd id="CTE.alias_column_names" class="variable"><a href="#DerivedTable.alias_column_names">alias_column_names</a></dd>
- <dd id="CTE.selects" class="variable"><a href="#DerivedTable.selects">selects</a></dd>
+ <dd id="CTE.selects" class="variable"><a href="#DerivedTable.selects">selects</a></dd>
<dd id="CTE.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
</div>
@@ -16932,6 +16960,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableAlias.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TableAlias.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TableAlias.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TableAlias.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TableAlias.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TableAlias.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TableAlias.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17019,6 +17048,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitString.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitString.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitString.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17121,6 +17151,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="HexString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="HexString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="HexString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="HexString.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="HexString.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="HexString.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="HexString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17223,6 +17254,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ByteString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ByteString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ByteString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ByteString.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ByteString.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ByteString.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ByteString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17325,6 +17357,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RawString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RawString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RawString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RawString.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RawString.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RawString.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RawString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17581,6 +17614,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Column.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Column.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Column.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Column.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Column.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Column.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Column.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -17693,6 +17727,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnPosition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnPosition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnPosition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ColumnPosition.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ColumnPosition.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ColumnPosition.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ColumnPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17812,6 +17847,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnDef.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnDef.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnDef.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ColumnDef.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ColumnDef.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ColumnDef.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -17917,6 +17953,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AlterColumn.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AlterColumn.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AlterColumn.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AlterColumn.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AlterColumn.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AlterColumn.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AlterColumn.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18004,6 +18041,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RenameTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RenameTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RenameTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RenameTable.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RenameTable.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RenameTable.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RenameTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18102,6 +18140,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Comment.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Comment.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Comment.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Comment.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Comment.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Comment.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Comment.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18206,6 +18245,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTLAction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MergeTreeTTLAction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MergeTreeTTLAction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MergeTreeTTLAction.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MergeTreeTTLAction.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MergeTreeTTLAction.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MergeTreeTTLAction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18309,6 +18349,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="MergeTreeTTL.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MergeTreeTTL.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MergeTreeTTL.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MergeTreeTTL.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MergeTreeTTL.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MergeTreeTTL.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MergeTreeTTL.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18416,6 +18457,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexConstraintOption.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IndexConstraintOption.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IndexConstraintOption.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IndexConstraintOption.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IndexConstraintOption.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IndexConstraintOption.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IndexConstraintOption.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18529,6 +18571,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18616,6 +18659,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ColumnConstraintKind.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnConstraintKind.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnConstraintKind.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ColumnConstraintKind.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ColumnConstraintKind.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ColumnConstraintKind.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ColumnConstraintKind.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18703,6 +18747,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AutoIncrementColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AutoIncrementColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AutoIncrementColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AutoIncrementColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AutoIncrementColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AutoIncrementColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AutoIncrementColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18801,6 +18846,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CaseSpecificColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CaseSpecificColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CaseSpecificColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CaseSpecificColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CaseSpecificColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CaseSpecificColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CaseSpecificColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18899,6 +18945,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CharacterSetColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CharacterSetColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CharacterSetColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CharacterSetColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CharacterSetColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CharacterSetColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CharacterSetColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -18986,6 +19033,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CheckColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CheckColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CheckColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CheckColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CheckColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CheckColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CheckColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19073,6 +19121,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CollateColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CollateColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CollateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CollateColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CollateColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CollateColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CollateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19160,6 +19209,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CommentColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CommentColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CommentColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CommentColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CommentColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CommentColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CommentColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19247,6 +19297,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="CompressColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CompressColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CompressColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CompressColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CompressColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CompressColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CompressColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19345,6 +19396,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DateFormatColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateFormatColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateFormatColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateFormatColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateFormatColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateFormatColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateFormatColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19432,6 +19484,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DefaultColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DefaultColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DefaultColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DefaultColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DefaultColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DefaultColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DefaultColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19519,6 +19572,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="EncodeColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="EncodeColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="EncodeColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="EncodeColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="EncodeColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="EncodeColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="EncodeColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19628,6 +19682,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GeneratedAsIdentityColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="GeneratedAsIdentityColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19726,6 +19781,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IndexColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IndexColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IndexColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IndexColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IndexColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IndexColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IndexColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19813,6 +19869,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="InlineLengthColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="InlineLengthColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="InlineLengthColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="InlineLengthColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="InlineLengthColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="InlineLengthColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="InlineLengthColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19911,6 +19968,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NotNullColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NotNullColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NotNullColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NotNullColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NotNullColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NotNullColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NotNullColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -19998,6 +20056,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="OnUpdateColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnUpdateColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnUpdateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OnUpdateColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="OnUpdateColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="OnUpdateColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="OnUpdateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -20096,6 +20155,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKeyColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PrimaryKeyColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PrimaryKeyColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PrimaryKeyColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PrimaryKeyColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PrimaryKeyColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PrimaryKeyColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -20183,6 +20243,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TitleColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TitleColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TitleColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TitleColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TitleColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TitleColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TitleColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -20281,6 +20342,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UniqueColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UniqueColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UniqueColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UniqueColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UniqueColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UniqueColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UniqueColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -20379,6 +20441,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="UppercaseColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UppercaseColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UppercaseColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UppercaseColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UppercaseColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UppercaseColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UppercaseColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -20466,6 +20529,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PathColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PathColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PathColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PathColumnConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PathColumnConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PathColumnConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PathColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -20564,6 +20628,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Constraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Constraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Constraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Constraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Constraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Constraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Constraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21019,6 +21084,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Delete.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Delete.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Delete.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Delete.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Delete.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Delete.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Delete.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21127,6 +21193,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Drop.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Drop.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Drop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Drop.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Drop.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Drop.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Drop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21225,6 +21292,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Filter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Filter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Filter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Filter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Filter.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Filter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Filter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21312,6 +21380,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Check.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Check.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Check.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Check.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Check.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Check.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Check.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21411,6 +21480,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Directory.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Directory.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Directory.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Directory.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Directory.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Directory.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Directory.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21514,6 +21584,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ForeignKey.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ForeignKey.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ForeignKey.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ForeignKey.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ForeignKey.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ForeignKey.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ForeignKey.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21612,6 +21683,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PrimaryKey.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PrimaryKey.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PrimaryKey.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PrimaryKey.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PrimaryKey.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PrimaryKey.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PrimaryKey.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21710,6 +21782,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Into.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Into.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Into.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Into.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Into.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Into.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Into.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -21825,6 +21898,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="From.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="From.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="From.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="From.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="From.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="From.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="From.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
@@ -21910,6 +21984,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Having.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Having.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Having.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Having.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Having.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Having.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Having.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22008,6 +22083,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Hint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Hint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Hint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Hint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Hint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Hint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Hint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22106,6 +22182,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="JoinHint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JoinHint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JoinHint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JoinHint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JoinHint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JoinHint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JoinHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22267,6 +22344,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Identifier.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Identifier.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Identifier.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Identifier.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Identifier.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Identifier.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Identifier.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -22375,6 +22453,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Index.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Index.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Index.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Index.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Index.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Index.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Index.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22607,6 +22686,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Insert.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Insert.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Insert.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Insert.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Insert.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Insert.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Insert.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22717,6 +22797,7 @@ Otherwise, this resets the expressions.</li>
<dd id="OnConflict.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnConflict.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnConflict.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OnConflict.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="OnConflict.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="OnConflict.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="OnConflict.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22815,6 +22896,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Returning.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Returning.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Returning.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Returning.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Returning.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Returning.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Returning.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -22913,6 +22995,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Introducer.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Introducer.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Introducer.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Introducer.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Introducer.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Introducer.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Introducer.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23000,6 +23083,7 @@ Otherwise, this resets the expressions.</li>
<dd id="National.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="National.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="National.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="National.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="National.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="National.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="National.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23107,6 +23191,7 @@ Otherwise, this resets the expressions.</li>
<dd id="LoadData.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LoadData.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LoadData.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LoadData.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LoadData.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LoadData.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LoadData.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23205,6 +23290,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Partition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Partition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Partition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Partition.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Partition.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Partition.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Partition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23308,6 +23394,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Fetch.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Fetch.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Fetch.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Fetch.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Fetch.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Fetch.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Fetch.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23414,6 +23501,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Group.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Group.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Group.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Group.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Group.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Group.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Group.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23512,6 +23600,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Lambda.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lambda.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lambda.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Lambda.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Lambda.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Lambda.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Lambda.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23610,6 +23699,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Limit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Limit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Limit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Limit.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Limit.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Limit.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Limit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -23806,6 +23896,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Literal.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Literal.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Literal.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Literal.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Literal.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Literal.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Literal.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -24272,6 +24363,7 @@ Otherwise, this resets the expression.</li>
<dd id="Join.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Join.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Join.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Join.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Join.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Join.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Join.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -24369,6 +24461,7 @@ Otherwise, this resets the expression.</li>
<dd id="Lateral.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lateral.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lateral.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Lateral.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Lateral.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Lateral.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Lateral.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -24408,8 +24501,7 @@ Otherwise, this resets the expression.</li>
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
- <dd id="Lateral.alias_column_names" class="variable"><a href="#DerivedTable.alias_column_names">alias_column_names</a></dd>
- <dd id="Lateral.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
+ <dd id="Lateral.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
@@ -24492,6 +24584,7 @@ Otherwise, this resets the expression.</li>
<dd id="MatchRecognize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MatchRecognize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MatchRecognize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MatchRecognize.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MatchRecognize.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MatchRecognize.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MatchRecognize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -24579,6 +24672,7 @@ Otherwise, this resets the expression.</li>
<dd id="Final.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Final.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Final.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Final.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Final.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Final.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Final.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -24677,6 +24771,7 @@ Otherwise, this resets the expression.</li>
<dd id="Offset.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Offset.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Offset.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Offset.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Offset.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Offset.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Offset.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -24775,6 +24870,7 @@ Otherwise, this resets the expression.</li>
<dd id="Order.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Order.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Order.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Order.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Order.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Order.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Order.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -24861,6 +24957,7 @@ Otherwise, this resets the expression.</li>
<dd id="Cluster.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Cluster.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cluster.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Cluster.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Cluster.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Cluster.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Cluster.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -24951,6 +25048,7 @@ Otherwise, this resets the expression.</li>
<dd id="Distribute.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Distribute.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Distribute.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Distribute.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Distribute.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Distribute.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Distribute.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25041,6 +25139,7 @@ Otherwise, this resets the expression.</li>
<dd id="Sort.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sort.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sort.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Sort.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Sort.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Sort.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Sort.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25143,6 +25242,7 @@ Otherwise, this resets the expression.</li>
<dd id="Ordered.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Ordered.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Ordered.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Ordered.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Ordered.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Ordered.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Ordered.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25241,6 +25341,7 @@ Otherwise, this resets the expression.</li>
<dd id="Property.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Property.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Property.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Property.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Property.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Property.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Property.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25339,6 +25440,7 @@ Otherwise, this resets the expression.</li>
<dd id="AlgorithmProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AlgorithmProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AlgorithmProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AlgorithmProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AlgorithmProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AlgorithmProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AlgorithmProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25437,6 +25539,7 @@ Otherwise, this resets the expression.</li>
<dd id="AutoIncrementProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AutoIncrementProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AutoIncrementProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AutoIncrementProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AutoIncrementProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AutoIncrementProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AutoIncrementProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25535,6 +25638,7 @@ Otherwise, this resets the expression.</li>
<dd id="BlockCompressionProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BlockCompressionProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BlockCompressionProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BlockCompressionProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BlockCompressionProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BlockCompressionProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BlockCompressionProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25633,6 +25737,7 @@ Otherwise, this resets the expression.</li>
<dd id="CharacterSetProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CharacterSetProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CharacterSetProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CharacterSetProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CharacterSetProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CharacterSetProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CharacterSetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25731,6 +25836,7 @@ Otherwise, this resets the expression.</li>
<dd id="ChecksumProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ChecksumProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ChecksumProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ChecksumProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ChecksumProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ChecksumProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ChecksumProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25829,6 +25935,7 @@ Otherwise, this resets the expression.</li>
<dd id="CollateProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CollateProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CollateProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CollateProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CollateProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CollateProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CollateProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -25927,6 +26034,7 @@ Otherwise, this resets the expression.</li>
<dd id="CopyGrantsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CopyGrantsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CopyGrantsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CopyGrantsProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CopyGrantsProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CopyGrantsProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CopyGrantsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26031,6 +26139,7 @@ Otherwise, this resets the expression.</li>
<dd id="DataBlocksizeProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DataBlocksizeProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DataBlocksizeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DataBlocksizeProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DataBlocksizeProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DataBlocksizeProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DataBlocksizeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26129,6 +26238,7 @@ Otherwise, this resets the expression.</li>
<dd id="DefinerProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DefinerProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DefinerProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DefinerProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DefinerProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DefinerProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DefinerProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26227,6 +26337,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistKeyProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DistKeyProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DistKeyProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DistKeyProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DistKeyProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DistKeyProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DistKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26325,6 +26436,7 @@ Otherwise, this resets the expression.</li>
<dd id="DistStyleProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DistStyleProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DistStyleProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DistStyleProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DistStyleProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DistStyleProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DistStyleProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26423,6 +26535,7 @@ Otherwise, this resets the expression.</li>
<dd id="EngineProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="EngineProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="EngineProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="EngineProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="EngineProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="EngineProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="EngineProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26521,6 +26634,7 @@ Otherwise, this resets the expression.</li>
<dd id="HeapProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="HeapProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="HeapProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="HeapProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="HeapProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="HeapProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="HeapProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26619,6 +26733,7 @@ Otherwise, this resets the expression.</li>
<dd id="ToTableProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ToTableProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ToTableProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ToTableProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ToTableProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ToTableProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ToTableProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26717,6 +26832,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExecuteAsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ExecuteAsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ExecuteAsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ExecuteAsProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ExecuteAsProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ExecuteAsProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ExecuteAsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26815,6 +26931,7 @@ Otherwise, this resets the expression.</li>
<dd id="ExternalProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ExternalProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ExternalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ExternalProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ExternalProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ExternalProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ExternalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -26913,6 +27030,7 @@ Otherwise, this resets the expression.</li>
<dd id="FallbackProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FallbackProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FallbackProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="FallbackProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="FallbackProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="FallbackProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="FallbackProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27011,6 +27129,7 @@ Otherwise, this resets the expression.</li>
<dd id="FileFormatProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FileFormatProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FileFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="FileFormatProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="FileFormatProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="FileFormatProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="FileFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27109,6 +27228,7 @@ Otherwise, this resets the expression.</li>
<dd id="FreespaceProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FreespaceProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FreespaceProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="FreespaceProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="FreespaceProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="FreespaceProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="FreespaceProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27207,6 +27327,7 @@ Otherwise, this resets the expression.</li>
<dd id="InputOutputFormat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="InputOutputFormat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="InputOutputFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="InputOutputFormat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="InputOutputFormat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="InputOutputFormat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="InputOutputFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27311,6 +27432,7 @@ Otherwise, this resets the expression.</li>
<dd id="IsolatedLoadingProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IsolatedLoadingProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IsolatedLoadingProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IsolatedLoadingProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IsolatedLoadingProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IsolatedLoadingProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IsolatedLoadingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27415,6 +27537,7 @@ Otherwise, this resets the expression.</li>
<dd id="JournalProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JournalProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JournalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JournalProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JournalProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JournalProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JournalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27513,6 +27636,7 @@ Otherwise, this resets the expression.</li>
<dd id="LanguageProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LanguageProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LanguageProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LanguageProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LanguageProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LanguageProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LanguageProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27611,6 +27735,7 @@ Otherwise, this resets the expression.</li>
<dd id="ClusteredByProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ClusteredByProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ClusteredByProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ClusteredByProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ClusteredByProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ClusteredByProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ClusteredByProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27709,6 +27834,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DictProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DictProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DictProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DictProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DictProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DictProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27795,6 +27921,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictSubProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DictSubProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DictSubProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DictSubProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DictSubProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DictSubProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DictSubProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27897,6 +28024,7 @@ Otherwise, this resets the expression.</li>
<dd id="DictRange.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DictRange.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DictRange.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DictRange.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DictRange.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DictRange.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DictRange.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -27995,6 +28123,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCluster.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnCluster.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnCluster.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OnCluster.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="OnCluster.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="OnCluster.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="OnCluster.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28093,6 +28222,7 @@ Otherwise, this resets the expression.</li>
<dd id="LikeProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LikeProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LikeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LikeProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LikeProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LikeProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LikeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28191,6 +28321,7 @@ Otherwise, this resets the expression.</li>
<dd id="LocationProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LocationProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LocationProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LocationProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LocationProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LocationProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LocationProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28295,6 +28426,7 @@ Otherwise, this resets the expression.</li>
<dd id="LockingProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LockingProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LockingProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LockingProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LockingProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LockingProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LockingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28393,6 +28525,7 @@ Otherwise, this resets the expression.</li>
<dd id="LogProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LogProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LogProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LogProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LogProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LogProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LogProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28491,6 +28624,7 @@ Otherwise, this resets the expression.</li>
<dd id="MaterializedProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MaterializedProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MaterializedProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MaterializedProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MaterializedProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MaterializedProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MaterializedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28589,6 +28723,7 @@ Otherwise, this resets the expression.</li>
<dd id="MergeBlockRatioProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MergeBlockRatioProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MergeBlockRatioProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MergeBlockRatioProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MergeBlockRatioProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MergeBlockRatioProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MergeBlockRatioProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28687,6 +28822,7 @@ Otherwise, this resets the expression.</li>
<dd id="NoPrimaryIndexProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NoPrimaryIndexProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NoPrimaryIndexProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NoPrimaryIndexProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NoPrimaryIndexProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NoPrimaryIndexProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NoPrimaryIndexProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28785,6 +28921,7 @@ Otherwise, this resets the expression.</li>
<dd id="OnCommitProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnCommitProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnCommitProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OnCommitProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="OnCommitProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="OnCommitProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="OnCommitProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28887,6 +29024,7 @@ Otherwise, this resets the expression.</li>
<dd id="PartitionedByProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PartitionedByProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PartitionedByProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PartitionedByProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PartitionedByProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PartitionedByProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PartitionedByProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -28985,6 +29123,7 @@ Otherwise, this resets the expression.</li>
<dd id="ReturnsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ReturnsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ReturnsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ReturnsProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ReturnsProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ReturnsProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ReturnsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29083,6 +29222,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowFormatProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RowFormatProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RowFormatProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RowFormatProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RowFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29191,6 +29331,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatDelimitedProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowFormatDelimitedProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowFormatDelimitedProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RowFormatDelimitedProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RowFormatDelimitedProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RowFormatDelimitedProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RowFormatDelimitedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29289,6 +29430,7 @@ Otherwise, this resets the expression.</li>
<dd id="RowFormatSerdeProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowFormatSerdeProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowFormatSerdeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RowFormatSerdeProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RowFormatSerdeProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RowFormatSerdeProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RowFormatSerdeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29396,6 +29538,7 @@ Otherwise, this resets the expression.</li>
<dd id="QueryTransform.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="QueryTransform.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="QueryTransform.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="QueryTransform.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="QueryTransform.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="QueryTransform.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="QueryTransform.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29494,6 +29637,7 @@ Otherwise, this resets the expression.</li>
<dd id="SchemaCommentProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SchemaCommentProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SchemaCommentProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SchemaCommentProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SchemaCommentProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SchemaCommentProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SchemaCommentProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29592,6 +29736,7 @@ Otherwise, this resets the expression.</li>
<dd id="SerdeProperties.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SerdeProperties.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SerdeProperties.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SerdeProperties.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SerdeProperties.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SerdeProperties.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SerdeProperties.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29690,6 +29835,7 @@ Otherwise, this resets the expression.</li>
<dd id="SetProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SetProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SetProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SetProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29788,6 +29934,7 @@ Otherwise, this resets the expression.</li>
<dd id="SettingsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SettingsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SettingsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SettingsProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SettingsProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SettingsProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SettingsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29886,6 +30033,7 @@ Otherwise, this resets the expression.</li>
<dd id="SortKeyProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SortKeyProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SortKeyProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SortKeyProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SortKeyProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SortKeyProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SortKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -29984,6 +30132,7 @@ Otherwise, this resets the expression.</li>
<dd id="SqlSecurityProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SqlSecurityProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SqlSecurityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SqlSecurityProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SqlSecurityProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SqlSecurityProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SqlSecurityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30082,6 +30231,7 @@ Otherwise, this resets the expression.</li>
<dd id="StabilityProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StabilityProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StabilityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StabilityProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StabilityProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StabilityProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StabilityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30180,6 +30330,7 @@ Otherwise, this resets the expression.</li>
<dd id="TemporaryProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TemporaryProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TemporaryProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TemporaryProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TemporaryProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TemporaryProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TemporaryProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30278,6 +30429,7 @@ Otherwise, this resets the expression.</li>
<dd id="TransientProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TransientProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TransientProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TransientProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TransientProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TransientProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TransientProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30376,6 +30528,7 @@ Otherwise, this resets the expression.</li>
<dd id="VolatileProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="VolatileProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="VolatileProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="VolatileProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="VolatileProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="VolatileProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="VolatileProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30474,6 +30627,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithDataProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithDataProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithDataProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WithDataProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="WithDataProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="WithDataProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="WithDataProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30572,6 +30726,7 @@ Otherwise, this resets the expression.</li>
<dd id="WithJournalTableProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithJournalTableProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithJournalTableProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WithJournalTableProperty.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="WithJournalTableProperty.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="WithJournalTableProperty.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="WithJournalTableProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -30783,6 +30938,7 @@ Otherwise, this resets the expression.</li>
<dd id="Properties.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Properties.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Properties.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Properties.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Properties.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Properties.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Properties.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31004,6 +31160,7 @@ Otherwise, this resets the expression.</li>
<dd id="Qualify.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Qualify.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Qualify.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Qualify.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Qualify.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Qualify.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Qualify.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31091,6 +31248,7 @@ Otherwise, this resets the expression.</li>
<dd id="Return.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Return.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Return.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Return.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Return.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Return.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Return.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31189,6 +31347,7 @@ Otherwise, this resets the expression.</li>
<dd id="Reference.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Reference.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Reference.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Reference.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Reference.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Reference.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Reference.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31345,6 +31504,7 @@ Otherwise, this resets the expression.</li>
<dd id="Tuple.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Tuple.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Tuple.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Tuple.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Tuple.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Tuple.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Tuple.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31711,6 +31871,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Subqueryable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Subqueryable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Subqueryable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Subqueryable.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Subqueryable.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Subqueryable.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Subqueryable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31828,6 +31989,7 @@ Otherwise, this resets the expressions.</li>
<dd id="WithTableHint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithTableHint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithTableHint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WithTableHint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="WithTableHint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="WithTableHint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="WithTableHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -31926,6 +32088,7 @@ Otherwise, this resets the expressions.</li>
<dd id="IndexTableHint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IndexTableHint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IndexTableHint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IndexTableHint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IndexTableHint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IndexTableHint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IndexTableHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -32140,6 +32303,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Table.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Table.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Table.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Table.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Table.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Table.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Table.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -32241,6 +32405,7 @@ Otherwise, this resets the expressions.</li>
<dd id="SystemTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SystemTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SystemTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SystemTime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SystemTime.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SystemTime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SystemTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -32639,6 +32804,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Union.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Union.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Union.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Union.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Union.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Union.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Union.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -32736,6 +32902,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Except.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Except.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Except.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Except.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Except.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Except.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Except.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -32844,6 +33011,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Intersect.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Intersect.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Intersect.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Intersect.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Intersect.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Intersect.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Intersect.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -32970,6 +33138,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Unnest.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unnest.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unnest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Unnest.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Unnest.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Unnest.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Unnest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -33009,8 +33178,7 @@ Otherwise, this resets the expressions.</li>
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
- <dd id="Unnest.alias_column_names" class="variable"><a href="#DerivedTable.alias_column_names">alias_column_names</a></dd>
- <dd id="Unnest.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
+ <dd id="Unnest.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
@@ -33092,6 +33260,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Update.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Update.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Update.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Update.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Update.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Update.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Update.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -33194,6 +33363,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Values.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Values.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Values.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Values.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Values.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Values.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Values.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -33233,8 +33403,7 @@ Otherwise, this resets the expressions.</li>
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
- <dd id="Values.alias_column_names" class="variable"><a href="#DerivedTable.alias_column_names">alias_column_names</a></dd>
- <dd id="Values.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
+ <dd id="Values.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
@@ -33296,6 +33465,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Var.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Var.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Var.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Var.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Var.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Var.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Var.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -33394,6 +33564,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Schema.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Schema.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Schema.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Schema.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Schema.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Schema.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Schema.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -33492,6 +33663,7 @@ Otherwise, this resets the expressions.</li>
<dd id="Lock.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lock.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lock.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Lock.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Lock.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Lock.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Lock.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -35765,6 +35937,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Select.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Select.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Select.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Select.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Select.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Select.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Select.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -35967,6 +36140,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Subquery.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Subquery.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Subquery.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Subquery.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Subquery.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Subquery.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Subquery.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -36000,8 +36174,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<div><dt><a href="#DerivedTable">DerivedTable</a></dt>
- <dd id="Subquery.alias_column_names" class="variable"><a href="#DerivedTable.alias_column_names">alias_column_names</a></dd>
- <dd id="Subquery.selects" class="variable"><a href="#DerivedTable.selects">selects</a></dd>
+ <dd id="Subquery.selects" class="variable"><a href="#DerivedTable.selects">selects</a></dd>
<dd id="Subquery.named_selects" class="variable"><a href="#DerivedTable.named_selects">named_selects</a></dd>
</div>
@@ -36087,6 +36260,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TableSample.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TableSample.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TableSample.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TableSample.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TableSample.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TableSample.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TableSample.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36193,6 +36367,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Tag.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Tag.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Tag.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Tag.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Tag.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Tag.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Tag.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36301,6 +36476,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Pivot.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Pivot.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Pivot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Pivot.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Pivot.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Pivot.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Pivot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36408,6 +36584,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Window.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Window.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Window.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Window.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Window.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Window.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Window.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36512,6 +36689,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="WindowSpec.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WindowSpec.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WindowSpec.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WindowSpec.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="WindowSpec.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="WindowSpec.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="WindowSpec.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36599,6 +36777,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Where.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Where.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Where.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Where.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Where.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Where.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Where.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36746,6 +36925,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Star.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Star.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Star.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Star.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Star.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Star.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Star.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
@@ -36842,6 +37022,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Parameter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Parameter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Parameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Parameter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Parameter.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Parameter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Parameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -36955,6 +37136,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SessionParameter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SessionParameter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SessionParameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SessionParameter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SessionParameter.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SessionParameter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SessionParameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -37068,6 +37250,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Placeholder.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Placeholder.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Placeholder.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Placeholder.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Placeholder.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Placeholder.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Placeholder.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -37196,6 +37379,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Null.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Null.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Null.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Null.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Null.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Null.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Null.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -37297,6 +37481,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Boolean.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Boolean.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Boolean.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Boolean.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Boolean.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Boolean.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Boolean.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -37410,6 +37595,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DataTypeSize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DataTypeSize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DataTypeSize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DataTypeSize.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DataTypeSize.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DataTypeSize.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DataTypeSize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -37632,7 +37818,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">TEXT_TYPES</span> =
<input id="DataType.TEXT_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{&lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{&lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;}</span>
</div>
@@ -37645,7 +37831,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">INTEGER_TYPES</span> =
<input id="DataType.INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;}</span>
</div>
@@ -37657,7 +37843,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div id="DataType.FLOAT_TYPES" class="classattr">
<div class="attr variable">
<span class="name">FLOAT_TYPES</span> =
-<span class="default_value">{&lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;}</span>
+<span class="default_value">{&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;}</span>
</div>
@@ -37670,7 +37856,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">NUMERIC_TYPES</span> =
<input id="DataType.NUMERIC_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;}</span>
</div>
@@ -37683,7 +37869,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div class="attr variable">
<span class="name">TEMPORAL_TYPES</span> =
<input id="DataType.TEMPORAL_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;, &lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;}</span>
</div>
@@ -37695,7 +37881,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<div id="DataType.META_TYPES" class="classattr">
<div class="attr variable">
<span class="name">META_TYPES</span> =
-<span class="default_value">{&#39;NULL&#39;, &#39;UNKNOWN&#39;}</span>
+<span class="default_value">{&#39;UNKNOWN&#39;, &#39;NULL&#39;}</span>
</div>
@@ -37795,6 +37981,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DataType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DataType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DataType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DataType.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DataType.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DataType.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DataType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -38952,6 +39139,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="PseudoType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PseudoType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PseudoType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PseudoType.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PseudoType.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PseudoType.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PseudoType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39039,6 +39227,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SubqueryPredicate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SubqueryPredicate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SubqueryPredicate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SubqueryPredicate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SubqueryPredicate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SubqueryPredicate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SubqueryPredicate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39141,6 +39330,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="All.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="All.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="All.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="All.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="All.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="All.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="All.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39243,6 +39433,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Any.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Any.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Any.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Any.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Any.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Any.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Any.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39345,6 +39536,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Exists.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Exists.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Exists.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Exists.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Exists.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Exists.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Exists.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39458,6 +39650,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Command.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Command.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Command.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Command.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Command.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Command.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Command.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39556,6 +39749,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Transaction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Transaction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Transaction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Transaction.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Transaction.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Transaction.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Transaction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39654,6 +39848,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Commit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Commit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Commit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Commit.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Commit.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Commit.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Commit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39752,6 +39947,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Rollback.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Rollback.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Rollback.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Rollback.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Rollback.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Rollback.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Rollback.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39850,6 +40046,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AlterTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AlterTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AlterTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AlterTable.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AlterTable.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AlterTable.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AlterTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -39948,6 +40145,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AddConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AddConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AddConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AddConstraint.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AddConstraint.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AddConstraint.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AddConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40046,6 +40244,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DropPartition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DropPartition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DropPartition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DropPartition.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DropPartition.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DropPartition.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DropPartition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40174,6 +40373,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Binary.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Binary.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Binary.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Binary.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Binary.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Binary.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Binary.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40275,6 +40475,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Add.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Add.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Add.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Add.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Add.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Add.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Add.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40382,6 +40583,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Connector.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Connector.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Connector.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Connector.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Connector.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Connector.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Connector.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40489,6 +40691,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="And.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="And.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="And.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="And.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="And.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="And.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="And.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40596,6 +40799,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Or.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Or.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Or.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Or.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Or.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Or.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Or.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40703,6 +40907,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitwiseAnd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseAnd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitwiseAnd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitwiseAnd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitwiseAnd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitwiseAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40810,6 +41015,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitwiseLeftShift.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseLeftShift.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseLeftShift.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitwiseLeftShift.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitwiseLeftShift.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitwiseLeftShift.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitwiseLeftShift.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -40917,6 +41123,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitwiseOr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseOr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseOr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitwiseOr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitwiseOr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitwiseOr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitwiseOr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41024,6 +41231,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitwiseRightShift.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseRightShift.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseRightShift.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitwiseRightShift.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitwiseRightShift.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitwiseRightShift.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitwiseRightShift.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41131,6 +41339,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitwiseXor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseXor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseXor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitwiseXor.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitwiseXor.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitwiseXor.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitwiseXor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41238,6 +41447,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Div.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Div.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Div.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Div.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Div.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Div.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Div.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41345,6 +41555,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Overlaps.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Overlaps.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Overlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Overlaps.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Overlaps.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Overlaps.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Overlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41546,6 +41757,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Dot.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Dot.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Dot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Dot.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Dot.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Dot.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Dot.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
@@ -41651,6 +41863,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="DPipe.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DPipe.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DPipe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DPipe.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DPipe.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DPipe.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DPipe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41758,6 +41971,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SafeDPipe.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SafeDPipe.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SafeDPipe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SafeDPipe.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SafeDPipe.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SafeDPipe.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SafeDPipe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41865,6 +42079,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="EQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="EQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="EQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="EQ.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="EQ.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="EQ.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="EQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -41972,6 +42187,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NullSafeEQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NullSafeEQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NullSafeEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NullSafeEQ.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NullSafeEQ.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NullSafeEQ.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NullSafeEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42079,6 +42295,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NullSafeNEQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NullSafeNEQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NullSafeNEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NullSafeNEQ.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NullSafeNEQ.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NullSafeNEQ.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NullSafeNEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42186,6 +42403,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Distance.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Distance.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Distance.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Distance.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Distance.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Distance.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Distance.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42293,6 +42511,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Escape.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Escape.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Escape.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Escape.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Escape.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Escape.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Escape.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42400,6 +42619,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Glob.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Glob.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Glob.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Glob.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Glob.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Glob.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Glob.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42507,6 +42727,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GT.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GT.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GT.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="GT.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="GT.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="GT.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="GT.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42614,6 +42835,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="GTE.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GTE.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="GTE.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="GTE.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="GTE.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="GTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42721,6 +42943,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ILike.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ILike.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ILike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ILike.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ILike.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ILike.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ILike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42828,6 +43051,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ILikeAny.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ILikeAny.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ILikeAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ILikeAny.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ILikeAny.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ILikeAny.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ILikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -42935,6 +43159,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IntDiv.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IntDiv.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IntDiv.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IntDiv.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IntDiv.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IntDiv.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IntDiv.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43042,6 +43267,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Is.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Is.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Is.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Is.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Is.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Is.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Is.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43151,6 +43377,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Kwarg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Kwarg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Kwarg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Kwarg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Kwarg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Kwarg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Kwarg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43258,6 +43485,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Like.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Like.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Like.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Like.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Like.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Like.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Like.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43365,6 +43593,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="LikeAny.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LikeAny.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LikeAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LikeAny.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LikeAny.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LikeAny.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43472,6 +43701,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="LT.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LT.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LT.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LT.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LT.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LT.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LT.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43579,6 +43809,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="LTE.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LTE.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LTE.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LTE.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LTE.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43686,6 +43917,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Mod.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Mod.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Mod.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Mod.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Mod.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Mod.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Mod.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43793,6 +44025,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Mul.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Mul.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Mul.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Mul.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Mul.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Mul.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Mul.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -43900,6 +44133,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="NEQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NEQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NEQ.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NEQ.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NEQ.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44007,6 +44241,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SimilarTo.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SimilarTo.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SimilarTo.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SimilarTo.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SimilarTo.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SimilarTo.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SimilarTo.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44126,6 +44361,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Slice.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Slice.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Slice.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Slice.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Slice.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Slice.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Slice.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44232,6 +44468,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Sub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Sub.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Sub.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Sub.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Sub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44339,6 +44576,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="ArrayOverlaps.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayOverlaps.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayOverlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayOverlaps.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayOverlaps.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayOverlaps.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayOverlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44447,6 +44685,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Unary.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unary.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unary.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Unary.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Unary.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Unary.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Unary.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44549,6 +44788,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="BitwiseNot.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseNot.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseNot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="BitwiseNot.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="BitwiseNot.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="BitwiseNot.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="BitwiseNot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44651,6 +44891,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Not.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Not.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Not.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Not.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Not.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Not.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Not.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -44798,6 +45039,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Paren.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Paren.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Paren.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Paren.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Paren.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Paren.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Paren.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -44899,6 +45141,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Neg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Neg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Neg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Neg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Neg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Neg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Neg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45046,6 +45289,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Alias.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Alias.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Alias.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Alias.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Alias.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Alias.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Alias.type" class="variable"><a href="#Expression.type">type</a></dd>
@@ -45158,6 +45402,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Aliases.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Aliases.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Aliases.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Aliases.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Aliases.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Aliases.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Aliases.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45256,6 +45501,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="AtTimeZone.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AtTimeZone.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AtTimeZone.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AtTimeZone.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AtTimeZone.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AtTimeZone.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AtTimeZone.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45354,6 +45600,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Between.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Between.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Between.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Between.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Between.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Between.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Between.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45467,6 +45714,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Bracket.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Bracket.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Bracket.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Bracket.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Bracket.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Bracket.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Bracket.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45570,6 +45818,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="SafeBracket.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SafeBracket.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SafeBracket.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SafeBracket.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SafeBracket.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SafeBracket.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SafeBracket.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45687,6 +45936,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Distinct.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Distinct.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Distinct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Distinct.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Distinct.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Distinct.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Distinct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45793,6 +46043,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="In.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="In.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="In.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="In.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="In.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="In.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="In.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -45942,6 +46193,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="TimeUnit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeUnit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeUnit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeUnit.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeUnit.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeUnit.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeUnit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46058,6 +46310,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="Interval.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Interval.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Interval.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Interval.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Interval.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Interval.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Interval.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46145,6 +46398,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="IgnoreNulls.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IgnoreNulls.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IgnoreNulls.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IgnoreNulls.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IgnoreNulls.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IgnoreNulls.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IgnoreNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46232,6 +46486,7 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
<dd id="RespectNulls.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RespectNulls.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RespectNulls.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RespectNulls.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RespectNulls.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RespectNulls.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RespectNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46490,6 +46745,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Func.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Func.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Func.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Func.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Func.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Func.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Func.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46592,6 +46848,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AggFunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AggFunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AggFunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AggFunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AggFunc.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AggFunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AggFunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46713,6 +46970,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ParameterizedAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ParameterizedAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ParameterizedAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ParameterizedAgg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ParameterizedAgg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ParameterizedAgg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ParameterizedAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46823,6 +47081,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Abs.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Abs.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Abs.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Abs.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Abs.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Abs.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Abs.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -46944,6 +47203,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Transform.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Transform.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Transform.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Transform.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Transform.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Transform.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Transform.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47078,6 +47338,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Anonymous.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Anonymous.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Anonymous.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Anonymous.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Anonymous.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Anonymous.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Anonymous.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47211,6 +47472,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hll.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Hll.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Hll.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Hll.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Hll.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Hll.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Hll.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47332,6 +47594,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxDistinct.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ApproxDistinct.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ApproxDistinct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ApproxDistinct.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ApproxDistinct.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ApproxDistinct.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ApproxDistinct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47466,6 +47729,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Array.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Array.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Array.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Array.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Array.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Array.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Array.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47586,6 +47850,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToChar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ToChar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ToChar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ToChar.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ToChar.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ToChar.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ToChar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47707,6 +47972,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GenerateSeries.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GenerateSeries.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GenerateSeries.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="GenerateSeries.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="GenerateSeries.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="GenerateSeries.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="GenerateSeries.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47817,6 +48083,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayAgg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayAgg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayAgg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -47938,6 +48205,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAll.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayAll.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayAll.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayAll.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayAll.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayAll.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayAll.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48059,6 +48327,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayAny.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayAny.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayAny.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayAny.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayAny.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48193,6 +48462,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayConcat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayConcat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayConcat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayConcat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayConcat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48301,6 +48571,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContains.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayContains.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayContains.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayContains.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayContains.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48416,6 +48687,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayContained.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayContained.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayContained.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayContained.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayContained.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayContained.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayContained.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48536,6 +48808,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayFilter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayFilter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayFilter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayFilter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayFilter.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayFilter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayFilter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48657,6 +48930,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayJoin.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayJoin.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayJoin.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayJoin.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayJoin.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayJoin.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayJoin.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48778,6 +49052,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArraySize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArraySize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArraySize.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArraySize.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArraySize.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArraySize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -48899,6 +49174,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySort.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArraySort.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArraySort.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArraySort.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArraySort.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArraySort.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArraySort.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49009,6 +49285,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArraySum.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArraySum.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArraySum.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArraySum.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArraySum.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArraySum.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArraySum.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49119,6 +49396,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ArrayUnionAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayUnionAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayUnionAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayUnionAgg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ArrayUnionAgg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ArrayUnionAgg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ArrayUnionAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49229,6 +49507,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Avg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Avg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Avg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Avg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Avg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Avg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Avg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49350,6 +49629,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="AnyValue.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AnyValue.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AnyValue.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="AnyValue.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="AnyValue.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="AnyValue.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="AnyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49535,6 +49815,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Case.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Case.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Case.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Case.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Case.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Case.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Case.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49742,6 +50023,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Cast.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Cast.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cast.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Cast.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Cast.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Cast.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="Cast.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
@@ -49861,6 +50143,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CastToStrType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CastToStrType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CastToStrType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CastToStrType.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CastToStrType.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CastToStrType.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CastToStrType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -49970,6 +50253,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Collate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Collate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Collate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Collate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Collate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Collate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Collate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50077,6 +50361,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TryCast.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TryCast.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TryCast.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TryCast.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TryCast.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TryCast.type" class="variable"><a href="#Expression.type">type</a></dd>
<dd id="TryCast.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
@@ -50205,6 +50490,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Ceil.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Ceil.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Ceil.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Ceil.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Ceil.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Ceil.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Ceil.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50340,6 +50626,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Coalesce.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Coalesce.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Coalesce.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Coalesce.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Coalesce.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Coalesce.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Coalesce.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50473,6 +50760,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Concat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Concat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Concat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Concat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Concat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Concat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Concat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50581,6 +50869,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SafeConcat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SafeConcat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SafeConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SafeConcat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SafeConcat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SafeConcat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SafeConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50694,6 +50983,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ConcatWs.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ConcatWs.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ConcatWs.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ConcatWs.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ConcatWs.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ConcatWs.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ConcatWs.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50832,6 +51122,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Count.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Count.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Count.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Count.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Count.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Count.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Count.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -50941,6 +51232,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CountIf.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CountIf.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CountIf.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CountIf.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CountIf.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CountIf.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CountIf.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51062,6 +51354,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CurrentDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CurrentDate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CurrentDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CurrentDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51183,6 +51476,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentDatetime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentDatetime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentDatetime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CurrentDatetime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CurrentDatetime.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CurrentDatetime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CurrentDatetime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51304,6 +51598,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CurrentTime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CurrentTime.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CurrentTime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CurrentTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51425,6 +51720,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentTimestamp.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentTimestamp.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentTimestamp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CurrentTimestamp.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CurrentTimestamp.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CurrentTimestamp.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CurrentTimestamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51546,6 +51842,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="CurrentUser.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentUser.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentUser.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CurrentUser.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="CurrentUser.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="CurrentUser.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="CurrentUser.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51693,6 +51990,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateAdd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateAdd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateAdd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51817,6 +52115,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateSub.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateSub.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateSub.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -51942,6 +52241,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateDiff.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateDiff.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateDiff.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52040,6 +52340,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateTrunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateTrunc.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateTrunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52187,6 +52488,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DatetimeAdd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DatetimeAdd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DatetimeAdd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DatetimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52311,6 +52613,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DatetimeSub.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DatetimeSub.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DatetimeSub.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DatetimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52435,6 +52738,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DatetimeDiff.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DatetimeDiff.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DatetimeDiff.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DatetimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52559,6 +52863,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DatetimeTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DatetimeTrunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DatetimeTrunc.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DatetimeTrunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DatetimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52646,6 +52951,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfWeek.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DayOfWeek.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DayOfWeek.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DayOfWeek.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DayOfWeek.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DayOfWeek.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DayOfWeek.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52756,6 +53062,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfMonth.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DayOfMonth.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DayOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DayOfMonth.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DayOfMonth.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DayOfMonth.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DayOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52866,6 +53173,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DayOfYear.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DayOfYear.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DayOfYear.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DayOfYear.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DayOfYear.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DayOfYear.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DayOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -52976,6 +53284,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="WeekOfYear.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WeekOfYear.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WeekOfYear.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="WeekOfYear.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="WeekOfYear.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="WeekOfYear.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="WeekOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53097,6 +53406,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MonthsBetween.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MonthsBetween.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MonthsBetween.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MonthsBetween.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MonthsBetween.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MonthsBetween.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MonthsBetween.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53207,6 +53517,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LastDateOfMonth.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LastDateOfMonth.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LastDateOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LastDateOfMonth.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LastDateOfMonth.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LastDateOfMonth.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LastDateOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53328,6 +53639,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Extract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Extract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Extract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Extract.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Extract.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Extract.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Extract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53475,6 +53787,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimestampAdd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimestampAdd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimestampAdd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimestampAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53599,6 +53912,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimestampSub.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimestampSub.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimestampSub.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimestampSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53723,6 +54037,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimestampDiff.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimestampDiff.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimestampDiff.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimestampDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53847,6 +54162,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimestampTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimestampTrunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimestampTrunc.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimestampTrunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimestampTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -53971,6 +54287,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeAdd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeAdd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeAdd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54095,6 +54412,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeSub.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeSub.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeSub.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54219,6 +54537,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeDiff.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeDiff.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeDiff.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54343,6 +54662,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeTrunc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeTrunc.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeTrunc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54442,6 +54762,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateFromParts.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateFromParts.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateFromParts.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateFromParts.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateFromParts.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateFromParts.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateFromParts.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54552,6 +54873,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateStrToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateStrToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateStrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateStrToDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateStrToDate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateStrToDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54662,6 +54984,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateToDateStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateToDateStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateToDateStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateToDateStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateToDateStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateToDateStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54772,6 +55095,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DateToDi.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateToDi.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateToDi.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DateToDi.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DateToDi.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DateToDi.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DateToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -54893,6 +55217,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Date.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Date.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Date.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Date.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Date.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Date.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Date.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55003,6 +55328,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Day.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Day.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Day.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Day.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Day.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Day.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Day.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55124,6 +55450,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Decode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Decode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Decode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Decode.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Decode.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Decode.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Decode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55234,6 +55561,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="DiToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DiToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DiToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="DiToDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="DiToDate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="DiToDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="DiToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55355,6 +55683,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Encode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Encode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Encode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Encode.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Encode.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Encode.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Encode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55465,6 +55794,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Exp.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Exp.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Exp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Exp.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Exp.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Exp.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Exp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55575,6 +55905,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Explode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Explode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Explode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Explode.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Explode.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Explode.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Explode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55696,6 +56027,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Floor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Floor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Floor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Floor.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Floor.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Floor.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Floor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55806,6 +56138,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="FromBase64.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FromBase64.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FromBase64.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="FromBase64.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="FromBase64.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="FromBase64.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="FromBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -55916,6 +56249,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ToBase64.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ToBase64.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ToBase64.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ToBase64.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ToBase64.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ToBase64.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ToBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56050,6 +56384,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Greatest.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Greatest.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Greatest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Greatest.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Greatest.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Greatest.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Greatest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56170,6 +56505,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="GroupConcat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GroupConcat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GroupConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="GroupConcat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="GroupConcat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="GroupConcat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="GroupConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56280,6 +56616,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Hex.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Hex.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Hex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Hex.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Hex.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Hex.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Hex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56401,6 +56738,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Xor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Xor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Xor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Xor.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Xor.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Xor.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Xor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56527,6 +56865,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="If.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="If.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="If.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="If.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="If.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="If.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="If.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56648,6 +56987,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Initcap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Initcap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Initcap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Initcap.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Initcap.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Initcap.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Initcap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56758,6 +57098,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="IsNan.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IsNan.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IsNan.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="IsNan.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="IsNan.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="IsNan.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="IsNan.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56879,6 +57220,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONKeyValue.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONKeyValue.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONKeyValue.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONKeyValue.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONKeyValue.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONKeyValue.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONKeyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -56985,6 +57327,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONObject.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONObject.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONObject.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONObject.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONObject.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONObject.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONObject.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57106,6 +57449,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="OpenJSONColumnDef.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OpenJSONColumnDef.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OpenJSONColumnDef.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OpenJSONColumnDef.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="OpenJSONColumnDef.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="OpenJSONColumnDef.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="OpenJSONColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57204,6 +57548,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="OpenJSON.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OpenJSON.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OpenJSON.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="OpenJSON.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="OpenJSON.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="OpenJSON.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="OpenJSON.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57313,6 +57658,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBContains.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONBContains.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONBContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONBContains.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONBContains.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONBContains.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONBContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57420,6 +57766,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONExtract.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONExtract.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONExtract.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57535,6 +57882,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONExtractScalar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONExtractScalar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONExtractScalar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONExtractScalar.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONExtractScalar.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONExtractScalar.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57650,6 +57998,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONBExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONBExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONBExtract.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONBExtract.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONBExtract.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONBExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57765,6 +58114,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONBExtractScalar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONBExtractScalar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONBExtractScalar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONBExtractScalar.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONBExtractScalar.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONBExtractScalar.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONBExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -57893,6 +58243,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONFormat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONFormat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONFormat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONFormat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONFormat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58002,6 +58353,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="JSONArrayContains.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONArrayContains.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONArrayContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONArrayContains.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="JSONArrayContains.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="JSONArrayContains.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="JSONArrayContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58142,6 +58494,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Least.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Least.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Least.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Least.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Least.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Least.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Least.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58262,6 +58615,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Left.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Left.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Left.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Left.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Left.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Left.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Left.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58383,6 +58737,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Right.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Right.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Right.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Right.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Right.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Right.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Right.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58493,6 +58848,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Length.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Length.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Length.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Length.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Length.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Length.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Length.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58620,6 +58976,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Levenshtein.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Levenshtein.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Levenshtein.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Levenshtein.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Levenshtein.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Levenshtein.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Levenshtein.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58730,6 +59087,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Ln.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Ln.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Ln.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Ln.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Ln.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Ln.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Ln.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58851,6 +59209,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Log.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Log.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Log.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Log.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Log.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Log.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -58961,6 +59320,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Log2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Log2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Log2.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Log2.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Log2.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Log2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59071,6 +59431,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Log10.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Log10.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Log10.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Log10.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Log10.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Log10.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Log10.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59181,6 +59542,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LogicalOr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LogicalOr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LogicalOr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LogicalOr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LogicalOr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LogicalOr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LogicalOr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59291,6 +59653,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="LogicalAnd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LogicalAnd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LogicalAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="LogicalAnd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="LogicalAnd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="LogicalAnd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="LogicalAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59401,6 +59764,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Lower.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lower.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lower.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Lower.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Lower.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Lower.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Lower.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59522,6 +59886,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Map.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Map.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Map.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Map.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Map.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Map.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Map.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59632,6 +59997,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MapFromEntries.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MapFromEntries.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MapFromEntries.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MapFromEntries.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MapFromEntries.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MapFromEntries.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MapFromEntries.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59742,6 +60108,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StarMap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StarMap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StarMap.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StarMap.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StarMap.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -59906,6 +60273,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="VarMap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="VarMap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="VarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="VarMap.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="VarMap.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="VarMap.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="VarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60026,6 +60394,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MatchAgainst.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MatchAgainst.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MatchAgainst.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MatchAgainst.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MatchAgainst.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MatchAgainst.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MatchAgainst.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60160,6 +60529,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Max.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Max.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Max.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Max.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Max.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Max.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Max.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60269,6 +60639,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MD5.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MD5.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MD5.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MD5.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MD5.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MD5.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MD5.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60379,6 +60750,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="MD5Digest.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MD5Digest.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MD5Digest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="MD5Digest.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="MD5Digest.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="MD5Digest.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="MD5Digest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60513,6 +60885,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Min.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Min.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Min.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Min.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Min.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Min.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Min.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60622,6 +60995,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Month.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Month.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Month.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Month.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Month.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Month.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Month.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60743,6 +61117,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Nvl2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Nvl2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Nvl2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Nvl2.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Nvl2.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Nvl2.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Nvl2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60853,6 +61228,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Posexplode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Posexplode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Posexplode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Posexplode.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Posexplode.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Posexplode.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Posexplode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -60962,6 +61338,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Pow.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Pow.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Pow.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Pow.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Pow.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Pow.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Pow.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61089,6 +61466,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="PercentileCont.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PercentileCont.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PercentileCont.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PercentileCont.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PercentileCont.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PercentileCont.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PercentileCont.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61210,6 +61588,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="PercentileDisc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PercentileDisc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PercentileDisc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PercentileDisc.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="PercentileDisc.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="PercentileDisc.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="PercentileDisc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61331,6 +61710,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Quantile.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Quantile.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Quantile.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Quantile.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Quantile.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Quantile.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Quantile.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61452,6 +61832,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ApproxQuantile.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ApproxQuantile.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ApproxQuantile.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ApproxQuantile.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ApproxQuantile.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ApproxQuantile.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ApproxQuantile.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61573,6 +61954,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RangeN.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RangeN.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RangeN.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RangeN.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RangeN.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RangeN.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RangeN.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61708,6 +62090,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="ReadCSV.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ReadCSV.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ReadCSV.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ReadCSV.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="ReadCSV.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="ReadCSV.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="ReadCSV.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61828,6 +62211,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Reduce.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Reduce.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Reduce.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Reduce.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Reduce.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Reduce.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Reduce.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -61957,6 +62341,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RegexpExtract.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RegexpExtract.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RegexpExtract.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RegexpExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62086,6 +62471,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpReplace.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpReplace.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpReplace.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RegexpReplace.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RegexpReplace.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RegexpReplace.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RegexpReplace.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62207,6 +62593,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpLike.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpLike.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpLike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RegexpLike.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RegexpLike.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RegexpLike.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RegexpLike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62333,6 +62720,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpILike.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpILike.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpILike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RegexpILike.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RegexpILike.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RegexpILike.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RegexpILike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62454,6 +62842,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RegexpSplit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpSplit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpSplit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RegexpSplit.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RegexpSplit.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RegexpSplit.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RegexpSplit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62575,6 +62964,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Repeat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Repeat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Repeat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Repeat.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Repeat.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Repeat.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Repeat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62696,6 +63086,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Round.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Round.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Round.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Round.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Round.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Round.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Round.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62817,6 +63208,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="RowNumber.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowNumber.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowNumber.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="RowNumber.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="RowNumber.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="RowNumber.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="RowNumber.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -62938,6 +63330,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SafeDivide.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SafeDivide.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SafeDivide.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SafeDivide.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SafeDivide.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SafeDivide.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SafeDivide.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63048,6 +63441,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SetAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SetAgg.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SetAgg.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SetAgg.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SetAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63158,6 +63552,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SHA.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SHA.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SHA.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SHA.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SHA.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SHA.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SHA.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63280,6 +63675,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SHA2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SHA2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SHA2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SHA2.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SHA2.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SHA2.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SHA2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63401,6 +63797,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="SortArray.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SortArray.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SortArray.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="SortArray.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="SortArray.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="SortArray.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="SortArray.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63522,6 +63919,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Split.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Split.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Split.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Split.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Split.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Split.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Split.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63643,6 +64041,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Substring.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Substring.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Substring.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Substring.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Substring.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Substring.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Substring.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63764,6 +64163,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StandardHash.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StandardHash.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StandardHash.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StandardHash.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StandardHash.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StandardHash.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StandardHash.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -63886,6 +64286,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StartsWith.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StartsWith.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StartsWith.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StartsWith.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StartsWith.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StartsWith.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StartsWith.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64012,6 +64413,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrPosition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrPosition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrPosition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StrPosition.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StrPosition.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StrPosition.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StrPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64133,6 +64535,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StrToDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StrToDate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StrToDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64254,6 +64657,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StrToTime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StrToTime.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StrToTime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64375,6 +64779,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StrToUnix.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrToUnix.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StrToUnix.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StrToUnix.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StrToUnix.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64496,6 +64901,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="NumberToStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NumberToStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NumberToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NumberToStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NumberToStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NumberToStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NumberToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64617,6 +65023,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="FromBase.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FromBase.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FromBase.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="FromBase.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="FromBase.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="FromBase.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="FromBase.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64751,6 +65158,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Struct.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Struct.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Struct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Struct.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Struct.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Struct.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Struct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64871,6 +65279,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StructExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StructExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StructExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StructExtract.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StructExtract.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StructExtract.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StructExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -64981,6 +65390,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Sum.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sum.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sum.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Sum.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Sum.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Sum.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Sum.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65091,6 +65501,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Sqrt.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sqrt.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sqrt.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Sqrt.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Sqrt.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Sqrt.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Sqrt.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65201,6 +65612,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Stddev.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Stddev.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Stddev.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Stddev.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Stddev.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Stddev.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Stddev.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65311,6 +65723,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StddevPop.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StddevPop.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StddevPop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StddevPop.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StddevPop.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StddevPop.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StddevPop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65421,6 +65834,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="StddevSamp.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StddevSamp.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StddevSamp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="StddevSamp.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="StddevSamp.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="StddevSamp.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="StddevSamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65542,6 +65956,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeToStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeToStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeToStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeToStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65652,6 +66067,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToTimeStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeToTimeStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeToTimeStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeToTimeStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeToTimeStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeToTimeStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65762,6 +66178,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeToUnix.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeToUnix.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeToUnix.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeToUnix.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeToUnix.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65872,6 +66289,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeStrToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeStrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeStrToDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeStrToDate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeStrToDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -65982,6 +66400,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeStrToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeStrToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeStrToTime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeStrToTime.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeStrToTime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeStrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66092,6 +66511,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TimeStrToUnix.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeStrToUnix.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeStrToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TimeStrToUnix.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TimeStrToUnix.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TimeStrToUnix.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TimeStrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66218,6 +66638,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Trim.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Trim.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Trim.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Trim.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Trim.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Trim.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Trim.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66365,6 +66786,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDsAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDsAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TsOrDsAdd.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TsOrDsAdd.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TsOrDsAdd.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TsOrDsAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66452,6 +66874,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsToDateStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDsToDateStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDsToDateStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TsOrDsToDateStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TsOrDsToDateStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TsOrDsToDateStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TsOrDsToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66573,6 +66996,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDsToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDsToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDsToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TsOrDsToDate.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TsOrDsToDate.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TsOrDsToDate.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TsOrDsToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66683,6 +67107,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="TsOrDiToDi.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDiToDi.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDiToDi.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="TsOrDiToDi.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="TsOrDiToDi.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="TsOrDiToDi.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="TsOrDiToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66793,6 +67218,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Unhex.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unhex.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unhex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Unhex.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Unhex.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Unhex.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Unhex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -66914,6 +67340,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UnixToStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UnixToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UnixToStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UnixToStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UnixToStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UnixToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67075,6 +67502,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UnixToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UnixToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UnixToTime.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UnixToTime.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UnixToTime.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UnixToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67185,6 +67613,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="UnixToTimeStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UnixToTimeStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UnixToTimeStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="UnixToTimeStr.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="UnixToTimeStr.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="UnixToTimeStr.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="UnixToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67295,6 +67724,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Upper.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Upper.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Upper.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Upper.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Upper.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Upper.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Upper.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67405,6 +67835,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Variance.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Variance.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Variance.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Variance.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Variance.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Variance.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Variance.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67515,6 +67946,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="VariancePop.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="VariancePop.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="VariancePop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="VariancePop.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="VariancePop.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="VariancePop.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="VariancePop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67636,6 +68068,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Week.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Week.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Week.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Week.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Week.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Week.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Week.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67757,6 +68190,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="XMLTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="XMLTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="XMLTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="XMLTable.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="XMLTable.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="XMLTable.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="XMLTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67867,6 +68301,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Year.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Year.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Year.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Year.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Year.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Year.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Year.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -67988,6 +68423,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Use.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Use.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Use.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Use.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Use.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Use.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Use.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -68086,6 +68522,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="Merge.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Merge.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Merge.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Merge.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="Merge.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="Merge.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="Merge.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -68184,6 +68621,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="When.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="When.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="When.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="When.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="When.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="When.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="When.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -68305,6 +68743,7 @@ name is set to the expression's class name transformed to snake case.</li>
<dd id="NextValueFor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NextValueFor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NextValueFor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="NextValueFor.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
<dd id="NextValueFor.name" class="variable"><a href="#Expression.name">name</a></dd>
<dd id="NextValueFor.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
<dd id="NextValueFor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
@@ -68480,14 +68919,14 @@ that an input expression is a SQL string).</li>
<div class="attr function">
<span class="def">def</span>
- <span class="name">maybe_copy</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">instance</span><span class="p">:</span> <span class="o">~</span><span class="n">E</span>, </span><span class="param"><span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
+ <span class="name">maybe_copy</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">instance</span>, </span><span class="param"><span class="n">copy</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="maybe_copy-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#maybe_copy"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-4864"><a href="#maybe_copy-4864"><span class="linenos">4864</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="maybe_copy-4865"><a href="#maybe_copy-4865"><span class="linenos">4865</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-4874"><a href="#maybe_copy-4874"><span class="linenos">4874</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="maybe_copy-4875"><a href="#maybe_copy-4875"><span class="linenos">4875</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
</span></pre></div>
@@ -68505,32 +68944,32 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="union-5045"><a href="#union-5045"><span class="linenos">5045</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="union-5046"><a href="#union-5046"><span class="linenos">5046</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="union-5047"><a href="#union-5047"><span class="linenos">5047</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="union-5048"><a href="#union-5048"><span class="linenos">5048</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-5049"><a href="#union-5049"><span class="linenos">5049</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-5050"><a href="#union-5050"><span class="linenos">5050</span></a>
-</span><span id="union-5051"><a href="#union-5051"><span class="linenos">5051</span></a><span class="sd"> Example:</span>
-</span><span id="union-5052"><a href="#union-5052"><span class="linenos">5052</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="union-5053"><a href="#union-5053"><span class="linenos">5053</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-5054"><a href="#union-5054"><span class="linenos">5054</span></a>
-</span><span id="union-5055"><a href="#union-5055"><span class="linenos">5055</span></a><span class="sd"> Args:</span>
-</span><span id="union-5056"><a href="#union-5056"><span class="linenos">5056</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-5057"><a href="#union-5057"><span class="linenos">5057</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-5058"><a href="#union-5058"><span class="linenos">5058</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-5059"><a href="#union-5059"><span class="linenos">5059</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-5060"><a href="#union-5060"><span class="linenos">5060</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-5061"><a href="#union-5061"><span class="linenos">5061</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="union-5062"><a href="#union-5062"><span class="linenos">5062</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="union-5063"><a href="#union-5063"><span class="linenos">5063</span></a>
-</span><span id="union-5064"><a href="#union-5064"><span class="linenos">5064</span></a><span class="sd"> Returns:</span>
-</span><span id="union-5065"><a href="#union-5065"><span class="linenos">5065</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="union-5066"><a href="#union-5066"><span class="linenos">5066</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-5067"><a href="#union-5067"><span class="linenos">5067</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-5068"><a href="#union-5068"><span class="linenos">5068</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-5069"><a href="#union-5069"><span class="linenos">5069</span></a>
-</span><span id="union-5070"><a href="#union-5070"><span class="linenos">5070</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="union-5055"><a href="#union-5055"><span class="linenos">5055</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="union-5056"><a href="#union-5056"><span class="linenos">5056</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="union-5057"><a href="#union-5057"><span class="linenos">5057</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="union-5058"><a href="#union-5058"><span class="linenos">5058</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-5059"><a href="#union-5059"><span class="linenos">5059</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-5060"><a href="#union-5060"><span class="linenos">5060</span></a>
+</span><span id="union-5061"><a href="#union-5061"><span class="linenos">5061</span></a><span class="sd"> Example:</span>
+</span><span id="union-5062"><a href="#union-5062"><span class="linenos">5062</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="union-5063"><a href="#union-5063"><span class="linenos">5063</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="union-5064"><a href="#union-5064"><span class="linenos">5064</span></a>
+</span><span id="union-5065"><a href="#union-5065"><span class="linenos">5065</span></a><span class="sd"> Args:</span>
+</span><span id="union-5066"><a href="#union-5066"><span class="linenos">5066</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-5067"><a href="#union-5067"><span class="linenos">5067</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-5068"><a href="#union-5068"><span class="linenos">5068</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-5069"><a href="#union-5069"><span class="linenos">5069</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-5070"><a href="#union-5070"><span class="linenos">5070</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-5071"><a href="#union-5071"><span class="linenos">5071</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="union-5072"><a href="#union-5072"><span class="linenos">5072</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="union-5073"><a href="#union-5073"><span class="linenos">5073</span></a>
+</span><span id="union-5074"><a href="#union-5074"><span class="linenos">5074</span></a><span class="sd"> Returns:</span>
+</span><span id="union-5075"><a href="#union-5075"><span class="linenos">5075</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="union-5076"><a href="#union-5076"><span class="linenos">5076</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-5077"><a href="#union-5077"><span class="linenos">5077</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-5078"><a href="#union-5078"><span class="linenos">5078</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-5079"><a href="#union-5079"><span class="linenos">5079</span></a>
+</span><span id="union-5080"><a href="#union-5080"><span class="linenos">5080</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span></pre></div>
@@ -68578,32 +69017,32 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-5073"><a href="#intersect-5073"><span class="linenos">5073</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="intersect-5074"><a href="#intersect-5074"><span class="linenos">5074</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="intersect-5075"><a href="#intersect-5075"><span class="linenos">5075</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="intersect-5076"><a href="#intersect-5076"><span class="linenos">5076</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-5077"><a href="#intersect-5077"><span class="linenos">5077</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-5078"><a href="#intersect-5078"><span class="linenos">5078</span></a>
-</span><span id="intersect-5079"><a href="#intersect-5079"><span class="linenos">5079</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-5080"><a href="#intersect-5080"><span class="linenos">5080</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="intersect-5081"><a href="#intersect-5081"><span class="linenos">5081</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-5082"><a href="#intersect-5082"><span class="linenos">5082</span></a>
-</span><span id="intersect-5083"><a href="#intersect-5083"><span class="linenos">5083</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-5084"><a href="#intersect-5084"><span class="linenos">5084</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-5085"><a href="#intersect-5085"><span class="linenos">5085</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-5086"><a href="#intersect-5086"><span class="linenos">5086</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-5087"><a href="#intersect-5087"><span class="linenos">5087</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-5088"><a href="#intersect-5088"><span class="linenos">5088</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-5089"><a href="#intersect-5089"><span class="linenos">5089</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="intersect-5090"><a href="#intersect-5090"><span class="linenos">5090</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="intersect-5091"><a href="#intersect-5091"><span class="linenos">5091</span></a>
-</span><span id="intersect-5092"><a href="#intersect-5092"><span class="linenos">5092</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-5093"><a href="#intersect-5093"><span class="linenos">5093</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="intersect-5094"><a href="#intersect-5094"><span class="linenos">5094</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-5095"><a href="#intersect-5095"><span class="linenos">5095</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-5096"><a href="#intersect-5096"><span class="linenos">5096</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-5097"><a href="#intersect-5097"><span class="linenos">5097</span></a>
-</span><span id="intersect-5098"><a href="#intersect-5098"><span class="linenos">5098</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-5083"><a href="#intersect-5083"><span class="linenos">5083</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="intersect-5084"><a href="#intersect-5084"><span class="linenos">5084</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="intersect-5085"><a href="#intersect-5085"><span class="linenos">5085</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="intersect-5086"><a href="#intersect-5086"><span class="linenos">5086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-5087"><a href="#intersect-5087"><span class="linenos">5087</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-5088"><a href="#intersect-5088"><span class="linenos">5088</span></a>
+</span><span id="intersect-5089"><a href="#intersect-5089"><span class="linenos">5089</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-5090"><a href="#intersect-5090"><span class="linenos">5090</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="intersect-5091"><a href="#intersect-5091"><span class="linenos">5091</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="intersect-5092"><a href="#intersect-5092"><span class="linenos">5092</span></a>
+</span><span id="intersect-5093"><a href="#intersect-5093"><span class="linenos">5093</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-5094"><a href="#intersect-5094"><span class="linenos">5094</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-5095"><a href="#intersect-5095"><span class="linenos">5095</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-5096"><a href="#intersect-5096"><span class="linenos">5096</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-5097"><a href="#intersect-5097"><span class="linenos">5097</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-5098"><a href="#intersect-5098"><span class="linenos">5098</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-5099"><a href="#intersect-5099"><span class="linenos">5099</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="intersect-5100"><a href="#intersect-5100"><span class="linenos">5100</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="intersect-5101"><a href="#intersect-5101"><span class="linenos">5101</span></a>
+</span><span id="intersect-5102"><a href="#intersect-5102"><span class="linenos">5102</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-5103"><a href="#intersect-5103"><span class="linenos">5103</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="intersect-5104"><a href="#intersect-5104"><span class="linenos">5104</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-5105"><a href="#intersect-5105"><span class="linenos">5105</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-5106"><a href="#intersect-5106"><span class="linenos">5106</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-5107"><a href="#intersect-5107"><span class="linenos">5107</span></a>
+</span><span id="intersect-5108"><a href="#intersect-5108"><span class="linenos">5108</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span></pre></div>
@@ -68651,32 +69090,32 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#except_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="except_-5101"><a href="#except_-5101"><span class="linenos">5101</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="except_-5102"><a href="#except_-5102"><span class="linenos">5102</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="except_-5103"><a href="#except_-5103"><span class="linenos">5103</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="except_-5104"><a href="#except_-5104"><span class="linenos">5104</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-5105"><a href="#except_-5105"><span class="linenos">5105</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-5106"><a href="#except_-5106"><span class="linenos">5106</span></a>
-</span><span id="except_-5107"><a href="#except_-5107"><span class="linenos">5107</span></a><span class="sd"> Example:</span>
-</span><span id="except_-5108"><a href="#except_-5108"><span class="linenos">5108</span></a><span class="sd"> &gt;&gt;&gt; except_(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
-</span><span id="except_-5109"><a href="#except_-5109"><span class="linenos">5109</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-5110"><a href="#except_-5110"><span class="linenos">5110</span></a>
-</span><span id="except_-5111"><a href="#except_-5111"><span class="linenos">5111</span></a><span class="sd"> Args:</span>
-</span><span id="except_-5112"><a href="#except_-5112"><span class="linenos">5112</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-5113"><a href="#except_-5113"><span class="linenos">5113</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-5114"><a href="#except_-5114"><span class="linenos">5114</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-5115"><a href="#except_-5115"><span class="linenos">5115</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-5116"><a href="#except_-5116"><span class="linenos">5116</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-5117"><a href="#except_-5117"><span class="linenos">5117</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="except_-5118"><a href="#except_-5118"><span class="linenos">5118</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="except_-5119"><a href="#except_-5119"><span class="linenos">5119</span></a>
-</span><span id="except_-5120"><a href="#except_-5120"><span class="linenos">5120</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-5121"><a href="#except_-5121"><span class="linenos">5121</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="except_-5122"><a href="#except_-5122"><span class="linenos">5122</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-5123"><a href="#except_-5123"><span class="linenos">5123</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-5124"><a href="#except_-5124"><span class="linenos">5124</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-5125"><a href="#except_-5125"><span class="linenos">5125</span></a>
-</span><span id="except_-5126"><a href="#except_-5126"><span class="linenos">5126</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="except_-5111"><a href="#except_-5111"><span class="linenos">5111</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="except_-5112"><a href="#except_-5112"><span class="linenos">5112</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="except_-5113"><a href="#except_-5113"><span class="linenos">5113</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="except_-5114"><a href="#except_-5114"><span class="linenos">5114</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-5115"><a href="#except_-5115"><span class="linenos">5115</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-5116"><a href="#except_-5116"><span class="linenos">5116</span></a>
+</span><span id="except_-5117"><a href="#except_-5117"><span class="linenos">5117</span></a><span class="sd"> Example:</span>
+</span><span id="except_-5118"><a href="#except_-5118"><span class="linenos">5118</span></a><span class="sd"> &gt;&gt;&gt; except_(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
+</span><span id="except_-5119"><a href="#except_-5119"><span class="linenos">5119</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="except_-5120"><a href="#except_-5120"><span class="linenos">5120</span></a>
+</span><span id="except_-5121"><a href="#except_-5121"><span class="linenos">5121</span></a><span class="sd"> Args:</span>
+</span><span id="except_-5122"><a href="#except_-5122"><span class="linenos">5122</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-5123"><a href="#except_-5123"><span class="linenos">5123</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-5124"><a href="#except_-5124"><span class="linenos">5124</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-5125"><a href="#except_-5125"><span class="linenos">5125</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-5126"><a href="#except_-5126"><span class="linenos">5126</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-5127"><a href="#except_-5127"><span class="linenos">5127</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="except_-5128"><a href="#except_-5128"><span class="linenos">5128</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="except_-5129"><a href="#except_-5129"><span class="linenos">5129</span></a>
+</span><span id="except_-5130"><a href="#except_-5130"><span class="linenos">5130</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-5131"><a href="#except_-5131"><span class="linenos">5131</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="except_-5132"><a href="#except_-5132"><span class="linenos">5132</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-5133"><a href="#except_-5133"><span class="linenos">5133</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-5134"><a href="#except_-5134"><span class="linenos">5134</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-5135"><a href="#except_-5135"><span class="linenos">5135</span></a>
+</span><span id="except_-5136"><a href="#except_-5136"><span class="linenos">5136</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span></pre></div>
@@ -68724,26 +69163,26 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="select-5129"><a href="#select-5129"><span class="linenos">5129</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="select-5130"><a href="#select-5130"><span class="linenos">5130</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-5131"><a href="#select-5131"><span class="linenos">5131</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-5132"><a href="#select-5132"><span class="linenos">5132</span></a>
-</span><span id="select-5133"><a href="#select-5133"><span class="linenos">5133</span></a><span class="sd"> Example:</span>
-</span><span id="select-5134"><a href="#select-5134"><span class="linenos">5134</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;col1&quot;, &quot;col2&quot;).from_(&quot;tbl&quot;).sql()</span>
-</span><span id="select-5135"><a href="#select-5135"><span class="linenos">5135</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-5136"><a href="#select-5136"><span class="linenos">5136</span></a>
-</span><span id="select-5137"><a href="#select-5137"><span class="linenos">5137</span></a><span class="sd"> Args:</span>
-</span><span id="select-5138"><a href="#select-5138"><span class="linenos">5138</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-5139"><a href="#select-5139"><span class="linenos">5139</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-5140"><a href="#select-5140"><span class="linenos">5140</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-5141"><a href="#select-5141"><span class="linenos">5141</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-5142"><a href="#select-5142"><span class="linenos">5142</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-5143"><a href="#select-5143"><span class="linenos">5143</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="select-5144"><a href="#select-5144"><span class="linenos">5144</span></a>
-</span><span id="select-5145"><a href="#select-5145"><span class="linenos">5145</span></a><span class="sd"> Returns:</span>
-</span><span id="select-5146"><a href="#select-5146"><span class="linenos">5146</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-5147"><a href="#select-5147"><span class="linenos">5147</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-5148"><a href="#select-5148"><span class="linenos">5148</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="select-5139"><a href="#select-5139"><span class="linenos">5139</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="select-5140"><a href="#select-5140"><span class="linenos">5140</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-5141"><a href="#select-5141"><span class="linenos">5141</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="select-5142"><a href="#select-5142"><span class="linenos">5142</span></a>
+</span><span id="select-5143"><a href="#select-5143"><span class="linenos">5143</span></a><span class="sd"> Example:</span>
+</span><span id="select-5144"><a href="#select-5144"><span class="linenos">5144</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;col1&quot;, &quot;col2&quot;).from_(&quot;tbl&quot;).sql()</span>
+</span><span id="select-5145"><a href="#select-5145"><span class="linenos">5145</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-5146"><a href="#select-5146"><span class="linenos">5146</span></a>
+</span><span id="select-5147"><a href="#select-5147"><span class="linenos">5147</span></a><span class="sd"> Args:</span>
+</span><span id="select-5148"><a href="#select-5148"><span class="linenos">5148</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-5149"><a href="#select-5149"><span class="linenos">5149</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-5150"><a href="#select-5150"><span class="linenos">5150</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-5151"><a href="#select-5151"><span class="linenos">5151</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-5152"><a href="#select-5152"><span class="linenos">5152</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-5153"><a href="#select-5153"><span class="linenos">5153</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-5154"><a href="#select-5154"><span class="linenos">5154</span></a>
+</span><span id="select-5155"><a href="#select-5155"><span class="linenos">5155</span></a><span class="sd"> Returns:</span>
+</span><span id="select-5156"><a href="#select-5156"><span class="linenos">5156</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-5157"><a href="#select-5157"><span class="linenos">5157</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-5158"><a href="#select-5158"><span class="linenos">5158</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -68790,26 +69229,26 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#from_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="from_-5151"><a href="#from_-5151"><span class="linenos">5151</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="from_-5152"><a href="#from_-5152"><span class="linenos">5152</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-5153"><a href="#from_-5153"><span class="linenos">5153</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-5154"><a href="#from_-5154"><span class="linenos">5154</span></a>
-</span><span id="from_-5155"><a href="#from_-5155"><span class="linenos">5155</span></a><span class="sd"> Example:</span>
-</span><span id="from_-5156"><a href="#from_-5156"><span class="linenos">5156</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
-</span><span id="from_-5157"><a href="#from_-5157"><span class="linenos">5157</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-5158"><a href="#from_-5158"><span class="linenos">5158</span></a>
-</span><span id="from_-5159"><a href="#from_-5159"><span class="linenos">5159</span></a><span class="sd"> Args:</span>
-</span><span id="from_-5160"><a href="#from_-5160"><span class="linenos">5160</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-5161"><a href="#from_-5161"><span class="linenos">5161</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-5162"><a href="#from_-5162"><span class="linenos">5162</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-5163"><a href="#from_-5163"><span class="linenos">5163</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-5164"><a href="#from_-5164"><span class="linenos">5164</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-5165"><a href="#from_-5165"><span class="linenos">5165</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="from_-5166"><a href="#from_-5166"><span class="linenos">5166</span></a>
-</span><span id="from_-5167"><a href="#from_-5167"><span class="linenos">5167</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-5168"><a href="#from_-5168"><span class="linenos">5168</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-5169"><a href="#from_-5169"><span class="linenos">5169</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-5170"><a href="#from_-5170"><span class="linenos">5170</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-5161"><a href="#from_-5161"><span class="linenos">5161</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="from_-5162"><a href="#from_-5162"><span class="linenos">5162</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-5163"><a href="#from_-5163"><span class="linenos">5163</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="from_-5164"><a href="#from_-5164"><span class="linenos">5164</span></a>
+</span><span id="from_-5165"><a href="#from_-5165"><span class="linenos">5165</span></a><span class="sd"> Example:</span>
+</span><span id="from_-5166"><a href="#from_-5166"><span class="linenos">5166</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
+</span><span id="from_-5167"><a href="#from_-5167"><span class="linenos">5167</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-5168"><a href="#from_-5168"><span class="linenos">5168</span></a>
+</span><span id="from_-5169"><a href="#from_-5169"><span class="linenos">5169</span></a><span class="sd"> Args:</span>
+</span><span id="from_-5170"><a href="#from_-5170"><span class="linenos">5170</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-5171"><a href="#from_-5171"><span class="linenos">5171</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-5172"><a href="#from_-5172"><span class="linenos">5172</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-5173"><a href="#from_-5173"><span class="linenos">5173</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-5174"><a href="#from_-5174"><span class="linenos">5174</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-5175"><a href="#from_-5175"><span class="linenos">5175</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-5176"><a href="#from_-5176"><span class="linenos">5176</span></a>
+</span><span id="from_-5177"><a href="#from_-5177"><span class="linenos">5177</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-5178"><a href="#from_-5178"><span class="linenos">5178</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-5179"><a href="#from_-5179"><span class="linenos">5179</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-5180"><a href="#from_-5180"><span class="linenos">5180</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -68856,53 +69295,53 @@ that the input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#update"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="update-5173"><a href="#update-5173"><span class="linenos">5173</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="update-5174"><a href="#update-5174"><span class="linenos">5174</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
-</span><span id="update-5175"><a href="#update-5175"><span class="linenos">5175</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="update-5176"><a href="#update-5176"><span class="linenos">5176</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="update-5177"><a href="#update-5177"><span class="linenos">5177</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="update-5178"><a href="#update-5178"><span class="linenos">5178</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="update-5179"><a href="#update-5179"><span class="linenos">5179</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="update-5180"><a href="#update-5180"><span class="linenos">5180</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="update-5181"><a href="#update-5181"><span class="linenos">5181</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-5182"><a href="#update-5182"><span class="linenos">5182</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-5183"><a href="#update-5183"><span class="linenos">5183</span></a>
-</span><span id="update-5184"><a href="#update-5184"><span class="linenos">5184</span></a><span class="sd"> Example:</span>
-</span><span id="update-5185"><a href="#update-5185"><span class="linenos">5185</span></a><span class="sd"> &gt;&gt;&gt; update(&quot;my_table&quot;, {&quot;x&quot;: 1, &quot;y&quot;: &quot;2&quot;, &quot;z&quot;: None}, from_=&quot;baz&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
-</span><span id="update-5186"><a href="#update-5186"><span class="linenos">5186</span></a><span class="sd"> &quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
-</span><span id="update-5187"><a href="#update-5187"><span class="linenos">5187</span></a>
-</span><span id="update-5188"><a href="#update-5188"><span class="linenos">5188</span></a><span class="sd"> Args:</span>
-</span><span id="update-5189"><a href="#update-5189"><span class="linenos">5189</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="update-5190"><a href="#update-5190"><span class="linenos">5190</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-5191"><a href="#update-5191"><span class="linenos">5191</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="update-5192"><a href="#update-5192"><span class="linenos">5192</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="update-5193"><a href="#update-5193"><span class="linenos">5193</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="update-5194"><a href="#update-5194"><span class="linenos">5194</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="update-5195"><a href="#update-5195"><span class="linenos">5195</span></a>
-</span><span id="update-5196"><a href="#update-5196"><span class="linenos">5196</span></a><span class="sd"> Returns:</span>
-</span><span id="update-5197"><a href="#update-5197"><span class="linenos">5197</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-5198"><a href="#update-5198"><span class="linenos">5198</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-5199"><a href="#update-5199"><span class="linenos">5199</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
-</span><span id="update-5200"><a href="#update-5200"><span class="linenos">5200</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-5201"><a href="#update-5201"><span class="linenos">5201</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-5202"><a href="#update-5202"><span class="linenos">5202</span></a> <span class="p">[</span>
-</span><span id="update-5203"><a href="#update-5203"><span class="linenos">5203</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
-</span><span id="update-5204"><a href="#update-5204"><span class="linenos">5204</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="update-5205"><a href="#update-5205"><span class="linenos">5205</span></a> <span class="p">],</span>
-</span><span id="update-5206"><a href="#update-5206"><span class="linenos">5206</span></a> <span class="p">)</span>
-</span><span id="update-5207"><a href="#update-5207"><span class="linenos">5207</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-5208"><a href="#update-5208"><span class="linenos">5208</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-5209"><a href="#update-5209"><span class="linenos">5209</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-5210"><a href="#update-5210"><span class="linenos">5210</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="update-5211"><a href="#update-5211"><span class="linenos">5211</span></a> <span class="p">)</span>
-</span><span id="update-5212"><a href="#update-5212"><span class="linenos">5212</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="update-5213"><a href="#update-5213"><span class="linenos">5213</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span>
-</span><span id="update-5214"><a href="#update-5214"><span class="linenos">5214</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-5215"><a href="#update-5215"><span class="linenos">5215</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-5216"><a href="#update-5216"><span class="linenos">5216</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-5217"><a href="#update-5217"><span class="linenos">5217</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;WHERE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="update-5218"><a href="#update-5218"><span class="linenos">5218</span></a> <span class="p">)</span>
-</span><span id="update-5219"><a href="#update-5219"><span class="linenos">5219</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="update-5183"><a href="#update-5183"><span class="linenos">5183</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="update-5184"><a href="#update-5184"><span class="linenos">5184</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
+</span><span id="update-5185"><a href="#update-5185"><span class="linenos">5185</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="update-5186"><a href="#update-5186"><span class="linenos">5186</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="update-5187"><a href="#update-5187"><span class="linenos">5187</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="update-5188"><a href="#update-5188"><span class="linenos">5188</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="update-5189"><a href="#update-5189"><span class="linenos">5189</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="update-5190"><a href="#update-5190"><span class="linenos">5190</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="update-5191"><a href="#update-5191"><span class="linenos">5191</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-5192"><a href="#update-5192"><span class="linenos">5192</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="update-5193"><a href="#update-5193"><span class="linenos">5193</span></a>
+</span><span id="update-5194"><a href="#update-5194"><span class="linenos">5194</span></a><span class="sd"> Example:</span>
+</span><span id="update-5195"><a href="#update-5195"><span class="linenos">5195</span></a><span class="sd"> &gt;&gt;&gt; update(&quot;my_table&quot;, {&quot;x&quot;: 1, &quot;y&quot;: &quot;2&quot;, &quot;z&quot;: None}, from_=&quot;baz&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
+</span><span id="update-5196"><a href="#update-5196"><span class="linenos">5196</span></a><span class="sd"> &quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
+</span><span id="update-5197"><a href="#update-5197"><span class="linenos">5197</span></a>
+</span><span id="update-5198"><a href="#update-5198"><span class="linenos">5198</span></a><span class="sd"> Args:</span>
+</span><span id="update-5199"><a href="#update-5199"><span class="linenos">5199</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="update-5200"><a href="#update-5200"><span class="linenos">5200</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-5201"><a href="#update-5201"><span class="linenos">5201</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="update-5202"><a href="#update-5202"><span class="linenos">5202</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="update-5203"><a href="#update-5203"><span class="linenos">5203</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="update-5204"><a href="#update-5204"><span class="linenos">5204</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-5205"><a href="#update-5205"><span class="linenos">5205</span></a>
+</span><span id="update-5206"><a href="#update-5206"><span class="linenos">5206</span></a><span class="sd"> Returns:</span>
+</span><span id="update-5207"><a href="#update-5207"><span class="linenos">5207</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-5208"><a href="#update-5208"><span class="linenos">5208</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-5209"><a href="#update-5209"><span class="linenos">5209</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
+</span><span id="update-5210"><a href="#update-5210"><span class="linenos">5210</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-5211"><a href="#update-5211"><span class="linenos">5211</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-5212"><a href="#update-5212"><span class="linenos">5212</span></a> <span class="p">[</span>
+</span><span id="update-5213"><a href="#update-5213"><span class="linenos">5213</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
+</span><span id="update-5214"><a href="#update-5214"><span class="linenos">5214</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="update-5215"><a href="#update-5215"><span class="linenos">5215</span></a> <span class="p">],</span>
+</span><span id="update-5216"><a href="#update-5216"><span class="linenos">5216</span></a> <span class="p">)</span>
+</span><span id="update-5217"><a href="#update-5217"><span class="linenos">5217</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-5218"><a href="#update-5218"><span class="linenos">5218</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-5219"><a href="#update-5219"><span class="linenos">5219</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-5220"><a href="#update-5220"><span class="linenos">5220</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="update-5221"><a href="#update-5221"><span class="linenos">5221</span></a> <span class="p">)</span>
+</span><span id="update-5222"><a href="#update-5222"><span class="linenos">5222</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="update-5223"><a href="#update-5223"><span class="linenos">5223</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span>
+</span><span id="update-5224"><a href="#update-5224"><span class="linenos">5224</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-5225"><a href="#update-5225"><span class="linenos">5225</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-5226"><a href="#update-5226"><span class="linenos">5226</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-5227"><a href="#update-5227"><span class="linenos">5227</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;WHERE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="update-5228"><a href="#update-5228"><span class="linenos">5228</span></a> <span class="p">)</span>
+</span><span id="update-5229"><a href="#update-5229"><span class="linenos">5229</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
@@ -68949,35 +69388,35 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#delete"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="delete-5222"><a href="#delete-5222"><span class="linenos">5222</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="delete-5223"><a href="#delete-5223"><span class="linenos">5223</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="delete-5224"><a href="#delete-5224"><span class="linenos">5224</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="delete-5225"><a href="#delete-5225"><span class="linenos">5225</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="delete-5226"><a href="#delete-5226"><span class="linenos">5226</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="delete-5227"><a href="#delete-5227"><span class="linenos">5227</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="delete-5228"><a href="#delete-5228"><span class="linenos">5228</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="delete-5229"><a href="#delete-5229"><span class="linenos">5229</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-5230"><a href="#delete-5230"><span class="linenos">5230</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-5231"><a href="#delete-5231"><span class="linenos">5231</span></a>
-</span><span id="delete-5232"><a href="#delete-5232"><span class="linenos">5232</span></a><span class="sd"> Example:</span>
-</span><span id="delete-5233"><a href="#delete-5233"><span class="linenos">5233</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;my_table&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
-</span><span id="delete-5234"><a href="#delete-5234"><span class="linenos">5234</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-5235"><a href="#delete-5235"><span class="linenos">5235</span></a>
-</span><span id="delete-5236"><a href="#delete-5236"><span class="linenos">5236</span></a><span class="sd"> Args:</span>
-</span><span id="delete-5237"><a href="#delete-5237"><span class="linenos">5237</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-5238"><a href="#delete-5238"><span class="linenos">5238</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="delete-5239"><a href="#delete-5239"><span class="linenos">5239</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="delete-5240"><a href="#delete-5240"><span class="linenos">5240</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-5232"><a href="#delete-5232"><span class="linenos">5232</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="delete-5233"><a href="#delete-5233"><span class="linenos">5233</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="delete-5234"><a href="#delete-5234"><span class="linenos">5234</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="delete-5235"><a href="#delete-5235"><span class="linenos">5235</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="delete-5236"><a href="#delete-5236"><span class="linenos">5236</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="delete-5237"><a href="#delete-5237"><span class="linenos">5237</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="delete-5238"><a href="#delete-5238"><span class="linenos">5238</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="delete-5239"><a href="#delete-5239"><span class="linenos">5239</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-5240"><a href="#delete-5240"><span class="linenos">5240</span></a><span class="sd"> Builds a delete statement.</span>
</span><span id="delete-5241"><a href="#delete-5241"><span class="linenos">5241</span></a>
-</span><span id="delete-5242"><a href="#delete-5242"><span class="linenos">5242</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-5243"><a href="#delete-5243"><span class="linenos">5243</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-5244"><a href="#delete-5244"><span class="linenos">5244</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-5245"><a href="#delete-5245"><span class="linenos">5245</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-5246"><a href="#delete-5246"><span class="linenos">5246</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="delete-5247"><a href="#delete-5247"><span class="linenos">5247</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-5248"><a href="#delete-5248"><span class="linenos">5248</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="delete-5249"><a href="#delete-5249"><span class="linenos">5249</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-5250"><a href="#delete-5250"><span class="linenos">5250</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="delete-5242"><a href="#delete-5242"><span class="linenos">5242</span></a><span class="sd"> Example:</span>
+</span><span id="delete-5243"><a href="#delete-5243"><span class="linenos">5243</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;my_table&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
+</span><span id="delete-5244"><a href="#delete-5244"><span class="linenos">5244</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-5245"><a href="#delete-5245"><span class="linenos">5245</span></a>
+</span><span id="delete-5246"><a href="#delete-5246"><span class="linenos">5246</span></a><span class="sd"> Args:</span>
+</span><span id="delete-5247"><a href="#delete-5247"><span class="linenos">5247</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-5248"><a href="#delete-5248"><span class="linenos">5248</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="delete-5249"><a href="#delete-5249"><span class="linenos">5249</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="delete-5250"><a href="#delete-5250"><span class="linenos">5250</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-5251"><a href="#delete-5251"><span class="linenos">5251</span></a>
+</span><span id="delete-5252"><a href="#delete-5252"><span class="linenos">5252</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-5253"><a href="#delete-5253"><span class="linenos">5253</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-5254"><a href="#delete-5254"><span class="linenos">5254</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-5255"><a href="#delete-5255"><span class="linenos">5255</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-5256"><a href="#delete-5256"><span class="linenos">5256</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="delete-5257"><a href="#delete-5257"><span class="linenos">5257</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-5258"><a href="#delete-5258"><span class="linenos">5258</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="delete-5259"><a href="#delete-5259"><span class="linenos">5259</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-5260"><a href="#delete-5260"><span class="linenos">5260</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
@@ -69022,49 +69461,49 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="insert-5253"><a href="#insert-5253"><span class="linenos">5253</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="insert-5254"><a href="#insert-5254"><span class="linenos">5254</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-5255"><a href="#insert-5255"><span class="linenos">5255</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-5256"><a href="#insert-5256"><span class="linenos">5256</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5257"><a href="#insert-5257"><span class="linenos">5257</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5258"><a href="#insert-5258"><span class="linenos">5258</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-5259"><a href="#insert-5259"><span class="linenos">5259</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="insert-5260"><a href="#insert-5260"><span class="linenos">5260</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-5261"><a href="#insert-5261"><span class="linenos">5261</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="insert-5262"><a href="#insert-5262"><span class="linenos">5262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="insert-5263"><a href="#insert-5263"><span class="linenos">5263</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="insert-5264"><a href="#insert-5264"><span class="linenos">5264</span></a>
-</span><span id="insert-5265"><a href="#insert-5265"><span class="linenos">5265</span></a><span class="sd"> Example:</span>
-</span><span id="insert-5266"><a href="#insert-5266"><span class="linenos">5266</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="insert-5267"><a href="#insert-5267"><span class="linenos">5267</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="insert-5268"><a href="#insert-5268"><span class="linenos">5268</span></a>
-</span><span id="insert-5269"><a href="#insert-5269"><span class="linenos">5269</span></a><span class="sd"> Args:</span>
-</span><span id="insert-5270"><a href="#insert-5270"><span class="linenos">5270</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="insert-5271"><a href="#insert-5271"><span class="linenos">5271</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="insert-5272"><a href="#insert-5272"><span class="linenos">5272</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="insert-5273"><a href="#insert-5273"><span class="linenos">5273</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="insert-5274"><a href="#insert-5274"><span class="linenos">5274</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="insert-5275"><a href="#insert-5275"><span class="linenos">5275</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="insert-5276"><a href="#insert-5276"><span class="linenos">5276</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="insert-5277"><a href="#insert-5277"><span class="linenos">5277</span></a>
-</span><span id="insert-5278"><a href="#insert-5278"><span class="linenos">5278</span></a><span class="sd"> Returns:</span>
-</span><span id="insert-5279"><a href="#insert-5279"><span class="linenos">5279</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="insert-5280"><a href="#insert-5280"><span class="linenos">5280</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="insert-5281"><a href="#insert-5281"><span class="linenos">5281</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="insert-5282"><a href="#insert-5282"><span class="linenos">5282</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="insert-5283"><a href="#insert-5283"><span class="linenos">5283</span></a>
-</span><span id="insert-5284"><a href="#insert-5284"><span class="linenos">5284</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="insert-5285"><a href="#insert-5285"><span class="linenos">5285</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="insert-5286"><a href="#insert-5286"><span class="linenos">5286</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
-</span><span id="insert-5287"><a href="#insert-5287"><span class="linenos">5287</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
-</span><span id="insert-5288"><a href="#insert-5288"><span class="linenos">5288</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="insert-5289"><a href="#insert-5289"><span class="linenos">5289</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="insert-5290"><a href="#insert-5290"><span class="linenos">5290</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="insert-5291"><a href="#insert-5291"><span class="linenos">5291</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="insert-5292"><a href="#insert-5292"><span class="linenos">5292</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-5293"><a href="#insert-5293"><span class="linenos">5293</span></a> <span class="p">)</span>
-</span><span id="insert-5294"><a href="#insert-5294"><span class="linenos">5294</span></a>
-</span><span id="insert-5295"><a href="#insert-5295"><span class="linenos">5295</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="insert-5263"><a href="#insert-5263"><span class="linenos">5263</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="insert-5264"><a href="#insert-5264"><span class="linenos">5264</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-5265"><a href="#insert-5265"><span class="linenos">5265</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-5266"><a href="#insert-5266"><span class="linenos">5266</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5267"><a href="#insert-5267"><span class="linenos">5267</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5268"><a href="#insert-5268"><span class="linenos">5268</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-5269"><a href="#insert-5269"><span class="linenos">5269</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="insert-5270"><a href="#insert-5270"><span class="linenos">5270</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5271"><a href="#insert-5271"><span class="linenos">5271</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="insert-5272"><a href="#insert-5272"><span class="linenos">5272</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="insert-5273"><a href="#insert-5273"><span class="linenos">5273</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="insert-5274"><a href="#insert-5274"><span class="linenos">5274</span></a>
+</span><span id="insert-5275"><a href="#insert-5275"><span class="linenos">5275</span></a><span class="sd"> Example:</span>
+</span><span id="insert-5276"><a href="#insert-5276"><span class="linenos">5276</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="insert-5277"><a href="#insert-5277"><span class="linenos">5277</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="insert-5278"><a href="#insert-5278"><span class="linenos">5278</span></a>
+</span><span id="insert-5279"><a href="#insert-5279"><span class="linenos">5279</span></a><span class="sd"> Args:</span>
+</span><span id="insert-5280"><a href="#insert-5280"><span class="linenos">5280</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="insert-5281"><a href="#insert-5281"><span class="linenos">5281</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="insert-5282"><a href="#insert-5282"><span class="linenos">5282</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="insert-5283"><a href="#insert-5283"><span class="linenos">5283</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="insert-5284"><a href="#insert-5284"><span class="linenos">5284</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="insert-5285"><a href="#insert-5285"><span class="linenos">5285</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="insert-5286"><a href="#insert-5286"><span class="linenos">5286</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="insert-5287"><a href="#insert-5287"><span class="linenos">5287</span></a>
+</span><span id="insert-5288"><a href="#insert-5288"><span class="linenos">5288</span></a><span class="sd"> Returns:</span>
+</span><span id="insert-5289"><a href="#insert-5289"><span class="linenos">5289</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="insert-5290"><a href="#insert-5290"><span class="linenos">5290</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="insert-5291"><a href="#insert-5291"><span class="linenos">5291</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="insert-5292"><a href="#insert-5292"><span class="linenos">5292</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="insert-5293"><a href="#insert-5293"><span class="linenos">5293</span></a>
+</span><span id="insert-5294"><a href="#insert-5294"><span class="linenos">5294</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="insert-5295"><a href="#insert-5295"><span class="linenos">5295</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="insert-5296"><a href="#insert-5296"><span class="linenos">5296</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="insert-5297"><a href="#insert-5297"><span class="linenos">5297</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
+</span><span id="insert-5298"><a href="#insert-5298"><span class="linenos">5298</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="insert-5299"><a href="#insert-5299"><span class="linenos">5299</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="insert-5300"><a href="#insert-5300"><span class="linenos">5300</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="insert-5301"><a href="#insert-5301"><span class="linenos">5301</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="insert-5302"><a href="#insert-5302"><span class="linenos">5302</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5303"><a href="#insert-5303"><span class="linenos">5303</span></a> <span class="p">)</span>
+</span><span id="insert-5304"><a href="#insert-5304"><span class="linenos">5304</span></a>
+</span><span id="insert-5305"><a href="#insert-5305"><span class="linenos">5305</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
</span></pre></div>
@@ -69112,41 +69551,41 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="condition-5298"><a href="#condition-5298"><span class="linenos">5298</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="condition-5299"><a href="#condition-5299"><span class="linenos">5299</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="condition-5300"><a href="#condition-5300"><span class="linenos">5300</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="condition-5301"><a href="#condition-5301"><span class="linenos">5301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-5302"><a href="#condition-5302"><span class="linenos">5302</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-5303"><a href="#condition-5303"><span class="linenos">5303</span></a>
-</span><span id="condition-5304"><a href="#condition-5304"><span class="linenos">5304</span></a><span class="sd"> Example:</span>
-</span><span id="condition-5305"><a href="#condition-5305"><span class="linenos">5305</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-5306"><a href="#condition-5306"><span class="linenos">5306</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-5307"><a href="#condition-5307"><span class="linenos">5307</span></a>
-</span><span id="condition-5308"><a href="#condition-5308"><span class="linenos">5308</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-5309"><a href="#condition-5309"><span class="linenos">5309</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-5310"><a href="#condition-5310"><span class="linenos">5310</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-5311"><a href="#condition-5311"><span class="linenos">5311</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-5312"><a href="#condition-5312"><span class="linenos">5312</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-5308"><a href="#condition-5308"><span class="linenos">5308</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="condition-5309"><a href="#condition-5309"><span class="linenos">5309</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="condition-5310"><a href="#condition-5310"><span class="linenos">5310</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="condition-5311"><a href="#condition-5311"><span class="linenos">5311</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-5312"><a href="#condition-5312"><span class="linenos">5312</span></a><span class="sd"> Initialize a logical condition expression.</span>
</span><span id="condition-5313"><a href="#condition-5313"><span class="linenos">5313</span></a>
-</span><span id="condition-5314"><a href="#condition-5314"><span class="linenos">5314</span></a><span class="sd"> Args:</span>
-</span><span id="condition-5315"><a href="#condition-5315"><span class="linenos">5315</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="condition-5316"><a href="#condition-5316"><span class="linenos">5316</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-5317"><a href="#condition-5317"><span class="linenos">5317</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-5318"><a href="#condition-5318"><span class="linenos">5318</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-5319"><a href="#condition-5319"><span class="linenos">5319</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="condition-5320"><a href="#condition-5320"><span class="linenos">5320</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-5321"><a href="#condition-5321"><span class="linenos">5321</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="condition-5322"><a href="#condition-5322"><span class="linenos">5322</span></a>
-</span><span id="condition-5323"><a href="#condition-5323"><span class="linenos">5323</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-5324"><a href="#condition-5324"><span class="linenos">5324</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="condition-5325"><a href="#condition-5325"><span class="linenos">5325</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-5326"><a href="#condition-5326"><span class="linenos">5326</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="condition-5327"><a href="#condition-5327"><span class="linenos">5327</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-5328"><a href="#condition-5328"><span class="linenos">5328</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-5329"><a href="#condition-5329"><span class="linenos">5329</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-5330"><a href="#condition-5330"><span class="linenos">5330</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="condition-5331"><a href="#condition-5331"><span class="linenos">5331</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-5332"><a href="#condition-5332"><span class="linenos">5332</span></a> <span class="p">)</span>
+</span><span id="condition-5314"><a href="#condition-5314"><span class="linenos">5314</span></a><span class="sd"> Example:</span>
+</span><span id="condition-5315"><a href="#condition-5315"><span class="linenos">5315</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-5316"><a href="#condition-5316"><span class="linenos">5316</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="condition-5317"><a href="#condition-5317"><span class="linenos">5317</span></a>
+</span><span id="condition-5318"><a href="#condition-5318"><span class="linenos">5318</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-5319"><a href="#condition-5319"><span class="linenos">5319</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-5320"><a href="#condition-5320"><span class="linenos">5320</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-5321"><a href="#condition-5321"><span class="linenos">5321</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-5322"><a href="#condition-5322"><span class="linenos">5322</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-5323"><a href="#condition-5323"><span class="linenos">5323</span></a>
+</span><span id="condition-5324"><a href="#condition-5324"><span class="linenos">5324</span></a><span class="sd"> Args:</span>
+</span><span id="condition-5325"><a href="#condition-5325"><span class="linenos">5325</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="condition-5326"><a href="#condition-5326"><span class="linenos">5326</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-5327"><a href="#condition-5327"><span class="linenos">5327</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-5328"><a href="#condition-5328"><span class="linenos">5328</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-5329"><a href="#condition-5329"><span class="linenos">5329</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="condition-5330"><a href="#condition-5330"><span class="linenos">5330</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-5331"><a href="#condition-5331"><span class="linenos">5331</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-5332"><a href="#condition-5332"><span class="linenos">5332</span></a>
+</span><span id="condition-5333"><a href="#condition-5333"><span class="linenos">5333</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-5334"><a href="#condition-5334"><span class="linenos">5334</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="condition-5335"><a href="#condition-5335"><span class="linenos">5335</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-5336"><a href="#condition-5336"><span class="linenos">5336</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="condition-5337"><a href="#condition-5337"><span class="linenos">5337</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-5338"><a href="#condition-5338"><span class="linenos">5338</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-5339"><a href="#condition-5339"><span class="linenos">5339</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-5340"><a href="#condition-5340"><span class="linenos">5340</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="condition-5341"><a href="#condition-5341"><span class="linenos">5341</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-5342"><a href="#condition-5342"><span class="linenos">5342</span></a> <span class="p">)</span>
</span></pre></div>
@@ -69204,27 +69643,27 @@ that the input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="and_-5335"><a href="#and_-5335"><span class="linenos">5335</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="and_-5336"><a href="#and_-5336"><span class="linenos">5336</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="and_-5337"><a href="#and_-5337"><span class="linenos">5337</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="and_-5338"><a href="#and_-5338"><span class="linenos">5338</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-5339"><a href="#and_-5339"><span class="linenos">5339</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-5340"><a href="#and_-5340"><span class="linenos">5340</span></a>
-</span><span id="and_-5341"><a href="#and_-5341"><span class="linenos">5341</span></a><span class="sd"> Example:</span>
-</span><span id="and_-5342"><a href="#and_-5342"><span class="linenos">5342</span></a><span class="sd"> &gt;&gt;&gt; and_(&quot;x=1&quot;, and_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
-</span><span id="and_-5343"><a href="#and_-5343"><span class="linenos">5343</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-5344"><a href="#and_-5344"><span class="linenos">5344</span></a>
-</span><span id="and_-5345"><a href="#and_-5345"><span class="linenos">5345</span></a><span class="sd"> Args:</span>
-</span><span id="and_-5346"><a href="#and_-5346"><span class="linenos">5346</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="and_-5347"><a href="#and_-5347"><span class="linenos">5347</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-5348"><a href="#and_-5348"><span class="linenos">5348</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="and_-5349"><a href="#and_-5349"><span class="linenos">5349</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="and_-5350"><a href="#and_-5350"><span class="linenos">5350</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-5351"><a href="#and_-5351"><span class="linenos">5351</span></a>
-</span><span id="and_-5352"><a href="#and_-5352"><span class="linenos">5352</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-5353"><a href="#and_-5353"><span class="linenos">5353</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-5354"><a href="#and_-5354"><span class="linenos">5354</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-5355"><a href="#and_-5355"><span class="linenos">5355</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="and_-5345"><a href="#and_-5345"><span class="linenos">5345</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="and_-5346"><a href="#and_-5346"><span class="linenos">5346</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="and_-5347"><a href="#and_-5347"><span class="linenos">5347</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="and_-5348"><a href="#and_-5348"><span class="linenos">5348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-5349"><a href="#and_-5349"><span class="linenos">5349</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-5350"><a href="#and_-5350"><span class="linenos">5350</span></a>
+</span><span id="and_-5351"><a href="#and_-5351"><span class="linenos">5351</span></a><span class="sd"> Example:</span>
+</span><span id="and_-5352"><a href="#and_-5352"><span class="linenos">5352</span></a><span class="sd"> &gt;&gt;&gt; and_(&quot;x=1&quot;, and_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
+</span><span id="and_-5353"><a href="#and_-5353"><span class="linenos">5353</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-5354"><a href="#and_-5354"><span class="linenos">5354</span></a>
+</span><span id="and_-5355"><a href="#and_-5355"><span class="linenos">5355</span></a><span class="sd"> Args:</span>
+</span><span id="and_-5356"><a href="#and_-5356"><span class="linenos">5356</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="and_-5357"><a href="#and_-5357"><span class="linenos">5357</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-5358"><a href="#and_-5358"><span class="linenos">5358</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="and_-5359"><a href="#and_-5359"><span class="linenos">5359</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="and_-5360"><a href="#and_-5360"><span class="linenos">5360</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-5361"><a href="#and_-5361"><span class="linenos">5361</span></a>
+</span><span id="and_-5362"><a href="#and_-5362"><span class="linenos">5362</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-5363"><a href="#and_-5363"><span class="linenos">5363</span></a><span class="sd"> And: the new condition</span>
+</span><span id="and_-5364"><a href="#and_-5364"><span class="linenos">5364</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-5365"><a href="#and_-5365"><span class="linenos">5365</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -69270,27 +69709,27 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="or_-5358"><a href="#or_-5358"><span class="linenos">5358</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="or_-5359"><a href="#or_-5359"><span class="linenos">5359</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="or_-5360"><a href="#or_-5360"><span class="linenos">5360</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="or_-5361"><a href="#or_-5361"><span class="linenos">5361</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-5362"><a href="#or_-5362"><span class="linenos">5362</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-5363"><a href="#or_-5363"><span class="linenos">5363</span></a>
-</span><span id="or_-5364"><a href="#or_-5364"><span class="linenos">5364</span></a><span class="sd"> Example:</span>
-</span><span id="or_-5365"><a href="#or_-5365"><span class="linenos">5365</span></a><span class="sd"> &gt;&gt;&gt; or_(&quot;x=1&quot;, or_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
-</span><span id="or_-5366"><a href="#or_-5366"><span class="linenos">5366</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-5367"><a href="#or_-5367"><span class="linenos">5367</span></a>
-</span><span id="or_-5368"><a href="#or_-5368"><span class="linenos">5368</span></a><span class="sd"> Args:</span>
-</span><span id="or_-5369"><a href="#or_-5369"><span class="linenos">5369</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="or_-5370"><a href="#or_-5370"><span class="linenos">5370</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-5371"><a href="#or_-5371"><span class="linenos">5371</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="or_-5372"><a href="#or_-5372"><span class="linenos">5372</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="or_-5373"><a href="#or_-5373"><span class="linenos">5373</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-5374"><a href="#or_-5374"><span class="linenos">5374</span></a>
-</span><span id="or_-5375"><a href="#or_-5375"><span class="linenos">5375</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-5376"><a href="#or_-5376"><span class="linenos">5376</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-5377"><a href="#or_-5377"><span class="linenos">5377</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-5378"><a href="#or_-5378"><span class="linenos">5378</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="or_-5368"><a href="#or_-5368"><span class="linenos">5368</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="or_-5369"><a href="#or_-5369"><span class="linenos">5369</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="or_-5370"><a href="#or_-5370"><span class="linenos">5370</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="or_-5371"><a href="#or_-5371"><span class="linenos">5371</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-5372"><a href="#or_-5372"><span class="linenos">5372</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-5373"><a href="#or_-5373"><span class="linenos">5373</span></a>
+</span><span id="or_-5374"><a href="#or_-5374"><span class="linenos">5374</span></a><span class="sd"> Example:</span>
+</span><span id="or_-5375"><a href="#or_-5375"><span class="linenos">5375</span></a><span class="sd"> &gt;&gt;&gt; or_(&quot;x=1&quot;, or_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
+</span><span id="or_-5376"><a href="#or_-5376"><span class="linenos">5376</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-5377"><a href="#or_-5377"><span class="linenos">5377</span></a>
+</span><span id="or_-5378"><a href="#or_-5378"><span class="linenos">5378</span></a><span class="sd"> Args:</span>
+</span><span id="or_-5379"><a href="#or_-5379"><span class="linenos">5379</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="or_-5380"><a href="#or_-5380"><span class="linenos">5380</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-5381"><a href="#or_-5381"><span class="linenos">5381</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="or_-5382"><a href="#or_-5382"><span class="linenos">5382</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="or_-5383"><a href="#or_-5383"><span class="linenos">5383</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-5384"><a href="#or_-5384"><span class="linenos">5384</span></a>
+</span><span id="or_-5385"><a href="#or_-5385"><span class="linenos">5385</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-5386"><a href="#or_-5386"><span class="linenos">5386</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="or_-5387"><a href="#or_-5387"><span class="linenos">5387</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-5388"><a href="#or_-5388"><span class="linenos">5388</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -69336,31 +69775,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="not_-5381"><a href="#not_-5381"><span class="linenos">5381</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="not_-5382"><a href="#not_-5382"><span class="linenos">5382</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-5383"><a href="#not_-5383"><span class="linenos">5383</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-5384"><a href="#not_-5384"><span class="linenos">5384</span></a>
-</span><span id="not_-5385"><a href="#not_-5385"><span class="linenos">5385</span></a><span class="sd"> Example:</span>
-</span><span id="not_-5386"><a href="#not_-5386"><span class="linenos">5386</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-5387"><a href="#not_-5387"><span class="linenos">5387</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-5388"><a href="#not_-5388"><span class="linenos">5388</span></a>
-</span><span id="not_-5389"><a href="#not_-5389"><span class="linenos">5389</span></a><span class="sd"> Args:</span>
-</span><span id="not_-5390"><a href="#not_-5390"><span class="linenos">5390</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="not_-5391"><a href="#not_-5391"><span class="linenos">5391</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-5392"><a href="#not_-5392"><span class="linenos">5392</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="not_-5393"><a href="#not_-5393"><span class="linenos">5393</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="not_-5394"><a href="#not_-5394"><span class="linenos">5394</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-5395"><a href="#not_-5395"><span class="linenos">5395</span></a>
-</span><span id="not_-5396"><a href="#not_-5396"><span class="linenos">5396</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-5397"><a href="#not_-5397"><span class="linenos">5397</span></a><span class="sd"> The new condition.</span>
-</span><span id="not_-5398"><a href="#not_-5398"><span class="linenos">5398</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-5399"><a href="#not_-5399"><span class="linenos">5399</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-5400"><a href="#not_-5400"><span class="linenos">5400</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-5401"><a href="#not_-5401"><span class="linenos">5401</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-5402"><a href="#not_-5402"><span class="linenos">5402</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="not_-5403"><a href="#not_-5403"><span class="linenos">5403</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-5404"><a href="#not_-5404"><span class="linenos">5404</span></a> <span class="p">)</span>
-</span><span id="not_-5405"><a href="#not_-5405"><span class="linenos">5405</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="not_-5391"><a href="#not_-5391"><span class="linenos">5391</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="not_-5392"><a href="#not_-5392"><span class="linenos">5392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-5393"><a href="#not_-5393"><span class="linenos">5393</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-5394"><a href="#not_-5394"><span class="linenos">5394</span></a>
+</span><span id="not_-5395"><a href="#not_-5395"><span class="linenos">5395</span></a><span class="sd"> Example:</span>
+</span><span id="not_-5396"><a href="#not_-5396"><span class="linenos">5396</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-5397"><a href="#not_-5397"><span class="linenos">5397</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-5398"><a href="#not_-5398"><span class="linenos">5398</span></a>
+</span><span id="not_-5399"><a href="#not_-5399"><span class="linenos">5399</span></a><span class="sd"> Args:</span>
+</span><span id="not_-5400"><a href="#not_-5400"><span class="linenos">5400</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="not_-5401"><a href="#not_-5401"><span class="linenos">5401</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-5402"><a href="#not_-5402"><span class="linenos">5402</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="not_-5403"><a href="#not_-5403"><span class="linenos">5403</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="not_-5404"><a href="#not_-5404"><span class="linenos">5404</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-5405"><a href="#not_-5405"><span class="linenos">5405</span></a>
+</span><span id="not_-5406"><a href="#not_-5406"><span class="linenos">5406</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-5407"><a href="#not_-5407"><span class="linenos">5407</span></a><span class="sd"> The new condition.</span>
+</span><span id="not_-5408"><a href="#not_-5408"><span class="linenos">5408</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-5409"><a href="#not_-5409"><span class="linenos">5409</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-5410"><a href="#not_-5410"><span class="linenos">5410</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-5411"><a href="#not_-5411"><span class="linenos">5411</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-5412"><a href="#not_-5412"><span class="linenos">5412</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="not_-5413"><a href="#not_-5413"><span class="linenos">5413</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-5414"><a href="#not_-5414"><span class="linenos">5414</span></a> <span class="p">)</span>
+</span><span id="not_-5415"><a href="#not_-5415"><span class="linenos">5415</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span></pre></div>
@@ -69406,23 +69845,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="paren-5408"><a href="#paren-5408"><span class="linenos">5408</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="paren-5409"><a href="#paren-5409"><span class="linenos">5409</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="paren-5410"><a href="#paren-5410"><span class="linenos">5410</span></a><span class="sd"> Wrap an expression in parentheses.</span>
-</span><span id="paren-5411"><a href="#paren-5411"><span class="linenos">5411</span></a>
-</span><span id="paren-5412"><a href="#paren-5412"><span class="linenos">5412</span></a><span class="sd"> Example:</span>
-</span><span id="paren-5413"><a href="#paren-5413"><span class="linenos">5413</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="paren-5414"><a href="#paren-5414"><span class="linenos">5414</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="paren-5415"><a href="#paren-5415"><span class="linenos">5415</span></a>
-</span><span id="paren-5416"><a href="#paren-5416"><span class="linenos">5416</span></a><span class="sd"> Args:</span>
-</span><span id="paren-5417"><a href="#paren-5417"><span class="linenos">5417</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="paren-5418"><a href="#paren-5418"><span class="linenos">5418</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="paren-5419"><a href="#paren-5419"><span class="linenos">5419</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="paren-5420"><a href="#paren-5420"><span class="linenos">5420</span></a>
-</span><span id="paren-5421"><a href="#paren-5421"><span class="linenos">5421</span></a><span class="sd"> Returns:</span>
-</span><span id="paren-5422"><a href="#paren-5422"><span class="linenos">5422</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="paren-5423"><a href="#paren-5423"><span class="linenos">5423</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="paren-5424"><a href="#paren-5424"><span class="linenos">5424</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="paren-5418"><a href="#paren-5418"><span class="linenos">5418</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="paren-5419"><a href="#paren-5419"><span class="linenos">5419</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="paren-5420"><a href="#paren-5420"><span class="linenos">5420</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="paren-5421"><a href="#paren-5421"><span class="linenos">5421</span></a>
+</span><span id="paren-5422"><a href="#paren-5422"><span class="linenos">5422</span></a><span class="sd"> Example:</span>
+</span><span id="paren-5423"><a href="#paren-5423"><span class="linenos">5423</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="paren-5424"><a href="#paren-5424"><span class="linenos">5424</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="paren-5425"><a href="#paren-5425"><span class="linenos">5425</span></a>
+</span><span id="paren-5426"><a href="#paren-5426"><span class="linenos">5426</span></a><span class="sd"> Args:</span>
+</span><span id="paren-5427"><a href="#paren-5427"><span class="linenos">5427</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="paren-5428"><a href="#paren-5428"><span class="linenos">5428</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="paren-5429"><a href="#paren-5429"><span class="linenos">5429</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="paren-5430"><a href="#paren-5430"><span class="linenos">5430</span></a>
+</span><span id="paren-5431"><a href="#paren-5431"><span class="linenos">5431</span></a><span class="sd"> Returns:</span>
+</span><span id="paren-5432"><a href="#paren-5432"><span class="linenos">5432</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="paren-5433"><a href="#paren-5433"><span class="linenos">5433</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="paren-5434"><a href="#paren-5434"><span class="linenos">5434</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span></pre></div>
@@ -69478,31 +69917,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-5442"><a href="#to_identifier-5442"><span class="linenos">5442</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="to_identifier-5443"><a href="#to_identifier-5443"><span class="linenos">5443</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-5444"><a href="#to_identifier-5444"><span class="linenos">5444</span></a>
-</span><span id="to_identifier-5445"><a href="#to_identifier-5445"><span class="linenos">5445</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-5446"><a href="#to_identifier-5446"><span class="linenos">5446</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-5447"><a href="#to_identifier-5447"><span class="linenos">5447</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="to_identifier-5448"><a href="#to_identifier-5448"><span class="linenos">5448</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
-</span><span id="to_identifier-5449"><a href="#to_identifier-5449"><span class="linenos">5449</span></a>
-</span><span id="to_identifier-5450"><a href="#to_identifier-5450"><span class="linenos">5450</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-5451"><a href="#to_identifier-5451"><span class="linenos">5451</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-5452"><a href="#to_identifier-5452"><span class="linenos">5452</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-5453"><a href="#to_identifier-5453"><span class="linenos">5453</span></a>
-</span><span id="to_identifier-5454"><a href="#to_identifier-5454"><span class="linenos">5454</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="to_identifier-5455"><a href="#to_identifier-5455"><span class="linenos">5455</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="to_identifier-5456"><a href="#to_identifier-5456"><span class="linenos">5456</span></a>
-</span><span id="to_identifier-5457"><a href="#to_identifier-5457"><span class="linenos">5457</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
-</span><span id="to_identifier-5458"><a href="#to_identifier-5458"><span class="linenos">5458</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="to_identifier-5459"><a href="#to_identifier-5459"><span class="linenos">5459</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="to_identifier-5460"><a href="#to_identifier-5460"><span class="linenos">5460</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="to_identifier-5461"><a href="#to_identifier-5461"><span class="linenos">5461</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="to_identifier-5462"><a href="#to_identifier-5462"><span class="linenos">5462</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
-</span><span id="to_identifier-5463"><a href="#to_identifier-5463"><span class="linenos">5463</span></a> <span class="p">)</span>
-</span><span id="to_identifier-5464"><a href="#to_identifier-5464"><span class="linenos">5464</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-5465"><a href="#to_identifier-5465"><span class="linenos">5465</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="to_identifier-5466"><a href="#to_identifier-5466"><span class="linenos">5466</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-5452"><a href="#to_identifier-5452"><span class="linenos">5452</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="to_identifier-5453"><a href="#to_identifier-5453"><span class="linenos">5453</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="to_identifier-5454"><a href="#to_identifier-5454"><span class="linenos">5454</span></a>
+</span><span id="to_identifier-5455"><a href="#to_identifier-5455"><span class="linenos">5455</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-5456"><a href="#to_identifier-5456"><span class="linenos">5456</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-5457"><a href="#to_identifier-5457"><span class="linenos">5457</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="to_identifier-5458"><a href="#to_identifier-5458"><span class="linenos">5458</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
+</span><span id="to_identifier-5459"><a href="#to_identifier-5459"><span class="linenos">5459</span></a>
+</span><span id="to_identifier-5460"><a href="#to_identifier-5460"><span class="linenos">5460</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-5461"><a href="#to_identifier-5461"><span class="linenos">5461</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-5462"><a href="#to_identifier-5462"><span class="linenos">5462</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-5463"><a href="#to_identifier-5463"><span class="linenos">5463</span></a>
+</span><span id="to_identifier-5464"><a href="#to_identifier-5464"><span class="linenos">5464</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="to_identifier-5465"><a href="#to_identifier-5465"><span class="linenos">5465</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-5466"><a href="#to_identifier-5466"><span class="linenos">5466</span></a>
+</span><span id="to_identifier-5467"><a href="#to_identifier-5467"><span class="linenos">5467</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
+</span><span id="to_identifier-5468"><a href="#to_identifier-5468"><span class="linenos">5468</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="to_identifier-5469"><a href="#to_identifier-5469"><span class="linenos">5469</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="to_identifier-5470"><a href="#to_identifier-5470"><span class="linenos">5470</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="to_identifier-5471"><a href="#to_identifier-5471"><span class="linenos">5471</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="to_identifier-5472"><a href="#to_identifier-5472"><span class="linenos">5472</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
+</span><span id="to_identifier-5473"><a href="#to_identifier-5473"><span class="linenos">5473</span></a> <span class="p">)</span>
+</span><span id="to_identifier-5474"><a href="#to_identifier-5474"><span class="linenos">5474</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-5475"><a href="#to_identifier-5475"><span class="linenos">5475</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="to_identifier-5476"><a href="#to_identifier-5476"><span class="linenos">5476</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -69548,23 +69987,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-5472"><a href="#to_interval-5472"><span class="linenos">5472</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Interval</span><span class="p">:</span>
-</span><span id="to_interval-5473"><a href="#to_interval-5473"><span class="linenos">5473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an interval expression from a string like &#39;1 day&#39; or &#39;5 months&#39;.&quot;&quot;&quot;</span>
-</span><span id="to_interval-5474"><a href="#to_interval-5474"><span class="linenos">5474</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
-</span><span id="to_interval-5475"><a href="#to_interval-5475"><span class="linenos">5475</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span>
-</span><span id="to_interval-5476"><a href="#to_interval-5476"><span class="linenos">5476</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
-</span><span id="to_interval-5477"><a href="#to_interval-5477"><span class="linenos">5477</span></a>
-</span><span id="to_interval-5478"><a href="#to_interval-5478"><span class="linenos">5478</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span>
-</span><span id="to_interval-5479"><a href="#to_interval-5479"><span class="linenos">5479</span></a>
-</span><span id="to_interval-5480"><a href="#to_interval-5480"><span class="linenos">5480</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="to_interval-5481"><a href="#to_interval-5481"><span class="linenos">5481</span></a>
-</span><span id="to_interval-5482"><a href="#to_interval-5482"><span class="linenos">5482</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
-</span><span id="to_interval-5483"><a href="#to_interval-5483"><span class="linenos">5483</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
-</span><span id="to_interval-5484"><a href="#to_interval-5484"><span class="linenos">5484</span></a>
-</span><span id="to_interval-5485"><a href="#to_interval-5485"><span class="linenos">5485</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-5486"><a href="#to_interval-5486"><span class="linenos">5486</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
-</span><span id="to_interval-5487"><a href="#to_interval-5487"><span class="linenos">5487</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
-</span><span id="to_interval-5488"><a href="#to_interval-5488"><span class="linenos">5488</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-5482"><a href="#to_interval-5482"><span class="linenos">5482</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Interval</span><span class="p">:</span>
+</span><span id="to_interval-5483"><a href="#to_interval-5483"><span class="linenos">5483</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an interval expression from a string like &#39;1 day&#39; or &#39;5 months&#39;.&quot;&quot;&quot;</span>
+</span><span id="to_interval-5484"><a href="#to_interval-5484"><span class="linenos">5484</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
+</span><span id="to_interval-5485"><a href="#to_interval-5485"><span class="linenos">5485</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span>
+</span><span id="to_interval-5486"><a href="#to_interval-5486"><span class="linenos">5486</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
+</span><span id="to_interval-5487"><a href="#to_interval-5487"><span class="linenos">5487</span></a>
+</span><span id="to_interval-5488"><a href="#to_interval-5488"><span class="linenos">5488</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span>
+</span><span id="to_interval-5489"><a href="#to_interval-5489"><span class="linenos">5489</span></a>
+</span><span id="to_interval-5490"><a href="#to_interval-5490"><span class="linenos">5490</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="to_interval-5491"><a href="#to_interval-5491"><span class="linenos">5491</span></a>
+</span><span id="to_interval-5492"><a href="#to_interval-5492"><span class="linenos">5492</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
+</span><span id="to_interval-5493"><a href="#to_interval-5493"><span class="linenos">5493</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
+</span><span id="to_interval-5494"><a href="#to_interval-5494"><span class="linenos">5494</span></a>
+</span><span id="to_interval-5495"><a href="#to_interval-5495"><span class="linenos">5495</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-5496"><a href="#to_interval-5496"><span class="linenos">5496</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
+</span><span id="to_interval-5497"><a href="#to_interval-5497"><span class="linenos">5497</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
+</span><span id="to_interval-5498"><a href="#to_interval-5498"><span class="linenos">5498</span></a> <span class="p">)</span>
</span></pre></div>
@@ -69584,32 +70023,32 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-5501"><a href="#to_table-5501"><span class="linenos">5501</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="to_table-5502"><a href="#to_table-5502"><span class="linenos">5502</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="to_table-5503"><a href="#to_table-5503"><span class="linenos">5503</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="to_table-5504"><a href="#to_table-5504"><span class="linenos">5504</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-5505"><a href="#to_table-5505"><span class="linenos">5505</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
-</span><span id="to_table-5506"><a href="#to_table-5506"><span class="linenos">5506</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-5507"><a href="#to_table-5507"><span class="linenos">5507</span></a>
-</span><span id="to_table-5508"><a href="#to_table-5508"><span class="linenos">5508</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-5509"><a href="#to_table-5509"><span class="linenos">5509</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-5510"><a href="#to_table-5510"><span class="linenos">5510</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="to_table-5511"><a href="#to_table-5511"><span class="linenos">5511</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
-</span><span id="to_table-5512"><a href="#to_table-5512"><span class="linenos">5512</span></a>
-</span><span id="to_table-5513"><a href="#to_table-5513"><span class="linenos">5513</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-5514"><a href="#to_table-5514"><span class="linenos">5514</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-5515"><a href="#to_table-5515"><span class="linenos">5515</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-5516"><a href="#to_table-5516"><span class="linenos">5516</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="to_table-5517"><a href="#to_table-5517"><span class="linenos">5517</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_table-5518"><a href="#to_table-5518"><span class="linenos">5518</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="to_table-5519"><a href="#to_table-5519"><span class="linenos">5519</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="to_table-5520"><a href="#to_table-5520"><span class="linenos">5520</span></a>
-</span><span id="to_table-5521"><a href="#to_table-5521"><span class="linenos">5521</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="to_table-5522"><a href="#to_table-5522"><span class="linenos">5522</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="to_table-5523"><a href="#to_table-5523"><span class="linenos">5523</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="to_table-5524"><a href="#to_table-5524"><span class="linenos">5524</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="to_table-5525"><a href="#to_table-5525"><span class="linenos">5525</span></a>
-</span><span id="to_table-5526"><a href="#to_table-5526"><span class="linenos">5526</span></a> <span class="k">return</span> <span class="n">table</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-5511"><a href="#to_table-5511"><span class="linenos">5511</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="to_table-5512"><a href="#to_table-5512"><span class="linenos">5512</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="to_table-5513"><a href="#to_table-5513"><span class="linenos">5513</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="to_table-5514"><a href="#to_table-5514"><span class="linenos">5514</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-5515"><a href="#to_table-5515"><span class="linenos">5515</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
+</span><span id="to_table-5516"><a href="#to_table-5516"><span class="linenos">5516</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-5517"><a href="#to_table-5517"><span class="linenos">5517</span></a>
+</span><span id="to_table-5518"><a href="#to_table-5518"><span class="linenos">5518</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-5519"><a href="#to_table-5519"><span class="linenos">5519</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-5520"><a href="#to_table-5520"><span class="linenos">5520</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="to_table-5521"><a href="#to_table-5521"><span class="linenos">5521</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="to_table-5522"><a href="#to_table-5522"><span class="linenos">5522</span></a>
+</span><span id="to_table-5523"><a href="#to_table-5523"><span class="linenos">5523</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-5524"><a href="#to_table-5524"><span class="linenos">5524</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-5525"><a href="#to_table-5525"><span class="linenos">5525</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-5526"><a href="#to_table-5526"><span class="linenos">5526</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="to_table-5527"><a href="#to_table-5527"><span class="linenos">5527</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_table-5528"><a href="#to_table-5528"><span class="linenos">5528</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="to_table-5529"><a href="#to_table-5529"><span class="linenos">5529</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="to_table-5530"><a href="#to_table-5530"><span class="linenos">5530</span></a>
+</span><span id="to_table-5531"><a href="#to_table-5531"><span class="linenos">5531</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="to_table-5532"><a href="#to_table-5532"><span class="linenos">5532</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="to_table-5533"><a href="#to_table-5533"><span class="linenos">5533</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="to_table-5534"><a href="#to_table-5534"><span class="linenos">5534</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="to_table-5535"><a href="#to_table-5535"><span class="linenos">5535</span></a>
+</span><span id="to_table-5536"><a href="#to_table-5536"><span class="linenos">5536</span></a> <span class="k">return</span> <span class="n">table</span>
</span></pre></div>
@@ -69644,22 +70083,22 @@ If a table is passed in then that table is returned.</p>
</div>
<a class="headerlink" href="#to_column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-5529"><a href="#to_column-5529"><span class="linenos">5529</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="to_column-5530"><a href="#to_column-5530"><span class="linenos">5530</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-5531"><a href="#to_column-5531"><span class="linenos">5531</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="to_column-5532"><a href="#to_column-5532"><span class="linenos">5532</span></a>
-</span><span id="to_column-5533"><a href="#to_column-5533"><span class="linenos">5533</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-5534"><a href="#to_column-5534"><span class="linenos">5534</span></a>
-</span><span id="to_column-5535"><a href="#to_column-5535"><span class="linenos">5535</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-5536"><a href="#to_column-5536"><span class="linenos">5536</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="to_column-5537"><a href="#to_column-5537"><span class="linenos">5537</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-5538"><a href="#to_column-5538"><span class="linenos">5538</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="to_column-5539"><a href="#to_column-5539"><span class="linenos">5539</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-5540"><a href="#to_column-5540"><span class="linenos">5540</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="to_column-5541"><a href="#to_column-5541"><span class="linenos">5541</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_column-5542"><a href="#to_column-5542"><span class="linenos">5542</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="to_column-5543"><a href="#to_column-5543"><span class="linenos">5543</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="to_column-5544"><a href="#to_column-5544"><span class="linenos">5544</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-5539"><a href="#to_column-5539"><span class="linenos">5539</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="to_column-5540"><a href="#to_column-5540"><span class="linenos">5540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-5541"><a href="#to_column-5541"><span class="linenos">5541</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="to_column-5542"><a href="#to_column-5542"><span class="linenos">5542</span></a>
+</span><span id="to_column-5543"><a href="#to_column-5543"><span class="linenos">5543</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-5544"><a href="#to_column-5544"><span class="linenos">5544</span></a>
+</span><span id="to_column-5545"><a href="#to_column-5545"><span class="linenos">5545</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-5546"><a href="#to_column-5546"><span class="linenos">5546</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="to_column-5547"><a href="#to_column-5547"><span class="linenos">5547</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-5548"><a href="#to_column-5548"><span class="linenos">5548</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="to_column-5549"><a href="#to_column-5549"><span class="linenos">5549</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-5550"><a href="#to_column-5550"><span class="linenos">5550</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="to_column-5551"><a href="#to_column-5551"><span class="linenos">5551</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_column-5552"><a href="#to_column-5552"><span class="linenos">5552</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="to_column-5553"><a href="#to_column-5553"><span class="linenos">5553</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="to_column-5554"><a href="#to_column-5554"><span class="linenos">5554</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span></pre></div>
@@ -69693,61 +70132,61 @@ If a table is passed in then that table is returned.</p>
</div>
<a class="headerlink" href="#alias_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-5547"><a href="#alias_-5547"><span class="linenos">5547</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-5548"><a href="#alias_-5548"><span class="linenos">5548</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="alias_-5549"><a href="#alias_-5549"><span class="linenos">5549</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="alias_-5550"><a href="#alias_-5550"><span class="linenos">5550</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="alias_-5551"><a href="#alias_-5551"><span class="linenos">5551</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="alias_-5552"><a href="#alias_-5552"><span class="linenos">5552</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="alias_-5553"><a href="#alias_-5553"><span class="linenos">5553</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="alias_-5554"><a href="#alias_-5554"><span class="linenos">5554</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-5555"><a href="#alias_-5555"><span class="linenos">5555</span></a><span class="p">):</span>
-</span><span id="alias_-5556"><a href="#alias_-5556"><span class="linenos">5556</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-5557"><a href="#alias_-5557"><span class="linenos">5557</span></a>
-</span><span id="alias_-5558"><a href="#alias_-5558"><span class="linenos">5558</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-5559"><a href="#alias_-5559"><span class="linenos">5559</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-5560"><a href="#alias_-5560"><span class="linenos">5560</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-5561"><a href="#alias_-5561"><span class="linenos">5561</span></a>
-</span><span id="alias_-5562"><a href="#alias_-5562"><span class="linenos">5562</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;(select 1, 2)&#39;, &#39;bar&#39;, table=[&#39;a&#39;, &#39;b&#39;]).sql()</span>
-</span><span id="alias_-5563"><a href="#alias_-5563"><span class="linenos">5563</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-5564"><a href="#alias_-5564"><span class="linenos">5564</span></a>
-</span><span id="alias_-5565"><a href="#alias_-5565"><span class="linenos">5565</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-5566"><a href="#alias_-5566"><span class="linenos">5566</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-5567"><a href="#alias_-5567"><span class="linenos">5567</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-5568"><a href="#alias_-5568"><span class="linenos">5568</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-5569"><a href="#alias_-5569"><span class="linenos">5569</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-5570"><a href="#alias_-5570"><span class="linenos">5570</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
-</span><span id="alias_-5571"><a href="#alias_-5571"><span class="linenos">5571</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="alias_-5572"><a href="#alias_-5572"><span class="linenos">5572</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-5573"><a href="#alias_-5573"><span class="linenos">5573</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
-</span><span id="alias_-5574"><a href="#alias_-5574"><span class="linenos">5574</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-5575"><a href="#alias_-5575"><span class="linenos">5575</span></a>
-</span><span id="alias_-5576"><a href="#alias_-5576"><span class="linenos">5576</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-5577"><a href="#alias_-5577"><span class="linenos">5577</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-5578"><a href="#alias_-5578"><span class="linenos">5578</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-5579"><a href="#alias_-5579"><span class="linenos">5579</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="alias_-5580"><a href="#alias_-5580"><span class="linenos">5580</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span>
-</span><span id="alias_-5581"><a href="#alias_-5581"><span class="linenos">5581</span></a>
-</span><span id="alias_-5582"><a href="#alias_-5582"><span class="linenos">5582</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-5583"><a href="#alias_-5583"><span class="linenos">5583</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="alias_-5584"><a href="#alias_-5584"><span class="linenos">5584</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-5557"><a href="#alias_-5557"><span class="linenos">5557</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-5558"><a href="#alias_-5558"><span class="linenos">5558</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="alias_-5559"><a href="#alias_-5559"><span class="linenos">5559</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="alias_-5560"><a href="#alias_-5560"><span class="linenos">5560</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="alias_-5561"><a href="#alias_-5561"><span class="linenos">5561</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="alias_-5562"><a href="#alias_-5562"><span class="linenos">5562</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="alias_-5563"><a href="#alias_-5563"><span class="linenos">5563</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="alias_-5564"><a href="#alias_-5564"><span class="linenos">5564</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-5565"><a href="#alias_-5565"><span class="linenos">5565</span></a><span class="p">):</span>
+</span><span id="alias_-5566"><a href="#alias_-5566"><span class="linenos">5566</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-5567"><a href="#alias_-5567"><span class="linenos">5567</span></a>
+</span><span id="alias_-5568"><a href="#alias_-5568"><span class="linenos">5568</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-5569"><a href="#alias_-5569"><span class="linenos">5569</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-5570"><a href="#alias_-5570"><span class="linenos">5570</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-5571"><a href="#alias_-5571"><span class="linenos">5571</span></a>
+</span><span id="alias_-5572"><a href="#alias_-5572"><span class="linenos">5572</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;(select 1, 2)&#39;, &#39;bar&#39;, table=[&#39;a&#39;, &#39;b&#39;]).sql()</span>
+</span><span id="alias_-5573"><a href="#alias_-5573"><span class="linenos">5573</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-5574"><a href="#alias_-5574"><span class="linenos">5574</span></a>
+</span><span id="alias_-5575"><a href="#alias_-5575"><span class="linenos">5575</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-5576"><a href="#alias_-5576"><span class="linenos">5576</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-5577"><a href="#alias_-5577"><span class="linenos">5577</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-5578"><a href="#alias_-5578"><span class="linenos">5578</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-5579"><a href="#alias_-5579"><span class="linenos">5579</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-5580"><a href="#alias_-5580"><span class="linenos">5580</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
+</span><span id="alias_-5581"><a href="#alias_-5581"><span class="linenos">5581</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="alias_-5582"><a href="#alias_-5582"><span class="linenos">5582</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-5583"><a href="#alias_-5583"><span class="linenos">5583</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="alias_-5584"><a href="#alias_-5584"><span class="linenos">5584</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="alias_-5585"><a href="#alias_-5585"><span class="linenos">5585</span></a>
-</span><span id="alias_-5586"><a href="#alias_-5586"><span class="linenos">5586</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
-</span><span id="alias_-5587"><a href="#alias_-5587"><span class="linenos">5587</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-5588"><a href="#alias_-5588"><span class="linenos">5588</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span>
-</span><span id="alias_-5589"><a href="#alias_-5589"><span class="linenos">5589</span></a>
-</span><span id="alias_-5590"><a href="#alias_-5590"><span class="linenos">5590</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-5586"><a href="#alias_-5586"><span class="linenos">5586</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-5587"><a href="#alias_-5587"><span class="linenos">5587</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-5588"><a href="#alias_-5588"><span class="linenos">5588</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-5589"><a href="#alias_-5589"><span class="linenos">5589</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="alias_-5590"><a href="#alias_-5590"><span class="linenos">5590</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span>
</span><span id="alias_-5591"><a href="#alias_-5591"><span class="linenos">5591</span></a>
-</span><span id="alias_-5592"><a href="#alias_-5592"><span class="linenos">5592</span></a> <span class="c1"># We don&#39;t set the &quot;alias&quot; arg for Window expressions, because that would add an IDENTIFIER node in</span>
-</span><span id="alias_-5593"><a href="#alias_-5593"><span class="linenos">5593</span></a> <span class="c1"># the AST, representing a &quot;named_window&quot; [1] construct (eg. bigquery). What we want is an ALIAS node</span>
-</span><span id="alias_-5594"><a href="#alias_-5594"><span class="linenos">5594</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-5595"><a href="#alias_-5595"><span class="linenos">5595</span></a> <span class="c1">#</span>
-</span><span id="alias_-5596"><a href="#alias_-5596"><span class="linenos">5596</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="alias_-5597"><a href="#alias_-5597"><span class="linenos">5597</span></a>
-</span><span id="alias_-5598"><a href="#alias_-5598"><span class="linenos">5598</span></a> <span class="k">if</span> <span class="s2">&quot;alias&quot;</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span>
-</span><span id="alias_-5599"><a href="#alias_-5599"><span class="linenos">5599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span>
+</span><span id="alias_-5592"><a href="#alias_-5592"><span class="linenos">5592</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-5593"><a href="#alias_-5593"><span class="linenos">5593</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="alias_-5594"><a href="#alias_-5594"><span class="linenos">5594</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span>
+</span><span id="alias_-5595"><a href="#alias_-5595"><span class="linenos">5595</span></a>
+</span><span id="alias_-5596"><a href="#alias_-5596"><span class="linenos">5596</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
+</span><span id="alias_-5597"><a href="#alias_-5597"><span class="linenos">5597</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-5598"><a href="#alias_-5598"><span class="linenos">5598</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span>
+</span><span id="alias_-5599"><a href="#alias_-5599"><span class="linenos">5599</span></a>
</span><span id="alias_-5600"><a href="#alias_-5600"><span class="linenos">5600</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-5601"><a href="#alias_-5601"><span class="linenos">5601</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="alias_-5601"><a href="#alias_-5601"><span class="linenos">5601</span></a>
+</span><span id="alias_-5602"><a href="#alias_-5602"><span class="linenos">5602</span></a> <span class="c1"># We don&#39;t set the &quot;alias&quot; arg for Window expressions, because that would add an IDENTIFIER node in</span>
+</span><span id="alias_-5603"><a href="#alias_-5603"><span class="linenos">5603</span></a> <span class="c1"># the AST, representing a &quot;named_window&quot; [1] construct (eg. bigquery). What we want is an ALIAS node</span>
+</span><span id="alias_-5604"><a href="#alias_-5604"><span class="linenos">5604</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-5605"><a href="#alias_-5605"><span class="linenos">5605</span></a> <span class="c1">#</span>
+</span><span id="alias_-5606"><a href="#alias_-5606"><span class="linenos">5606</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-5607"><a href="#alias_-5607"><span class="linenos">5607</span></a>
+</span><span id="alias_-5608"><a href="#alias_-5608"><span class="linenos">5608</span></a> <span class="k">if</span> <span class="s2">&quot;alias&quot;</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span>
+</span><span id="alias_-5609"><a href="#alias_-5609"><span class="linenos">5609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span>
+</span><span id="alias_-5610"><a href="#alias_-5610"><span class="linenos">5610</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-5611"><a href="#alias_-5611"><span class="linenos">5611</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span></pre></div>
@@ -69803,32 +70242,32 @@ special characters it is quoted.</li>
</div>
<a class="headerlink" href="#subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-5604"><a href="#subquery-5604"><span class="linenos">5604</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="subquery-5605"><a href="#subquery-5605"><span class="linenos">5605</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="subquery-5606"><a href="#subquery-5606"><span class="linenos">5606</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="subquery-5607"><a href="#subquery-5607"><span class="linenos">5607</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="subquery-5608"><a href="#subquery-5608"><span class="linenos">5608</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="subquery-5609"><a href="#subquery-5609"><span class="linenos">5609</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="subquery-5610"><a href="#subquery-5610"><span class="linenos">5610</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-5611"><a href="#subquery-5611"><span class="linenos">5611</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="subquery-5612"><a href="#subquery-5612"><span class="linenos">5612</span></a>
-</span><span id="subquery-5613"><a href="#subquery-5613"><span class="linenos">5613</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-5614"><a href="#subquery-5614"><span class="linenos">5614</span></a><span class="sd"> &gt;&gt;&gt; subquery(&#39;select x from tbl&#39;, &#39;bar&#39;).select(&#39;x&#39;).sql()</span>
-</span><span id="subquery-5615"><a href="#subquery-5615"><span class="linenos">5615</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-5616"><a href="#subquery-5616"><span class="linenos">5616</span></a>
-</span><span id="subquery-5617"><a href="#subquery-5617"><span class="linenos">5617</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-5618"><a href="#subquery-5618"><span class="linenos">5618</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="subquery-5619"><a href="#subquery-5619"><span class="linenos">5619</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-5620"><a href="#subquery-5620"><span class="linenos">5620</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="subquery-5621"><a href="#subquery-5621"><span class="linenos">5621</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="subquery-5622"><a href="#subquery-5622"><span class="linenos">5622</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-5623"><a href="#subquery-5623"><span class="linenos">5623</span></a>
-</span><span id="subquery-5624"><a href="#subquery-5624"><span class="linenos">5624</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-5625"><a href="#subquery-5625"><span class="linenos">5625</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="subquery-5626"><a href="#subquery-5626"><span class="linenos">5626</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-5627"><a href="#subquery-5627"><span class="linenos">5627</span></a>
-</span><span id="subquery-5628"><a href="#subquery-5628"><span class="linenos">5628</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
-</span><span id="subquery-5629"><a href="#subquery-5629"><span class="linenos">5629</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-5614"><a href="#subquery-5614"><span class="linenos">5614</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="subquery-5615"><a href="#subquery-5615"><span class="linenos">5615</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="subquery-5616"><a href="#subquery-5616"><span class="linenos">5616</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="subquery-5617"><a href="#subquery-5617"><span class="linenos">5617</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="subquery-5618"><a href="#subquery-5618"><span class="linenos">5618</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="subquery-5619"><a href="#subquery-5619"><span class="linenos">5619</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="subquery-5620"><a href="#subquery-5620"><span class="linenos">5620</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-5621"><a href="#subquery-5621"><span class="linenos">5621</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="subquery-5622"><a href="#subquery-5622"><span class="linenos">5622</span></a>
+</span><span id="subquery-5623"><a href="#subquery-5623"><span class="linenos">5623</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-5624"><a href="#subquery-5624"><span class="linenos">5624</span></a><span class="sd"> &gt;&gt;&gt; subquery(&#39;select x from tbl&#39;, &#39;bar&#39;).select(&#39;x&#39;).sql()</span>
+</span><span id="subquery-5625"><a href="#subquery-5625"><span class="linenos">5625</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-5626"><a href="#subquery-5626"><span class="linenos">5626</span></a>
+</span><span id="subquery-5627"><a href="#subquery-5627"><span class="linenos">5627</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-5628"><a href="#subquery-5628"><span class="linenos">5628</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="subquery-5629"><a href="#subquery-5629"><span class="linenos">5629</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-5630"><a href="#subquery-5630"><span class="linenos">5630</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="subquery-5631"><a href="#subquery-5631"><span class="linenos">5631</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="subquery-5632"><a href="#subquery-5632"><span class="linenos">5632</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-5633"><a href="#subquery-5633"><span class="linenos">5633</span></a>
+</span><span id="subquery-5634"><a href="#subquery-5634"><span class="linenos">5634</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-5635"><a href="#subquery-5635"><span class="linenos">5635</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="subquery-5636"><a href="#subquery-5636"><span class="linenos">5636</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-5637"><a href="#subquery-5637"><span class="linenos">5637</span></a>
+</span><span id="subquery-5638"><a href="#subquery-5638"><span class="linenos">5638</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
+</span><span id="subquery-5639"><a href="#subquery-5639"><span class="linenos">5639</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -69874,32 +70313,32 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column-5632"><a href="#column-5632"><span class="linenos">5632</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-5633"><a href="#column-5633"><span class="linenos">5633</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
-</span><span id="column-5634"><a href="#column-5634"><span class="linenos">5634</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-5635"><a href="#column-5635"><span class="linenos">5635</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-5636"><a href="#column-5636"><span class="linenos">5636</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-5637"><a href="#column-5637"><span class="linenos">5637</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="column-5638"><a href="#column-5638"><span class="linenos">5638</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="column-5639"><a href="#column-5639"><span class="linenos">5639</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-5640"><a href="#column-5640"><span class="linenos">5640</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-5641"><a href="#column-5641"><span class="linenos">5641</span></a>
-</span><span id="column-5642"><a href="#column-5642"><span class="linenos">5642</span></a><span class="sd"> Args:</span>
-</span><span id="column-5643"><a href="#column-5643"><span class="linenos">5643</span></a><span class="sd"> col: Column name.</span>
-</span><span id="column-5644"><a href="#column-5644"><span class="linenos">5644</span></a><span class="sd"> table: Table name.</span>
-</span><span id="column-5645"><a href="#column-5645"><span class="linenos">5645</span></a><span class="sd"> db: Database name.</span>
-</span><span id="column-5646"><a href="#column-5646"><span class="linenos">5646</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="column-5647"><a href="#column-5647"><span class="linenos">5647</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="column-5648"><a href="#column-5648"><span class="linenos">5648</span></a>
-</span><span id="column-5649"><a href="#column-5649"><span class="linenos">5649</span></a><span class="sd"> Returns:</span>
-</span><span id="column-5650"><a href="#column-5650"><span class="linenos">5650</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="column-5651"><a href="#column-5651"><span class="linenos">5651</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-5652"><a href="#column-5652"><span class="linenos">5652</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-5653"><a href="#column-5653"><span class="linenos">5653</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-5654"><a href="#column-5654"><span class="linenos">5654</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-5655"><a href="#column-5655"><span class="linenos">5655</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-5656"><a href="#column-5656"><span class="linenos">5656</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="column-5657"><a href="#column-5657"><span class="linenos">5657</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-5642"><a href="#column-5642"><span class="linenos">5642</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-5643"><a href="#column-5643"><span class="linenos">5643</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
+</span><span id="column-5644"><a href="#column-5644"><span class="linenos">5644</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-5645"><a href="#column-5645"><span class="linenos">5645</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-5646"><a href="#column-5646"><span class="linenos">5646</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-5647"><a href="#column-5647"><span class="linenos">5647</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="column-5648"><a href="#column-5648"><span class="linenos">5648</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="column-5649"><a href="#column-5649"><span class="linenos">5649</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-5650"><a href="#column-5650"><span class="linenos">5650</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-5651"><a href="#column-5651"><span class="linenos">5651</span></a>
+</span><span id="column-5652"><a href="#column-5652"><span class="linenos">5652</span></a><span class="sd"> Args:</span>
+</span><span id="column-5653"><a href="#column-5653"><span class="linenos">5653</span></a><span class="sd"> col: Column name.</span>
+</span><span id="column-5654"><a href="#column-5654"><span class="linenos">5654</span></a><span class="sd"> table: Table name.</span>
+</span><span id="column-5655"><a href="#column-5655"><span class="linenos">5655</span></a><span class="sd"> db: Database name.</span>
+</span><span id="column-5656"><a href="#column-5656"><span class="linenos">5656</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="column-5657"><a href="#column-5657"><span class="linenos">5657</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="column-5658"><a href="#column-5658"><span class="linenos">5658</span></a>
+</span><span id="column-5659"><a href="#column-5659"><span class="linenos">5659</span></a><span class="sd"> Returns:</span>
+</span><span id="column-5660"><a href="#column-5660"><span class="linenos">5660</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="column-5661"><a href="#column-5661"><span class="linenos">5661</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-5662"><a href="#column-5662"><span class="linenos">5662</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-5663"><a href="#column-5663"><span class="linenos">5663</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-5664"><a href="#column-5664"><span class="linenos">5664</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-5665"><a href="#column-5665"><span class="linenos">5665</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-5666"><a href="#column-5666"><span class="linenos">5666</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="column-5667"><a href="#column-5667"><span class="linenos">5667</span></a> <span class="p">)</span>
</span></pre></div>
@@ -69935,22 +70374,22 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="cast-5660"><a href="#cast-5660"><span class="linenos">5660</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="cast-5661"><a href="#cast-5661"><span class="linenos">5661</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-5662"><a href="#cast-5662"><span class="linenos">5662</span></a>
-</span><span id="cast-5663"><a href="#cast-5663"><span class="linenos">5663</span></a><span class="sd"> Example:</span>
-</span><span id="cast-5664"><a href="#cast-5664"><span class="linenos">5664</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-5665"><a href="#cast-5665"><span class="linenos">5665</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-5666"><a href="#cast-5666"><span class="linenos">5666</span></a>
-</span><span id="cast-5667"><a href="#cast-5667"><span class="linenos">5667</span></a><span class="sd"> Args:</span>
-</span><span id="cast-5668"><a href="#cast-5668"><span class="linenos">5668</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-5669"><a href="#cast-5669"><span class="linenos">5669</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-5670"><a href="#cast-5670"><span class="linenos">5670</span></a>
-</span><span id="cast-5671"><a href="#cast-5671"><span class="linenos">5671</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-5672"><a href="#cast-5672"><span class="linenos">5672</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="cast-5673"><a href="#cast-5673"><span class="linenos">5673</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-5674"><a href="#cast-5674"><span class="linenos">5674</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="cast-5675"><a href="#cast-5675"><span class="linenos">5675</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-5670"><a href="#cast-5670"><span class="linenos">5670</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="cast-5671"><a href="#cast-5671"><span class="linenos">5671</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-5672"><a href="#cast-5672"><span class="linenos">5672</span></a>
+</span><span id="cast-5673"><a href="#cast-5673"><span class="linenos">5673</span></a><span class="sd"> Example:</span>
+</span><span id="cast-5674"><a href="#cast-5674"><span class="linenos">5674</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-5675"><a href="#cast-5675"><span class="linenos">5675</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-5676"><a href="#cast-5676"><span class="linenos">5676</span></a>
+</span><span id="cast-5677"><a href="#cast-5677"><span class="linenos">5677</span></a><span class="sd"> Args:</span>
+</span><span id="cast-5678"><a href="#cast-5678"><span class="linenos">5678</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-5679"><a href="#cast-5679"><span class="linenos">5679</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-5680"><a href="#cast-5680"><span class="linenos">5680</span></a>
+</span><span id="cast-5681"><a href="#cast-5681"><span class="linenos">5681</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-5682"><a href="#cast-5682"><span class="linenos">5682</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="cast-5683"><a href="#cast-5683"><span class="linenos">5683</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-5684"><a href="#cast-5684"><span class="linenos">5684</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="cast-5685"><a href="#cast-5685"><span class="linenos">5685</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -69993,31 +70432,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#table_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_-5678"><a href="#table_-5678"><span class="linenos">5678</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="table_-5679"><a href="#table_-5679"><span class="linenos">5679</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
-</span><span id="table_-5680"><a href="#table_-5680"><span class="linenos">5680</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-5681"><a href="#table_-5681"><span class="linenos">5681</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-5682"><a href="#table_-5682"><span class="linenos">5682</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-5683"><a href="#table_-5683"><span class="linenos">5683</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-5684"><a href="#table_-5684"><span class="linenos">5684</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-5685"><a href="#table_-5685"><span class="linenos">5685</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-5686"><a href="#table_-5686"><span class="linenos">5686</span></a>
-</span><span id="table_-5687"><a href="#table_-5687"><span class="linenos">5687</span></a><span class="sd"> Args:</span>
-</span><span id="table_-5688"><a href="#table_-5688"><span class="linenos">5688</span></a><span class="sd"> table: Table name.</span>
-</span><span id="table_-5689"><a href="#table_-5689"><span class="linenos">5689</span></a><span class="sd"> db: Database name.</span>
-</span><span id="table_-5690"><a href="#table_-5690"><span class="linenos">5690</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="table_-5691"><a href="#table_-5691"><span class="linenos">5691</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="table_-5692"><a href="#table_-5692"><span class="linenos">5692</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="table_-5693"><a href="#table_-5693"><span class="linenos">5693</span></a>
-</span><span id="table_-5694"><a href="#table_-5694"><span class="linenos">5694</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-5695"><a href="#table_-5695"><span class="linenos">5695</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="table_-5696"><a href="#table_-5696"><span class="linenos">5696</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-5697"><a href="#table_-5697"><span class="linenos">5697</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-5698"><a href="#table_-5698"><span class="linenos">5698</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-5699"><a href="#table_-5699"><span class="linenos">5699</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-5700"><a href="#table_-5700"><span class="linenos">5700</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-5701"><a href="#table_-5701"><span class="linenos">5701</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-5702"><a href="#table_-5702"><span class="linenos">5702</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-5688"><a href="#table_-5688"><span class="linenos">5688</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="table_-5689"><a href="#table_-5689"><span class="linenos">5689</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
+</span><span id="table_-5690"><a href="#table_-5690"><span class="linenos">5690</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-5691"><a href="#table_-5691"><span class="linenos">5691</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-5692"><a href="#table_-5692"><span class="linenos">5692</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-5693"><a href="#table_-5693"><span class="linenos">5693</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-5694"><a href="#table_-5694"><span class="linenos">5694</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-5695"><a href="#table_-5695"><span class="linenos">5695</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-5696"><a href="#table_-5696"><span class="linenos">5696</span></a>
+</span><span id="table_-5697"><a href="#table_-5697"><span class="linenos">5697</span></a><span class="sd"> Args:</span>
+</span><span id="table_-5698"><a href="#table_-5698"><span class="linenos">5698</span></a><span class="sd"> table: Table name.</span>
+</span><span id="table_-5699"><a href="#table_-5699"><span class="linenos">5699</span></a><span class="sd"> db: Database name.</span>
+</span><span id="table_-5700"><a href="#table_-5700"><span class="linenos">5700</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="table_-5701"><a href="#table_-5701"><span class="linenos">5701</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="table_-5702"><a href="#table_-5702"><span class="linenos">5702</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="table_-5703"><a href="#table_-5703"><span class="linenos">5703</span></a>
+</span><span id="table_-5704"><a href="#table_-5704"><span class="linenos">5704</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-5705"><a href="#table_-5705"><span class="linenos">5705</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="table_-5706"><a href="#table_-5706"><span class="linenos">5706</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-5707"><a href="#table_-5707"><span class="linenos">5707</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-5708"><a href="#table_-5708"><span class="linenos">5708</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-5709"><a href="#table_-5709"><span class="linenos">5709</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-5710"><a href="#table_-5710"><span class="linenos">5710</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-5711"><a href="#table_-5711"><span class="linenos">5711</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-5712"><a href="#table_-5712"><span class="linenos">5712</span></a> <span class="p">)</span>
</span></pre></div>
@@ -70053,37 +70492,37 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="values-5705"><a href="#values-5705"><span class="linenos">5705</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-5706"><a href="#values-5706"><span class="linenos">5706</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span>
-</span><span id="values-5707"><a href="#values-5707"><span class="linenos">5707</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="values-5708"><a href="#values-5708"><span class="linenos">5708</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="values-5709"><a href="#values-5709"><span class="linenos">5709</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-5710"><a href="#values-5710"><span class="linenos">5710</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-5711"><a href="#values-5711"><span class="linenos">5711</span></a>
-</span><span id="values-5712"><a href="#values-5712"><span class="linenos">5712</span></a><span class="sd"> Example:</span>
-</span><span id="values-5713"><a href="#values-5713"><span class="linenos">5713</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-5714"><a href="#values-5714"><span class="linenos">5714</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-5715"><a href="#values-5715"><span class="linenos">5715</span></a>
-</span><span id="values-5716"><a href="#values-5716"><span class="linenos">5716</span></a><span class="sd"> Args:</span>
-</span><span id="values-5717"><a href="#values-5717"><span class="linenos">5717</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-5718"><a href="#values-5718"><span class="linenos">5718</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-5719"><a href="#values-5719"><span class="linenos">5719</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span>
-</span><span id="values-5720"><a href="#values-5720"><span class="linenos">5720</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-5715"><a href="#values-5715"><span class="linenos">5715</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-5716"><a href="#values-5716"><span class="linenos">5716</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span>
+</span><span id="values-5717"><a href="#values-5717"><span class="linenos">5717</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="values-5718"><a href="#values-5718"><span class="linenos">5718</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="values-5719"><a href="#values-5719"><span class="linenos">5719</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-5720"><a href="#values-5720"><span class="linenos">5720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
</span><span id="values-5721"><a href="#values-5721"><span class="linenos">5721</span></a>
-</span><span id="values-5722"><a href="#values-5722"><span class="linenos">5722</span></a><span class="sd"> Returns:</span>
-</span><span id="values-5723"><a href="#values-5723"><span class="linenos">5723</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-5724"><a href="#values-5724"><span class="linenos">5724</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-5725"><a href="#values-5725"><span class="linenos">5725</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span>
-</span><span id="values-5726"><a href="#values-5726"><span class="linenos">5726</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
-</span><span id="values-5727"><a href="#values-5727"><span class="linenos">5727</span></a>
-</span><span id="values-5728"><a href="#values-5728"><span class="linenos">5728</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-5729"><a href="#values-5729"><span class="linenos">5729</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">],</span>
-</span><span id="values-5730"><a href="#values-5730"><span class="linenos">5730</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="values-5731"><a href="#values-5731"><span class="linenos">5731</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
-</span><span id="values-5732"><a href="#values-5732"><span class="linenos">5732</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-5733"><a href="#values-5733"><span class="linenos">5733</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="values-5734"><a href="#values-5734"><span class="linenos">5734</span></a> <span class="p">),</span>
-</span><span id="values-5735"><a href="#values-5735"><span class="linenos">5735</span></a> <span class="p">)</span>
+</span><span id="values-5722"><a href="#values-5722"><span class="linenos">5722</span></a><span class="sd"> Example:</span>
+</span><span id="values-5723"><a href="#values-5723"><span class="linenos">5723</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-5724"><a href="#values-5724"><span class="linenos">5724</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="values-5725"><a href="#values-5725"><span class="linenos">5725</span></a>
+</span><span id="values-5726"><a href="#values-5726"><span class="linenos">5726</span></a><span class="sd"> Args:</span>
+</span><span id="values-5727"><a href="#values-5727"><span class="linenos">5727</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-5728"><a href="#values-5728"><span class="linenos">5728</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-5729"><a href="#values-5729"><span class="linenos">5729</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span>
+</span><span id="values-5730"><a href="#values-5730"><span class="linenos">5730</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-5731"><a href="#values-5731"><span class="linenos">5731</span></a>
+</span><span id="values-5732"><a href="#values-5732"><span class="linenos">5732</span></a><span class="sd"> Returns:</span>
+</span><span id="values-5733"><a href="#values-5733"><span class="linenos">5733</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-5734"><a href="#values-5734"><span class="linenos">5734</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-5735"><a href="#values-5735"><span class="linenos">5735</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="values-5736"><a href="#values-5736"><span class="linenos">5736</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
+</span><span id="values-5737"><a href="#values-5737"><span class="linenos">5737</span></a>
+</span><span id="values-5738"><a href="#values-5738"><span class="linenos">5738</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-5739"><a href="#values-5739"><span class="linenos">5739</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">],</span>
+</span><span id="values-5740"><a href="#values-5740"><span class="linenos">5740</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="values-5741"><a href="#values-5741"><span class="linenos">5741</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
+</span><span id="values-5742"><a href="#values-5742"><span class="linenos">5742</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-5743"><a href="#values-5743"><span class="linenos">5743</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="values-5744"><a href="#values-5744"><span class="linenos">5744</span></a> <span class="p">),</span>
+</span><span id="values-5745"><a href="#values-5745"><span class="linenos">5745</span></a> <span class="p">)</span>
</span></pre></div>
@@ -70128,28 +70567,28 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#var"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="var-5738"><a href="#var-5738"><span class="linenos">5738</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
-</span><span id="var-5739"><a href="#var-5739"><span class="linenos">5739</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-5740"><a href="#var-5740"><span class="linenos">5740</span></a>
-</span><span id="var-5741"><a href="#var-5741"><span class="linenos">5741</span></a><span class="sd"> Example:</span>
-</span><span id="var-5742"><a href="#var-5742"><span class="linenos">5742</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-5743"><a href="#var-5743"><span class="linenos">5743</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-5744"><a href="#var-5744"><span class="linenos">5744</span></a>
-</span><span id="var-5745"><a href="#var-5745"><span class="linenos">5745</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-5746"><a href="#var-5746"><span class="linenos">5746</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-5747"><a href="#var-5747"><span class="linenos">5747</span></a>
-</span><span id="var-5748"><a href="#var-5748"><span class="linenos">5748</span></a><span class="sd"> Args:</span>
-</span><span id="var-5749"><a href="#var-5749"><span class="linenos">5749</span></a><span class="sd"> name: The name of the var or an expression who&#39;s name will become the var.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="var-5748"><a href="#var-5748"><span class="linenos">5748</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
+</span><span id="var-5749"><a href="#var-5749"><span class="linenos">5749</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
</span><span id="var-5750"><a href="#var-5750"><span class="linenos">5750</span></a>
-</span><span id="var-5751"><a href="#var-5751"><span class="linenos">5751</span></a><span class="sd"> Returns:</span>
-</span><span id="var-5752"><a href="#var-5752"><span class="linenos">5752</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-5753"><a href="#var-5753"><span class="linenos">5753</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-5754"><a href="#var-5754"><span class="linenos">5754</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span>
-</span><span id="var-5755"><a href="#var-5755"><span class="linenos">5755</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
-</span><span id="var-5756"><a href="#var-5756"><span class="linenos">5756</span></a>
-</span><span id="var-5757"><a href="#var-5757"><span class="linenos">5757</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="var-5758"><a href="#var-5758"><span class="linenos">5758</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span>
-</span><span id="var-5759"><a href="#var-5759"><span class="linenos">5759</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
+</span><span id="var-5751"><a href="#var-5751"><span class="linenos">5751</span></a><span class="sd"> Example:</span>
+</span><span id="var-5752"><a href="#var-5752"><span class="linenos">5752</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-5753"><a href="#var-5753"><span class="linenos">5753</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-5754"><a href="#var-5754"><span class="linenos">5754</span></a>
+</span><span id="var-5755"><a href="#var-5755"><span class="linenos">5755</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-5756"><a href="#var-5756"><span class="linenos">5756</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-5757"><a href="#var-5757"><span class="linenos">5757</span></a>
+</span><span id="var-5758"><a href="#var-5758"><span class="linenos">5758</span></a><span class="sd"> Args:</span>
+</span><span id="var-5759"><a href="#var-5759"><span class="linenos">5759</span></a><span class="sd"> name: The name of the var or an expression who&#39;s name will become the var.</span>
+</span><span id="var-5760"><a href="#var-5760"><span class="linenos">5760</span></a>
+</span><span id="var-5761"><a href="#var-5761"><span class="linenos">5761</span></a><span class="sd"> Returns:</span>
+</span><span id="var-5762"><a href="#var-5762"><span class="linenos">5762</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-5763"><a href="#var-5763"><span class="linenos">5763</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-5764"><a href="#var-5764"><span class="linenos">5764</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span>
+</span><span id="var-5765"><a href="#var-5765"><span class="linenos">5765</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
+</span><span id="var-5766"><a href="#var-5766"><span class="linenos">5766</span></a>
+</span><span id="var-5767"><a href="#var-5767"><span class="linenos">5767</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="var-5768"><a href="#var-5768"><span class="linenos">5768</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span>
+</span><span id="var-5769"><a href="#var-5769"><span class="linenos">5769</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
</span></pre></div>
@@ -70197,24 +70636,24 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#rename_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-5762"><a href="#rename_table-5762"><span class="linenos">5762</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="rename_table-5763"><a href="#rename_table-5763"><span class="linenos">5763</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-5764"><a href="#rename_table-5764"><span class="linenos">5764</span></a>
-</span><span id="rename_table-5765"><a href="#rename_table-5765"><span class="linenos">5765</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-5766"><a href="#rename_table-5766"><span class="linenos">5766</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-5767"><a href="#rename_table-5767"><span class="linenos">5767</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-5768"><a href="#rename_table-5768"><span class="linenos">5768</span></a>
-</span><span id="rename_table-5769"><a href="#rename_table-5769"><span class="linenos">5769</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-5770"><a href="#rename_table-5770"><span class="linenos">5770</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-5771"><a href="#rename_table-5771"><span class="linenos">5771</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-5772"><a href="#rename_table-5772"><span class="linenos">5772</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
-</span><span id="rename_table-5773"><a href="#rename_table-5773"><span class="linenos">5773</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="rename_table-5774"><a href="#rename_table-5774"><span class="linenos">5774</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-5775"><a href="#rename_table-5775"><span class="linenos">5775</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span>
-</span><span id="rename_table-5776"><a href="#rename_table-5776"><span class="linenos">5776</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-5777"><a href="#rename_table-5777"><span class="linenos">5777</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span>
-</span><span id="rename_table-5778"><a href="#rename_table-5778"><span class="linenos">5778</span></a> <span class="p">],</span>
-</span><span id="rename_table-5779"><a href="#rename_table-5779"><span class="linenos">5779</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-5772"><a href="#rename_table-5772"><span class="linenos">5772</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="rename_table-5773"><a href="#rename_table-5773"><span class="linenos">5773</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-5774"><a href="#rename_table-5774"><span class="linenos">5774</span></a>
+</span><span id="rename_table-5775"><a href="#rename_table-5775"><span class="linenos">5775</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-5776"><a href="#rename_table-5776"><span class="linenos">5776</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-5777"><a href="#rename_table-5777"><span class="linenos">5777</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-5778"><a href="#rename_table-5778"><span class="linenos">5778</span></a>
+</span><span id="rename_table-5779"><a href="#rename_table-5779"><span class="linenos">5779</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-5780"><a href="#rename_table-5780"><span class="linenos">5780</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-5781"><a href="#rename_table-5781"><span class="linenos">5781</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-5782"><a href="#rename_table-5782"><span class="linenos">5782</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
+</span><span id="rename_table-5783"><a href="#rename_table-5783"><span class="linenos">5783</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="rename_table-5784"><a href="#rename_table-5784"><span class="linenos">5784</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-5785"><a href="#rename_table-5785"><span class="linenos">5785</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span>
+</span><span id="rename_table-5786"><a href="#rename_table-5786"><span class="linenos">5786</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-5787"><a href="#rename_table-5787"><span class="linenos">5787</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span>
+</span><span id="rename_table-5788"><a href="#rename_table-5788"><span class="linenos">5788</span></a> <span class="p">],</span>
+</span><span id="rename_table-5789"><a href="#rename_table-5789"><span class="linenos">5789</span></a> <span class="p">)</span>
</span></pre></div>
@@ -70247,46 +70686,46 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#convert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="convert-5782"><a href="#convert-5782"><span class="linenos">5782</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="convert-5783"><a href="#convert-5783"><span class="linenos">5783</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a python value into an expression object.</span>
-</span><span id="convert-5784"><a href="#convert-5784"><span class="linenos">5784</span></a>
-</span><span id="convert-5785"><a href="#convert-5785"><span class="linenos">5785</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-5786"><a href="#convert-5786"><span class="linenos">5786</span></a>
-</span><span id="convert-5787"><a href="#convert-5787"><span class="linenos">5787</span></a><span class="sd"> Args:</span>
-</span><span id="convert-5788"><a href="#convert-5788"><span class="linenos">5788</span></a><span class="sd"> value: A python object.</span>
-</span><span id="convert-5789"><a href="#convert-5789"><span class="linenos">5789</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="convert-5790"><a href="#convert-5790"><span class="linenos">5790</span></a>
-</span><span id="convert-5791"><a href="#convert-5791"><span class="linenos">5791</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-5792"><a href="#convert-5792"><span class="linenos">5792</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="convert-5793"><a href="#convert-5793"><span class="linenos">5793</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-5794"><a href="#convert-5794"><span class="linenos">5794</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="convert-5795"><a href="#convert-5795"><span class="linenos">5795</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="convert-5796"><a href="#convert-5796"><span class="linenos">5796</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="convert-5797"><a href="#convert-5797"><span class="linenos">5797</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="convert-5798"><a href="#convert-5798"><span class="linenos">5798</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
-</span><span id="convert-5799"><a href="#convert-5799"><span class="linenos">5799</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
-</span><span id="convert-5800"><a href="#convert-5800"><span class="linenos">5800</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
-</span><span id="convert-5801"><a href="#convert-5801"><span class="linenos">5801</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-5802"><a href="#convert-5802"><span class="linenos">5802</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span>
-</span><span id="convert-5803"><a href="#convert-5803"><span class="linenos">5803</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
-</span><span id="convert-5804"><a href="#convert-5804"><span class="linenos">5804</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span>
-</span><span id="convert-5805"><a href="#convert-5805"><span class="linenos">5805</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
-</span><span id="convert-5806"><a href="#convert-5806"><span class="linenos">5806</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>
-</span><span id="convert-5807"><a href="#convert-5807"><span class="linenos">5807</span></a> <span class="p">)</span>
-</span><span id="convert-5808"><a href="#convert-5808"><span class="linenos">5808</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span>
-</span><span id="convert-5809"><a href="#convert-5809"><span class="linenos">5809</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span>
-</span><span id="convert-5810"><a href="#convert-5810"><span class="linenos">5810</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
-</span><span id="convert-5811"><a href="#convert-5811"><span class="linenos">5811</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span>
-</span><span id="convert-5812"><a href="#convert-5812"><span class="linenos">5812</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
-</span><span id="convert-5813"><a href="#convert-5813"><span class="linenos">5813</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-5814"><a href="#convert-5814"><span class="linenos">5814</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="convert-5815"><a href="#convert-5815"><span class="linenos">5815</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-5816"><a href="#convert-5816"><span class="linenos">5816</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
-</span><span id="convert-5817"><a href="#convert-5817"><span class="linenos">5817</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-5818"><a href="#convert-5818"><span class="linenos">5818</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
-</span><span id="convert-5819"><a href="#convert-5819"><span class="linenos">5819</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
-</span><span id="convert-5820"><a href="#convert-5820"><span class="linenos">5820</span></a> <span class="p">)</span>
-</span><span id="convert-5821"><a href="#convert-5821"><span class="linenos">5821</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="convert-5792"><a href="#convert-5792"><span class="linenos">5792</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="convert-5793"><a href="#convert-5793"><span class="linenos">5793</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a python value into an expression object.</span>
+</span><span id="convert-5794"><a href="#convert-5794"><span class="linenos">5794</span></a>
+</span><span id="convert-5795"><a href="#convert-5795"><span class="linenos">5795</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-5796"><a href="#convert-5796"><span class="linenos">5796</span></a>
+</span><span id="convert-5797"><a href="#convert-5797"><span class="linenos">5797</span></a><span class="sd"> Args:</span>
+</span><span id="convert-5798"><a href="#convert-5798"><span class="linenos">5798</span></a><span class="sd"> value: A python object.</span>
+</span><span id="convert-5799"><a href="#convert-5799"><span class="linenos">5799</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="convert-5800"><a href="#convert-5800"><span class="linenos">5800</span></a>
+</span><span id="convert-5801"><a href="#convert-5801"><span class="linenos">5801</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-5802"><a href="#convert-5802"><span class="linenos">5802</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="convert-5803"><a href="#convert-5803"><span class="linenos">5803</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-5804"><a href="#convert-5804"><span class="linenos">5804</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="convert-5805"><a href="#convert-5805"><span class="linenos">5805</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="convert-5806"><a href="#convert-5806"><span class="linenos">5806</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="convert-5807"><a href="#convert-5807"><span class="linenos">5807</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="convert-5808"><a href="#convert-5808"><span class="linenos">5808</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
+</span><span id="convert-5809"><a href="#convert-5809"><span class="linenos">5809</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
+</span><span id="convert-5810"><a href="#convert-5810"><span class="linenos">5810</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
+</span><span id="convert-5811"><a href="#convert-5811"><span class="linenos">5811</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-5812"><a href="#convert-5812"><span class="linenos">5812</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span>
+</span><span id="convert-5813"><a href="#convert-5813"><span class="linenos">5813</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
+</span><span id="convert-5814"><a href="#convert-5814"><span class="linenos">5814</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span>
+</span><span id="convert-5815"><a href="#convert-5815"><span class="linenos">5815</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="convert-5816"><a href="#convert-5816"><span class="linenos">5816</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>
+</span><span id="convert-5817"><a href="#convert-5817"><span class="linenos">5817</span></a> <span class="p">)</span>
+</span><span id="convert-5818"><a href="#convert-5818"><span class="linenos">5818</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span>
+</span><span id="convert-5819"><a href="#convert-5819"><span class="linenos">5819</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span>
+</span><span id="convert-5820"><a href="#convert-5820"><span class="linenos">5820</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
+</span><span id="convert-5821"><a href="#convert-5821"><span class="linenos">5821</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span>
+</span><span id="convert-5822"><a href="#convert-5822"><span class="linenos">5822</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
+</span><span id="convert-5823"><a href="#convert-5823"><span class="linenos">5823</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-5824"><a href="#convert-5824"><span class="linenos">5824</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="convert-5825"><a href="#convert-5825"><span class="linenos">5825</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-5826"><a href="#convert-5826"><span class="linenos">5826</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+</span><span id="convert-5827"><a href="#convert-5827"><span class="linenos">5827</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-5828"><a href="#convert-5828"><span class="linenos">5828</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
+</span><span id="convert-5829"><a href="#convert-5829"><span class="linenos">5829</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
+</span><span id="convert-5830"><a href="#convert-5830"><span class="linenos">5830</span></a> <span class="p">)</span>
+</span><span id="convert-5831"><a href="#convert-5831"><span class="linenos">5831</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -70321,26 +70760,26 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#replace_children"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-5824"><a href="#replace_children-5824"><span class="linenos">5824</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="replace_children-5825"><a href="#replace_children-5825"><span class="linenos">5825</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-5826"><a href="#replace_children-5826"><span class="linenos">5826</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -&gt; exp.</span>
-</span><span id="replace_children-5827"><a href="#replace_children-5827"><span class="linenos">5827</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-5828"><a href="#replace_children-5828"><span class="linenos">5828</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="replace_children-5829"><a href="#replace_children-5829"><span class="linenos">5829</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
-</span><span id="replace_children-5830"><a href="#replace_children-5830"><span class="linenos">5830</span></a>
-</span><span id="replace_children-5831"><a href="#replace_children-5831"><span class="linenos">5831</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span>
-</span><span id="replace_children-5832"><a href="#replace_children-5832"><span class="linenos">5832</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-5833"><a href="#replace_children-5833"><span class="linenos">5833</span></a>
-</span><span id="replace_children-5834"><a href="#replace_children-5834"><span class="linenos">5834</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span>
-</span><span id="replace_children-5835"><a href="#replace_children-5835"><span class="linenos">5835</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="replace_children-5836"><a href="#replace_children-5836"><span class="linenos">5836</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
-</span><span id="replace_children-5837"><a href="#replace_children-5837"><span class="linenos">5837</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span>
-</span><span id="replace_children-5838"><a href="#replace_children-5838"><span class="linenos">5838</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
-</span><span id="replace_children-5839"><a href="#replace_children-5839"><span class="linenos">5839</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
-</span><span id="replace_children-5840"><a href="#replace_children-5840"><span class="linenos">5840</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-5841"><a href="#replace_children-5841"><span class="linenos">5841</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span>
-</span><span id="replace_children-5842"><a href="#replace_children-5842"><span class="linenos">5842</span></a>
-</span><span id="replace_children-5843"><a href="#replace_children-5843"><span class="linenos">5843</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-5834"><a href="#replace_children-5834"><span class="linenos">5834</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="replace_children-5835"><a href="#replace_children-5835"><span class="linenos">5835</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-5836"><a href="#replace_children-5836"><span class="linenos">5836</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -&gt; exp.</span>
+</span><span id="replace_children-5837"><a href="#replace_children-5837"><span class="linenos">5837</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-5838"><a href="#replace_children-5838"><span class="linenos">5838</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="replace_children-5839"><a href="#replace_children-5839"><span class="linenos">5839</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
+</span><span id="replace_children-5840"><a href="#replace_children-5840"><span class="linenos">5840</span></a>
+</span><span id="replace_children-5841"><a href="#replace_children-5841"><span class="linenos">5841</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span>
+</span><span id="replace_children-5842"><a href="#replace_children-5842"><span class="linenos">5842</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-5843"><a href="#replace_children-5843"><span class="linenos">5843</span></a>
+</span><span id="replace_children-5844"><a href="#replace_children-5844"><span class="linenos">5844</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span>
+</span><span id="replace_children-5845"><a href="#replace_children-5845"><span class="linenos">5845</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="replace_children-5846"><a href="#replace_children-5846"><span class="linenos">5846</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
+</span><span id="replace_children-5847"><a href="#replace_children-5847"><span class="linenos">5847</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span>
+</span><span id="replace_children-5848"><a href="#replace_children-5848"><span class="linenos">5848</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
+</span><span id="replace_children-5849"><a href="#replace_children-5849"><span class="linenos">5849</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
+</span><span id="replace_children-5850"><a href="#replace_children-5850"><span class="linenos">5850</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-5851"><a href="#replace_children-5851"><span class="linenos">5851</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span>
+</span><span id="replace_children-5852"><a href="#replace_children-5852"><span class="linenos">5852</span></a>
+</span><span id="replace_children-5853"><a href="#replace_children-5853"><span class="linenos">5853</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
</span></pre></div>
@@ -70360,27 +70799,27 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#column_table_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-5846"><a href="#column_table_names-5846"><span class="linenos">5846</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="column_table_names-5847"><a href="#column_table_names-5847"><span class="linenos">5847</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-5848"><a href="#column_table_names-5848"><span class="linenos">5848</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-5849"><a href="#column_table_names-5849"><span class="linenos">5849</span></a>
-</span><span id="column_table_names-5850"><a href="#column_table_names-5850"><span class="linenos">5850</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-5851"><a href="#column_table_names-5851"><span class="linenos">5851</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-5852"><a href="#column_table_names-5852"><span class="linenos">5852</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
-</span><span id="column_table_names-5853"><a href="#column_table_names-5853"><span class="linenos">5853</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
-</span><span id="column_table_names-5854"><a href="#column_table_names-5854"><span class="linenos">5854</span></a>
-</span><span id="column_table_names-5855"><a href="#column_table_names-5855"><span class="linenos">5855</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-5856"><a href="#column_table_names-5856"><span class="linenos">5856</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="column_table_names-5857"><a href="#column_table_names-5857"><span class="linenos">5857</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="column_table_names-5858"><a href="#column_table_names-5858"><span class="linenos">5858</span></a>
-</span><span id="column_table_names-5859"><a href="#column_table_names-5859"><span class="linenos">5859</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-5860"><a href="#column_table_names-5860"><span class="linenos">5860</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="column_table_names-5861"><a href="#column_table_names-5861"><span class="linenos">5861</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-5862"><a href="#column_table_names-5862"><span class="linenos">5862</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="column_table_names-5863"><a href="#column_table_names-5863"><span class="linenos">5863</span></a> <span class="n">table</span>
-</span><span id="column_table_names-5864"><a href="#column_table_names-5864"><span class="linenos">5864</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
-</span><span id="column_table_names-5865"><a href="#column_table_names-5865"><span class="linenos">5865</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
-</span><span id="column_table_names-5866"><a href="#column_table_names-5866"><span class="linenos">5866</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-5856"><a href="#column_table_names-5856"><span class="linenos">5856</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="column_table_names-5857"><a href="#column_table_names-5857"><span class="linenos">5857</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-5858"><a href="#column_table_names-5858"><span class="linenos">5858</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-5859"><a href="#column_table_names-5859"><span class="linenos">5859</span></a>
+</span><span id="column_table_names-5860"><a href="#column_table_names-5860"><span class="linenos">5860</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-5861"><a href="#column_table_names-5861"><span class="linenos">5861</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-5862"><a href="#column_table_names-5862"><span class="linenos">5862</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
+</span><span id="column_table_names-5863"><a href="#column_table_names-5863"><span class="linenos">5863</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="column_table_names-5864"><a href="#column_table_names-5864"><span class="linenos">5864</span></a>
+</span><span id="column_table_names-5865"><a href="#column_table_names-5865"><span class="linenos">5865</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-5866"><a href="#column_table_names-5866"><span class="linenos">5866</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="column_table_names-5867"><a href="#column_table_names-5867"><span class="linenos">5867</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="column_table_names-5868"><a href="#column_table_names-5868"><span class="linenos">5868</span></a>
+</span><span id="column_table_names-5869"><a href="#column_table_names-5869"><span class="linenos">5869</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-5870"><a href="#column_table_names-5870"><span class="linenos">5870</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="column_table_names-5871"><a href="#column_table_names-5871"><span class="linenos">5871</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-5872"><a href="#column_table_names-5872"><span class="linenos">5872</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="column_table_names-5873"><a href="#column_table_names-5873"><span class="linenos">5873</span></a> <span class="n">table</span>
+</span><span id="column_table_names-5874"><a href="#column_table_names-5874"><span class="linenos">5874</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
+</span><span id="column_table_names-5875"><a href="#column_table_names-5875"><span class="linenos">5875</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
+</span><span id="column_table_names-5876"><a href="#column_table_names-5876"><span class="linenos">5876</span></a> <span class="p">}</span>
</span></pre></div>
@@ -70424,33 +70863,33 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-5869"><a href="#table_name-5869"><span class="linenos">5869</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="table_name-5870"><a href="#table_name-5870"><span class="linenos">5870</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get the full name of a table as a string.</span>
-</span><span id="table_name-5871"><a href="#table_name-5871"><span class="linenos">5871</span></a>
-</span><span id="table_name-5872"><a href="#table_name-5872"><span class="linenos">5872</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-5873"><a href="#table_name-5873"><span class="linenos">5873</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="table_name-5874"><a href="#table_name-5874"><span class="linenos">5874</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="table_name-5875"><a href="#table_name-5875"><span class="linenos">5875</span></a>
-</span><span id="table_name-5876"><a href="#table_name-5876"><span class="linenos">5876</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-5877"><a href="#table_name-5877"><span class="linenos">5877</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-5878"><a href="#table_name-5878"><span class="linenos">5878</span></a><span class="sd"> &gt;&gt;&gt; table_name(parse_one(&quot;select * from a.b.c&quot;).find(exp.Table))</span>
-</span><span id="table_name-5879"><a href="#table_name-5879"><span class="linenos">5879</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-5880"><a href="#table_name-5880"><span class="linenos">5880</span></a>
-</span><span id="table_name-5881"><a href="#table_name-5881"><span class="linenos">5881</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-5882"><a href="#table_name-5882"><span class="linenos">5882</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-5883"><a href="#table_name-5883"><span class="linenos">5883</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-5884"><a href="#table_name-5884"><span class="linenos">5884</span></a>
-</span><span id="table_name-5885"><a href="#table_name-5885"><span class="linenos">5885</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
-</span><span id="table_name-5886"><a href="#table_name-5886"><span class="linenos">5886</span></a>
-</span><span id="table_name-5887"><a href="#table_name-5887"><span class="linenos">5887</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="table_name-5888"><a href="#table_name-5888"><span class="linenos">5888</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="table_name-5889"><a href="#table_name-5889"><span class="linenos">5889</span></a>
-</span><span id="table_name-5890"><a href="#table_name-5890"><span class="linenos">5890</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
-</span><span id="table_name-5891"><a href="#table_name-5891"><span class="linenos">5891</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="table_name-5892"><a href="#table_name-5892"><span class="linenos">5892</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="table_name-5893"><a href="#table_name-5893"><span class="linenos">5893</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
-</span><span id="table_name-5894"><a href="#table_name-5894"><span class="linenos">5894</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="table_name-5895"><a href="#table_name-5895"><span class="linenos">5895</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-5879"><a href="#table_name-5879"><span class="linenos">5879</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="table_name-5880"><a href="#table_name-5880"><span class="linenos">5880</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get the full name of a table as a string.</span>
+</span><span id="table_name-5881"><a href="#table_name-5881"><span class="linenos">5881</span></a>
+</span><span id="table_name-5882"><a href="#table_name-5882"><span class="linenos">5882</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-5883"><a href="#table_name-5883"><span class="linenos">5883</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="table_name-5884"><a href="#table_name-5884"><span class="linenos">5884</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="table_name-5885"><a href="#table_name-5885"><span class="linenos">5885</span></a>
+</span><span id="table_name-5886"><a href="#table_name-5886"><span class="linenos">5886</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-5887"><a href="#table_name-5887"><span class="linenos">5887</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-5888"><a href="#table_name-5888"><span class="linenos">5888</span></a><span class="sd"> &gt;&gt;&gt; table_name(parse_one(&quot;select * from a.b.c&quot;).find(exp.Table))</span>
+</span><span id="table_name-5889"><a href="#table_name-5889"><span class="linenos">5889</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-5890"><a href="#table_name-5890"><span class="linenos">5890</span></a>
+</span><span id="table_name-5891"><a href="#table_name-5891"><span class="linenos">5891</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-5892"><a href="#table_name-5892"><span class="linenos">5892</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-5893"><a href="#table_name-5893"><span class="linenos">5893</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-5894"><a href="#table_name-5894"><span class="linenos">5894</span></a>
+</span><span id="table_name-5895"><a href="#table_name-5895"><span class="linenos">5895</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="table_name-5896"><a href="#table_name-5896"><span class="linenos">5896</span></a>
+</span><span id="table_name-5897"><a href="#table_name-5897"><span class="linenos">5897</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="table_name-5898"><a href="#table_name-5898"><span class="linenos">5898</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="table_name-5899"><a href="#table_name-5899"><span class="linenos">5899</span></a>
+</span><span id="table_name-5900"><a href="#table_name-5900"><span class="linenos">5900</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+</span><span id="table_name-5901"><a href="#table_name-5901"><span class="linenos">5901</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="table_name-5902"><a href="#table_name-5902"><span class="linenos">5902</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="table_name-5903"><a href="#table_name-5903"><span class="linenos">5903</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
+</span><span id="table_name-5904"><a href="#table_name-5904"><span class="linenos">5904</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="table_name-5905"><a href="#table_name-5905"><span class="linenos">5905</span></a> <span class="p">)</span>
</span></pre></div>
@@ -70494,34 +70933,34 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#replace_tables"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-5898"><a href="#replace_tables-5898"><span class="linenos">5898</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="replace_tables-5899"><a href="#replace_tables-5899"><span class="linenos">5899</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace all tables in expression according to the mapping.</span>
-</span><span id="replace_tables-5900"><a href="#replace_tables-5900"><span class="linenos">5900</span></a>
-</span><span id="replace_tables-5901"><a href="#replace_tables-5901"><span class="linenos">5901</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-5902"><a href="#replace_tables-5902"><span class="linenos">5902</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-5903"><a href="#replace_tables-5903"><span class="linenos">5903</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="replace_tables-5904"><a href="#replace_tables-5904"><span class="linenos">5904</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="replace_tables-5905"><a href="#replace_tables-5905"><span class="linenos">5905</span></a>
-</span><span id="replace_tables-5906"><a href="#replace_tables-5906"><span class="linenos">5906</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-5907"><a href="#replace_tables-5907"><span class="linenos">5907</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-5908"><a href="#replace_tables-5908"><span class="linenos">5908</span></a><span class="sd"> &gt;&gt;&gt; replace_tables(parse_one(&quot;select * from a.b&quot;), {&quot;a.b&quot;: &quot;c&quot;}).sql()</span>
-</span><span id="replace_tables-5909"><a href="#replace_tables-5909"><span class="linenos">5909</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-5908"><a href="#replace_tables-5908"><span class="linenos">5908</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="replace_tables-5909"><a href="#replace_tables-5909"><span class="linenos">5909</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace all tables in expression according to the mapping.</span>
</span><span id="replace_tables-5910"><a href="#replace_tables-5910"><span class="linenos">5910</span></a>
-</span><span id="replace_tables-5911"><a href="#replace_tables-5911"><span class="linenos">5911</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-5912"><a href="#replace_tables-5912"><span class="linenos">5912</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-5913"><a href="#replace_tables-5913"><span class="linenos">5913</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-5914"><a href="#replace_tables-5914"><span class="linenos">5914</span></a>
-</span><span id="replace_tables-5915"><a href="#replace_tables-5915"><span class="linenos">5915</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_tables-5916"><a href="#replace_tables-5916"><span class="linenos">5916</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="replace_tables-5917"><a href="#replace_tables-5917"><span class="linenos">5917</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
-</span><span id="replace_tables-5918"><a href="#replace_tables-5918"><span class="linenos">5918</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-5919"><a href="#replace_tables-5919"><span class="linenos">5919</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-5920"><a href="#replace_tables-5920"><span class="linenos">5920</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-5921"><a href="#replace_tables-5921"><span class="linenos">5921</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
-</span><span id="replace_tables-5922"><a href="#replace_tables-5922"><span class="linenos">5922</span></a> <span class="p">)</span>
-</span><span id="replace_tables-5923"><a href="#replace_tables-5923"><span class="linenos">5923</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-5911"><a href="#replace_tables-5911"><span class="linenos">5911</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-5912"><a href="#replace_tables-5912"><span class="linenos">5912</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-5913"><a href="#replace_tables-5913"><span class="linenos">5913</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="replace_tables-5914"><a href="#replace_tables-5914"><span class="linenos">5914</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="replace_tables-5915"><a href="#replace_tables-5915"><span class="linenos">5915</span></a>
+</span><span id="replace_tables-5916"><a href="#replace_tables-5916"><span class="linenos">5916</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-5917"><a href="#replace_tables-5917"><span class="linenos">5917</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-5918"><a href="#replace_tables-5918"><span class="linenos">5918</span></a><span class="sd"> &gt;&gt;&gt; replace_tables(parse_one(&quot;select * from a.b&quot;), {&quot;a.b&quot;: &quot;c&quot;}).sql()</span>
+</span><span id="replace_tables-5919"><a href="#replace_tables-5919"><span class="linenos">5919</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="replace_tables-5920"><a href="#replace_tables-5920"><span class="linenos">5920</span></a>
+</span><span id="replace_tables-5921"><a href="#replace_tables-5921"><span class="linenos">5921</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-5922"><a href="#replace_tables-5922"><span class="linenos">5922</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-5923"><a href="#replace_tables-5923"><span class="linenos">5923</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="replace_tables-5924"><a href="#replace_tables-5924"><span class="linenos">5924</span></a>
-</span><span id="replace_tables-5925"><a href="#replace_tables-5925"><span class="linenos">5925</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="replace_tables-5925"><a href="#replace_tables-5925"><span class="linenos">5925</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_tables-5926"><a href="#replace_tables-5926"><span class="linenos">5926</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="replace_tables-5927"><a href="#replace_tables-5927"><span class="linenos">5927</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
+</span><span id="replace_tables-5928"><a href="#replace_tables-5928"><span class="linenos">5928</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-5929"><a href="#replace_tables-5929"><span class="linenos">5929</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-5930"><a href="#replace_tables-5930"><span class="linenos">5930</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-5931"><a href="#replace_tables-5931"><span class="linenos">5931</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
+</span><span id="replace_tables-5932"><a href="#replace_tables-5932"><span class="linenos">5932</span></a> <span class="p">)</span>
+</span><span id="replace_tables-5933"><a href="#replace_tables-5933"><span class="linenos">5933</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-5934"><a href="#replace_tables-5934"><span class="linenos">5934</span></a>
+</span><span id="replace_tables-5935"><a href="#replace_tables-5935"><span class="linenos">5935</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
@@ -70566,40 +71005,40 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-5928"><a href="#replace_placeholders-5928"><span class="linenos">5928</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_placeholders-5929"><a href="#replace_placeholders-5929"><span class="linenos">5929</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-5930"><a href="#replace_placeholders-5930"><span class="linenos">5930</span></a>
-</span><span id="replace_placeholders-5931"><a href="#replace_placeholders-5931"><span class="linenos">5931</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-5932"><a href="#replace_placeholders-5932"><span class="linenos">5932</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-5933"><a href="#replace_placeholders-5933"><span class="linenos">5933</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-5934"><a href="#replace_placeholders-5934"><span class="linenos">5934</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-5935"><a href="#replace_placeholders-5935"><span class="linenos">5935</span></a>
-</span><span id="replace_placeholders-5936"><a href="#replace_placeholders-5936"><span class="linenos">5936</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-5937"><a href="#replace_placeholders-5937"><span class="linenos">5937</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-5938"><a href="#replace_placeholders-5938"><span class="linenos">5938</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-5939"><a href="#replace_placeholders-5939"><span class="linenos">5939</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="replace_placeholders-5940"><a href="#replace_placeholders-5940"><span class="linenos">5940</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
-</span><span id="replace_placeholders-5941"><a href="#replace_placeholders-5941"><span class="linenos">5941</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-5942"><a href="#replace_placeholders-5942"><span class="linenos">5942</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="replace_placeholders-5943"><a href="#replace_placeholders-5943"><span class="linenos">5943</span></a>
-</span><span id="replace_placeholders-5944"><a href="#replace_placeholders-5944"><span class="linenos">5944</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-5945"><a href="#replace_placeholders-5945"><span class="linenos">5945</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-5946"><a href="#replace_placeholders-5946"><span class="linenos">5946</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_placeholders-5947"><a href="#replace_placeholders-5947"><span class="linenos">5947</span></a>
-</span><span id="replace_placeholders-5948"><a href="#replace_placeholders-5948"><span class="linenos">5948</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_placeholders-5949"><a href="#replace_placeholders-5949"><span class="linenos">5949</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span>
-</span><span id="replace_placeholders-5950"><a href="#replace_placeholders-5950"><span class="linenos">5950</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
-</span><span id="replace_placeholders-5951"><a href="#replace_placeholders-5951"><span class="linenos">5951</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="replace_placeholders-5952"><a href="#replace_placeholders-5952"><span class="linenos">5952</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_placeholders-5953"><a href="#replace_placeholders-5953"><span class="linenos">5953</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="replace_placeholders-5954"><a href="#replace_placeholders-5954"><span class="linenos">5954</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-5955"><a href="#replace_placeholders-5955"><span class="linenos">5955</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-5956"><a href="#replace_placeholders-5956"><span class="linenos">5956</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
-</span><span id="replace_placeholders-5957"><a href="#replace_placeholders-5957"><span class="linenos">5957</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-5958"><a href="#replace_placeholders-5958"><span class="linenos">5958</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-5959"><a href="#replace_placeholders-5959"><span class="linenos">5959</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-5960"><a href="#replace_placeholders-5960"><span class="linenos">5960</span></a>
-</span><span id="replace_placeholders-5961"><a href="#replace_placeholders-5961"><span class="linenos">5961</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-5938"><a href="#replace_placeholders-5938"><span class="linenos">5938</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_placeholders-5939"><a href="#replace_placeholders-5939"><span class="linenos">5939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-5940"><a href="#replace_placeholders-5940"><span class="linenos">5940</span></a>
+</span><span id="replace_placeholders-5941"><a href="#replace_placeholders-5941"><span class="linenos">5941</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-5942"><a href="#replace_placeholders-5942"><span class="linenos">5942</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-5943"><a href="#replace_placeholders-5943"><span class="linenos">5943</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-5944"><a href="#replace_placeholders-5944"><span class="linenos">5944</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="replace_placeholders-5945"><a href="#replace_placeholders-5945"><span class="linenos">5945</span></a>
+</span><span id="replace_placeholders-5946"><a href="#replace_placeholders-5946"><span class="linenos">5946</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-5947"><a href="#replace_placeholders-5947"><span class="linenos">5947</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-5948"><a href="#replace_placeholders-5948"><span class="linenos">5948</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-5949"><a href="#replace_placeholders-5949"><span class="linenos">5949</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="replace_placeholders-5950"><a href="#replace_placeholders-5950"><span class="linenos">5950</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
+</span><span id="replace_placeholders-5951"><a href="#replace_placeholders-5951"><span class="linenos">5951</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-5952"><a href="#replace_placeholders-5952"><span class="linenos">5952</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="replace_placeholders-5953"><a href="#replace_placeholders-5953"><span class="linenos">5953</span></a>
+</span><span id="replace_placeholders-5954"><a href="#replace_placeholders-5954"><span class="linenos">5954</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-5955"><a href="#replace_placeholders-5955"><span class="linenos">5955</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-5956"><a href="#replace_placeholders-5956"><span class="linenos">5956</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-5957"><a href="#replace_placeholders-5957"><span class="linenos">5957</span></a>
+</span><span id="replace_placeholders-5958"><a href="#replace_placeholders-5958"><span class="linenos">5958</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_placeholders-5959"><a href="#replace_placeholders-5959"><span class="linenos">5959</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span>
+</span><span id="replace_placeholders-5960"><a href="#replace_placeholders-5960"><span class="linenos">5960</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
+</span><span id="replace_placeholders-5961"><a href="#replace_placeholders-5961"><span class="linenos">5961</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="replace_placeholders-5962"><a href="#replace_placeholders-5962"><span class="linenos">5962</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_placeholders-5963"><a href="#replace_placeholders-5963"><span class="linenos">5963</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="replace_placeholders-5964"><a href="#replace_placeholders-5964"><span class="linenos">5964</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-5965"><a href="#replace_placeholders-5965"><span class="linenos">5965</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-5966"><a href="#replace_placeholders-5966"><span class="linenos">5966</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
+</span><span id="replace_placeholders-5967"><a href="#replace_placeholders-5967"><span class="linenos">5967</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-5968"><a href="#replace_placeholders-5968"><span class="linenos">5968</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-5969"><a href="#replace_placeholders-5969"><span class="linenos">5969</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-5970"><a href="#replace_placeholders-5970"><span class="linenos">5970</span></a>
+</span><span id="replace_placeholders-5971"><a href="#replace_placeholders-5971"><span class="linenos">5971</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span></pre></div>
@@ -70647,39 +71086,39 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#expand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="expand-5964"><a href="#expand-5964"><span class="linenos">5964</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="expand-5965"><a href="#expand-5965"><span class="linenos">5965</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="expand-5966"><a href="#expand-5966"><span class="linenos">5966</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-5967"><a href="#expand-5967"><span class="linenos">5967</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Transforms an expression by expanding all referenced sources into subqueries.</span>
-</span><span id="expand-5968"><a href="#expand-5968"><span class="linenos">5968</span></a>
-</span><span id="expand-5969"><a href="#expand-5969"><span class="linenos">5969</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-5970"><a href="#expand-5970"><span class="linenos">5970</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-5971"><a href="#expand-5971"><span class="linenos">5971</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;)}).sql()</span>
-</span><span id="expand-5972"><a href="#expand-5972"><span class="linenos">5972</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-5973"><a href="#expand-5973"><span class="linenos">5973</span></a>
-</span><span id="expand-5974"><a href="#expand-5974"><span class="linenos">5974</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
-</span><span id="expand-5975"><a href="#expand-5975"><span class="linenos">5975</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
-</span><span id="expand-5976"><a href="#expand-5976"><span class="linenos">5976</span></a>
-</span><span id="expand-5977"><a href="#expand-5977"><span class="linenos">5977</span></a><span class="sd"> Args:</span>
-</span><span id="expand-5978"><a href="#expand-5978"><span class="linenos">5978</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-5979"><a href="#expand-5979"><span class="linenos">5979</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="expand-5980"><a href="#expand-5980"><span class="linenos">5980</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-5981"><a href="#expand-5981"><span class="linenos">5981</span></a>
-</span><span id="expand-5982"><a href="#expand-5982"><span class="linenos">5982</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-5983"><a href="#expand-5983"><span class="linenos">5983</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-5984"><a href="#expand-5984"><span class="linenos">5984</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="expand-5985"><a href="#expand-5985"><span class="linenos">5985</span></a>
-</span><span id="expand-5986"><a href="#expand-5986"><span class="linenos">5986</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="expand-5987"><a href="#expand-5987"><span class="linenos">5987</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
-</span><span id="expand-5988"><a href="#expand-5988"><span class="linenos">5988</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="expand-5989"><a href="#expand-5989"><span class="linenos">5989</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
-</span><span id="expand-5990"><a href="#expand-5990"><span class="linenos">5990</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-5991"><a href="#expand-5991"><span class="linenos">5991</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span>
-</span><span id="expand-5992"><a href="#expand-5992"><span class="linenos">5992</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">]</span>
-</span><span id="expand-5993"><a href="#expand-5993"><span class="linenos">5993</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="expand-5994"><a href="#expand-5994"><span class="linenos">5994</span></a> <span class="k">return</span> <span class="n">node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="expand-5974"><a href="#expand-5974"><span class="linenos">5974</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="expand-5975"><a href="#expand-5975"><span class="linenos">5975</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="expand-5976"><a href="#expand-5976"><span class="linenos">5976</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-5977"><a href="#expand-5977"><span class="linenos">5977</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Transforms an expression by expanding all referenced sources into subqueries.</span>
+</span><span id="expand-5978"><a href="#expand-5978"><span class="linenos">5978</span></a>
+</span><span id="expand-5979"><a href="#expand-5979"><span class="linenos">5979</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-5980"><a href="#expand-5980"><span class="linenos">5980</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-5981"><a href="#expand-5981"><span class="linenos">5981</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;)}).sql()</span>
+</span><span id="expand-5982"><a href="#expand-5982"><span class="linenos">5982</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="expand-5983"><a href="#expand-5983"><span class="linenos">5983</span></a>
+</span><span id="expand-5984"><a href="#expand-5984"><span class="linenos">5984</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
+</span><span id="expand-5985"><a href="#expand-5985"><span class="linenos">5985</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
+</span><span id="expand-5986"><a href="#expand-5986"><span class="linenos">5986</span></a>
+</span><span id="expand-5987"><a href="#expand-5987"><span class="linenos">5987</span></a><span class="sd"> Args:</span>
+</span><span id="expand-5988"><a href="#expand-5988"><span class="linenos">5988</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-5989"><a href="#expand-5989"><span class="linenos">5989</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="expand-5990"><a href="#expand-5990"><span class="linenos">5990</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="expand-5991"><a href="#expand-5991"><span class="linenos">5991</span></a>
+</span><span id="expand-5992"><a href="#expand-5992"><span class="linenos">5992</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-5993"><a href="#expand-5993"><span class="linenos">5993</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-5994"><a href="#expand-5994"><span class="linenos">5994</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="expand-5995"><a href="#expand-5995"><span class="linenos">5995</span></a>
-</span><span id="expand-5996"><a href="#expand-5996"><span class="linenos">5996</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="expand-5996"><a href="#expand-5996"><span class="linenos">5996</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="expand-5997"><a href="#expand-5997"><span class="linenos">5997</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
+</span><span id="expand-5998"><a href="#expand-5998"><span class="linenos">5998</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="expand-5999"><a href="#expand-5999"><span class="linenos">5999</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="expand-6000"><a href="#expand-6000"><span class="linenos">6000</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-6001"><a href="#expand-6001"><span class="linenos">6001</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span>
+</span><span id="expand-6002"><a href="#expand-6002"><span class="linenos">6002</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">]</span>
+</span><span id="expand-6003"><a href="#expand-6003"><span class="linenos">6003</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="expand-6004"><a href="#expand-6004"><span class="linenos">6004</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-6005"><a href="#expand-6005"><span class="linenos">6005</span></a>
+</span><span id="expand-6006"><a href="#expand-6006"><span class="linenos">6006</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
@@ -70730,51 +71169,51 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="func-5999"><a href="#func-5999"><span class="linenos">5999</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="func-6000"><a href="#func-6000"><span class="linenos">6000</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-6001"><a href="#func-6001"><span class="linenos">6001</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-6002"><a href="#func-6002"><span class="linenos">6002</span></a>
-</span><span id="func-6003"><a href="#func-6003"><span class="linenos">6003</span></a><span class="sd"> Examples:</span>
-</span><span id="func-6004"><a href="#func-6004"><span class="linenos">6004</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-6005"><a href="#func-6005"><span class="linenos">6005</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-6006"><a href="#func-6006"><span class="linenos">6006</span></a>
-</span><span id="func-6007"><a href="#func-6007"><span class="linenos">6007</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
-</span><span id="func-6008"><a href="#func-6008"><span class="linenos">6008</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-6009"><a href="#func-6009"><span class="linenos">6009</span></a>
-</span><span id="func-6010"><a href="#func-6010"><span class="linenos">6010</span></a><span class="sd"> Args:</span>
-</span><span id="func-6011"><a href="#func-6011"><span class="linenos">6011</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-6012"><a href="#func-6012"><span class="linenos">6012</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-6013"><a href="#func-6013"><span class="linenos">6013</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-6014"><a href="#func-6014"><span class="linenos">6014</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-6015"><a href="#func-6015"><span class="linenos">6015</span></a>
-</span><span id="func-6016"><a href="#func-6016"><span class="linenos">6016</span></a><span class="sd"> Note:</span>
-</span><span id="func-6017"><a href="#func-6017"><span class="linenos">6017</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="func-6018"><a href="#func-6018"><span class="linenos">6018</span></a>
-</span><span id="func-6019"><a href="#func-6019"><span class="linenos">6019</span></a><span class="sd"> Returns:</span>
-</span><span id="func-6020"><a href="#func-6020"><span class="linenos">6020</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
-</span><span id="func-6021"><a href="#func-6021"><span class="linenos">6021</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-6022"><a href="#func-6022"><span class="linenos">6022</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-6023"><a href="#func-6023"><span class="linenos">6023</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span>
-</span><span id="func-6024"><a href="#func-6024"><span class="linenos">6024</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t use both args and kwargs to instantiate a function.&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-6009"><a href="#func-6009"><span class="linenos">6009</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="func-6010"><a href="#func-6010"><span class="linenos">6010</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-6011"><a href="#func-6011"><span class="linenos">6011</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-6012"><a href="#func-6012"><span class="linenos">6012</span></a>
+</span><span id="func-6013"><a href="#func-6013"><span class="linenos">6013</span></a><span class="sd"> Examples:</span>
+</span><span id="func-6014"><a href="#func-6014"><span class="linenos">6014</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-6015"><a href="#func-6015"><span class="linenos">6015</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="func-6016"><a href="#func-6016"><span class="linenos">6016</span></a>
+</span><span id="func-6017"><a href="#func-6017"><span class="linenos">6017</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
+</span><span id="func-6018"><a href="#func-6018"><span class="linenos">6018</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-6019"><a href="#func-6019"><span class="linenos">6019</span></a>
+</span><span id="func-6020"><a href="#func-6020"><span class="linenos">6020</span></a><span class="sd"> Args:</span>
+</span><span id="func-6021"><a href="#func-6021"><span class="linenos">6021</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-6022"><a href="#func-6022"><span class="linenos">6022</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-6023"><a href="#func-6023"><span class="linenos">6023</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-6024"><a href="#func-6024"><span class="linenos">6024</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
</span><span id="func-6025"><a href="#func-6025"><span class="linenos">6025</span></a>
-</span><span id="func-6026"><a href="#func-6026"><span class="linenos">6026</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="func-6027"><a href="#func-6027"><span class="linenos">6027</span></a>
-</span><span id="func-6028"><a href="#func-6028"><span class="linenos">6028</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
-</span><span id="func-6029"><a href="#func-6029"><span class="linenos">6029</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="func-6030"><a href="#func-6030"><span class="linenos">6030</span></a>
-</span><span id="func-6031"><a href="#func-6031"><span class="linenos">6031</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
-</span><span id="func-6032"><a href="#func-6032"><span class="linenos">6032</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="func-6033"><a href="#func-6033"><span class="linenos">6033</span></a>
-</span><span id="func-6034"><a href="#func-6034"><span class="linenos">6034</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="func-6035"><a href="#func-6035"><span class="linenos">6035</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="func-6036"><a href="#func-6036"><span class="linenos">6036</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-6037"><a href="#func-6037"><span class="linenos">6037</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span>
-</span><span id="func-6038"><a href="#func-6038"><span class="linenos">6038</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="func-6039"><a href="#func-6039"><span class="linenos">6039</span></a>
-</span><span id="func-6040"><a href="#func-6040"><span class="linenos">6040</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span>
-</span><span id="func-6041"><a href="#func-6041"><span class="linenos">6041</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span>
-</span><span id="func-6042"><a href="#func-6042"><span class="linenos">6042</span></a>
-</span><span id="func-6043"><a href="#func-6043"><span class="linenos">6043</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="func-6026"><a href="#func-6026"><span class="linenos">6026</span></a><span class="sd"> Note:</span>
+</span><span id="func-6027"><a href="#func-6027"><span class="linenos">6027</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="func-6028"><a href="#func-6028"><span class="linenos">6028</span></a>
+</span><span id="func-6029"><a href="#func-6029"><span class="linenos">6029</span></a><span class="sd"> Returns:</span>
+</span><span id="func-6030"><a href="#func-6030"><span class="linenos">6030</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
+</span><span id="func-6031"><a href="#func-6031"><span class="linenos">6031</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-6032"><a href="#func-6032"><span class="linenos">6032</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-6033"><a href="#func-6033"><span class="linenos">6033</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span>
+</span><span id="func-6034"><a href="#func-6034"><span class="linenos">6034</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t use both args and kwargs to instantiate a function.&quot;</span><span class="p">)</span>
+</span><span id="func-6035"><a href="#func-6035"><span class="linenos">6035</span></a>
+</span><span id="func-6036"><a href="#func-6036"><span class="linenos">6036</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
+</span><span id="func-6037"><a href="#func-6037"><span class="linenos">6037</span></a>
+</span><span id="func-6038"><a href="#func-6038"><span class="linenos">6038</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
+</span><span id="func-6039"><a href="#func-6039"><span class="linenos">6039</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="func-6040"><a href="#func-6040"><span class="linenos">6040</span></a>
+</span><span id="func-6041"><a href="#func-6041"><span class="linenos">6041</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
+</span><span id="func-6042"><a href="#func-6042"><span class="linenos">6042</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="func-6043"><a href="#func-6043"><span class="linenos">6043</span></a>
+</span><span id="func-6044"><a href="#func-6044"><span class="linenos">6044</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="func-6045"><a href="#func-6045"><span class="linenos">6045</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="func-6046"><a href="#func-6046"><span class="linenos">6046</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-6047"><a href="#func-6047"><span class="linenos">6047</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span>
+</span><span id="func-6048"><a href="#func-6048"><span class="linenos">6048</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="func-6049"><a href="#func-6049"><span class="linenos">6049</span></a>
+</span><span id="func-6050"><a href="#func-6050"><span class="linenos">6050</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span>
+</span><span id="func-6051"><a href="#func-6051"><span class="linenos">6051</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span>
+</span><span id="func-6052"><a href="#func-6052"><span class="linenos">6052</span></a>
+</span><span id="func-6053"><a href="#func-6053"><span class="linenos">6053</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -70832,11 +71271,11 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#true"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="true-6046"><a href="#true-6046"><span class="linenos">6046</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="true-6047"><a href="#true-6047"><span class="linenos">6047</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-6048"><a href="#true-6048"><span class="linenos">6048</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-6049"><a href="#true-6049"><span class="linenos">6049</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-6050"><a href="#true-6050"><span class="linenos">6050</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="true-6056"><a href="#true-6056"><span class="linenos">6056</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="true-6057"><a href="#true-6057"><span class="linenos">6057</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-6058"><a href="#true-6058"><span class="linenos">6058</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-6059"><a href="#true-6059"><span class="linenos">6059</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-6060"><a href="#true-6060"><span class="linenos">6060</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></pre></div>
@@ -70856,11 +71295,11 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#false"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="false-6053"><a href="#false-6053"><span class="linenos">6053</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="false-6054"><a href="#false-6054"><span class="linenos">6054</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-6055"><a href="#false-6055"><span class="linenos">6055</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-6056"><a href="#false-6056"><span class="linenos">6056</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-6057"><a href="#false-6057"><span class="linenos">6057</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="false-6063"><a href="#false-6063"><span class="linenos">6063</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="false-6064"><a href="#false-6064"><span class="linenos">6064</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-6065"><a href="#false-6065"><span class="linenos">6065</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-6066"><a href="#false-6066"><span class="linenos">6066</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-6067"><a href="#false-6067"><span class="linenos">6067</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span></pre></div>
@@ -70880,11 +71319,11 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="null-6060"><a href="#null-6060"><span class="linenos">6060</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
-</span><span id="null-6061"><a href="#null-6061"><span class="linenos">6061</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-6062"><a href="#null-6062"><span class="linenos">6062</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-6063"><a href="#null-6063"><span class="linenos">6063</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-6064"><a href="#null-6064"><span class="linenos">6064</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="null-6070"><a href="#null-6070"><span class="linenos">6070</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
+</span><span id="null-6071"><a href="#null-6071"><span class="linenos">6071</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-6072"><a href="#null-6072"><span class="linenos">6072</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-6073"><a href="#null-6073"><span class="linenos">6073</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-6074"><a href="#null-6074"><span class="linenos">6074</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>