summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/expressions.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sqlglot/expressions.html')
-rw-r--r--docs/sqlglot/expressions.html6515
1 files changed, 3442 insertions, 3073 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index 439d9fa..44f2136 100644
--- a/docs/sqlglot/expressions.html
+++ b/docs/sqlglot/expressions.html
@@ -4803,6 +4803,33 @@
</li>
<li>
+ <a class="class" href="#ExplodeOuter">ExplodeOuter</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#ExplodeOuter.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#Posexplode">Posexplode</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#Posexplode.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#PosexplodeOuter">PosexplodeOuter</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#PosexplodeOuter.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Floor">Floor</a>
<ul class="memberlist">
<li>
@@ -4983,6 +5010,18 @@
</li>
<li>
+ <a class="class" href="#JSONSchema">JSONSchema</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#JSONSchema.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#JSONSchema.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#JSONTable">JSONTable</a>
<ul class="memberlist">
<li>
@@ -5352,15 +5391,6 @@
</li>
<li>
- <a class="class" href="#Posexplode">Posexplode</a>
- <ul class="memberlist">
- <li>
- <a class="variable" href="#Posexplode.key">key</a>
- </li>
- </ul>
-
- </li>
- <li>
<a class="class" href="#Predict">Predict</a>
<ul class="memberlist">
<li>
@@ -6756,7 +6786,7 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</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-489"><a href="#L-489"><span class="linenos"> 489</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-490"><a href="#L-490"><span class="linenos"> 490</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-490"><a href="#L-490"><span class="linenos"> 490</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="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a>
</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</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-493"><a href="#L-493"><span class="linenos"> 493</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>
@@ -10555,7 +10585,7 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a>
</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a>
</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a>
</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a> <span class="nd">@property</span>
</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</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>
@@ -10807,1883 +10837,1895 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a> <span class="k">pass</span>
</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a>
</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a>
-</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a> <span class="k">pass</span>
</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a>
</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a>
-</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a> <span class="k">pass</span>
</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a>
</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a>
-</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">):</span>
</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a> <span class="k">pass</span>
</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a>
</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a>
-</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a>
</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a>
-</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a>
-</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a> <span class="k">pass</span>
+</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a>
</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a>
-</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a>
-</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a> <span class="k">pass</span>
+</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a> <span class="k">pass</span>
+</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a>
</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a>
-</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a>
-</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a>
</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</span></a>
-</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a>
</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a>
-</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="k">pass</span>
</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a>
</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a>
-</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a>
</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a>
-</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="k">pass</span>
+</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a>
</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a>
-</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a>
</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a>
-</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="p">}</span>
-</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a>
-</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</span></a>
-</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAY.html</span>
-</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a> <span class="p">}</span>
-</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a>
-</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a>
-</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAYAGG.html</span>
-</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a> <span class="p">}</span>
-</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a>
+</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a>
+</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a>
+</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="k">pass</span>
+</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a>
+</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a>
+</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a>
+</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a>
+</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a> <span class="p">}</span>
+</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a>
+</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a>
+</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAY.html</span>
+</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a> <span class="p">}</span>
</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</span></a>
-</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
-</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a><span class="c1"># Note: parsing of JSON column definitions is currently incomplete.</span>
-</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a>
-</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a>
-</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a><span class="c1"># # https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
-</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a> <span class="p">}</span>
-</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a>
+</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a>
+</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAYAGG.html</span>
+</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="p">}</span>
+</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a>
+</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a>
+</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
+</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a><span class="c1"># Note: parsing of JSON column definitions is currently incomplete.</span>
+</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a>
-</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a>
+</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a>
+</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a>
-</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a>
-</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a>
-</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
-</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a>
-</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a>
-</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
+</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a>
+</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a><span class="c1"># # https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
+</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="p">}</span>
</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</span></a>
</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</span></a>
-</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a>
</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a>
-</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT&quot;</span><span class="p">]</span>
+</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a>
</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a>
-</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a>
</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a>
-</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
+</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a>
</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a>
-</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a>
-</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of</span>
-</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
-</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a>
-</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a>
-</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
-</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
-</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a>
+</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a>
+</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a>
+</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT&quot;</span><span class="p">]</span>
+</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a>
+</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a>
+</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a>
-</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a>
+</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a>
+</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a>
-</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a>
-</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a>
-</span><span id="L-4690"><a href="#L-4690"><span class="linenos">4690</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a>
-</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a>
-</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a>
+</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of</span>
+</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+</span><span id="L-4690"><a href="#L-4690"><span class="linenos">4690</span></a>
+</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a>
+</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
+</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
+</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a>
</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a>
-</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a>
-</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="s2">&quot;ins_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="s2">&quot;del_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="s2">&quot;sub_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a> <span class="p">}</span>
-</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a>
-</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a>
-</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a> <span class="k">pass</span>
-</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a>
-</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a>
-</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a>
-</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a>
-</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a> <span class="k">pass</span>
-</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a>
-</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a>
-</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="k">pass</span>
+</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a>
+</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a>
+</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a>
+</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a>
+</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a>
+</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a>
+</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a>
+</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a>
+</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="s2">&quot;ins_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a> <span class="s2">&quot;del_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a> <span class="s2">&quot;sub_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="p">}</span>
</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a>
</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a>
-</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
+</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a> <span class="k">pass</span>
</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a>
</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a>
-</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
+</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a>
</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a>
-</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
+</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a> <span class="k">pass</span>
</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a>
</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a>
-</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a> <span class="k">pass</span>
</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a>
</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a>
-</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a> <span class="k">pass</span>
+</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a>
</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a>
-</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="k">pass</span>
+</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a>
</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a>
-</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
+</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a>
</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a>
-</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="nd">@property</span>
-</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a> <span class="k">def</span> <span class="nf">keys</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-4754"><a href="#L-4754"><span class="linenos">4754</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a>
</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a>
-</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a> <span class="nd">@property</span>
-</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a> <span class="k">def</span> <span class="nf">values</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-4758"><a href="#L-4758"><span class="linenos">4758</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a> <span class="k">pass</span>
+</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a>
</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a>
-</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a>
-</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
-</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a>
-</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a>
-</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a>
-</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a>
-</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
-</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a>
-</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a>
-</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a><span class="c1"># Represents the variant of the MD5 function that returns a binary value</span>
-</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
-</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a>
-</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a>
-</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a>
-</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a>
-</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a> <span class="k">pass</span>
-</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a>
-</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a>
-</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a>
-</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a>
-</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a> <span class="k">pass</span>
+</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="k">pass</span>
+</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a>
+</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a>
+</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a>
+</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a> <span class="nd">@property</span>
+</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a> <span class="k">def</span> <span class="nf">keys</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-4770"><a href="#L-4770"><span class="linenos">4770</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a>
+</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a> <span class="nd">@property</span>
+</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="k">def</span> <span class="nf">values</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-4774"><a href="#L-4774"><span class="linenos">4774</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a>
+</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a>
+</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
+</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a>
+</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a>
+</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a>
+</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a>
+</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
+</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a>
+</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a>
+</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a><span class="c1"># Represents the variant of the MD5 function that returns a binary value</span>
+</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a>
</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a>
-</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a>
-</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-predict#mlpredict_function</span>
-</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a>
</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a>
-</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a>
-</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
+</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> <span class="k">pass</span>
+</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a>
</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a>
-</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a>
-</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a>
</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a>
-</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a>
-</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-predict#mlpredict_function</span>
+</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a>
</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a>
-</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a>
</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a>
-</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span>
-</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a>
</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a>
-</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;each&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a>
</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a>
-</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
-</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a>
-</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a>
-</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;initial&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;merge&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;finish&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a>
-</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a>
-</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="p">}</span>
-</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a>
+</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a>
+</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a>
+</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span>
+</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a>
+</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a>
+</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;each&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a>
+</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a>
+</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
+</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a>
+</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a>
+</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;initial&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;merge&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;finish&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a>
-</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a>
+</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a> <span class="p">}</span>
-</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a>
+</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a> <span class="p">}</span>
</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a>
-</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a>
-</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 class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a>
-</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a>
-</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
-</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
-</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</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><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</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><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 class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a>
-</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 class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">arg_types</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-4858"><a href="#L-4858"><span class="linenos">4858</span></a>
+</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a> <span class="p">}</span>
+</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a>
+</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 class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</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><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</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><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
+</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
+</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a>
</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a>
-</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</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><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a>
-</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> <span class="k">pass</span>
+</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a>
</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a>
-</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="n">arg_types</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-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><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a>
</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a>
-</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a>
-</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a> <span class="k">pass</span>
+</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a>
</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">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a>
</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a>
-</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a>
-</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
-</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
-</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</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><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a>
-</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a>
-</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
-</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</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><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a> <span class="s2">&quot;substr&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a> <span class="s2">&quot;instance&quot;</span><span class="p">:</span> <span class="kc">False</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><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="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
+</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a>
+</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a>
+</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a>
+</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a>
+</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a>
+</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
+</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
+</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a>
+</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="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a>
+</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a>
+</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
+</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</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><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="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a>
-</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a>
-</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a><span class="c1"># Spark allows unix_timestamp()</span>
-</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a><span class="c1"># https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html</span>
-</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a>
-</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a>
-</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a><span class="c1"># https://prestodb.io/docs/current/functions/string.html</span>
-</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#str_to_map</span>
-</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</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><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a> <span class="s2">&quot;substr&quot;</span><span class="p">:</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="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a> <span class="s2">&quot;instance&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a> <span class="p">}</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">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</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><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a>
+</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a>
+</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a><span class="c1"># Spark allows unix_timestamp()</span>
+</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a><span class="c1"># https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html</span>
+</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</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="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a>
-</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a>
-</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a>
-</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a>
-</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a>
+</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a><span class="c1"># https://prestodb.io/docs/current/functions/string.html</span>
+</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#str_to_map</span>
+</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a> <span class="p">}</span>
+</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a>
</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><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a>
</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><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/insert</span>
-</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
-</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a>
+</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</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="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a> <span class="k">pass</span>
-</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a>
+</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a>
+</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</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><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a> <span class="k">pass</span>
-</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a>
-</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="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a> <span class="k">pass</span>
+</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a>
+</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/insert</span>
+</span><span id="L-4989"><a href="#L-4989"><span class="linenos">4989</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
+</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a>
</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">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a> <span class="k">pass</span>
</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a>
</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="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a> <span class="k">pass</span>
</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a>
</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a>
-</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a> <span class="k">pass</span>
</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a>
</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a>
-</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a> <span class="k">pass</span>
</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a>
</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a>
-</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a> <span class="k">pass</span>
</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a>
</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a>
-</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="k">pass</span>
+</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><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">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a> <span class="k">pass</span>
</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a>
</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a>
-</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="k">pass</span>
</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a>
</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a>
-</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> <span class="s2">&quot;collation&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="p">}</span>
+</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a> <span class="k">pass</span>
+</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
+</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a>
+</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> <span class="k">pass</span>
+</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a>
</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a>
-</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a>
-</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="k">pass</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><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 class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a> <span class="k">pass</span>
-</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a>
-</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 class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a> <span class="s2">&quot;collation&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a> <span class="p">}</span>
</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a>
</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">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a> <span class="k">pass</span>
+</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</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><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a> <span class="k">pass</span>
</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><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a>
</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a>
-</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
-</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
-</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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="n">SECONDS</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="s2">&quot;seconds&quot;</span><span class="p">)</span>
-</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a> <span class="n">MILLIS</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="s2">&quot;millis&quot;</span><span class="p">)</span>
-</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a> <span class="n">MICROS</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="s2">&quot;micros&quot;</span><span class="p">)</span>
-</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a>
-</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">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a> <span class="k">pass</span>
-</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><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</span>
+</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a> <span class="k">pass</span>
+</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a>
+</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="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a> <span class="k">pass</span>
+</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a>
+</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a>
+</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a>
+</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 class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
+</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
+</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a>
-</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a>
-</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE&quot;</span><span class="p">,</span> <span class="s2">&quot;VARIANCE_SAMP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_SAMP&quot;</span><span class="p">]</span>
+</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a> <span class="n">SECONDS</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="s2">&quot;seconds&quot;</span><span class="p">)</span>
+</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a> <span class="n">MILLIS</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="s2">&quot;millis&quot;</span><span class="p">)</span>
+</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a> <span class="n">MICROS</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="s2">&quot;micros&quot;</span><span class="p">)</span>
</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a>
</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 class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
+</span><span id="L-5081"><a href="#L-5081"><span class="linenos">5081</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a> <span class="k">pass</span>
</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a>
</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a>
-</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</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><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;passing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;by_ref&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE&quot;</span><span class="p">,</span> <span class="s2">&quot;VARIANCE_SAMP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_SAMP&quot;</span><span class="p">]</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><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a> <span class="k">pass</span>
+</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a>
</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">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</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><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;passing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;by_ref&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a>
</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a>
-</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;matched&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;then&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="k">pass</span>
</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a>
</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 class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
-</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a>
-</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a>
-</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a><span class="k">def</span> <span class="nf">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">):</span>
-</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">str</span> <span class="k">else</span> <span class="n">arg</span>
-</span><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</span></a>
-</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="n">ALL_FUNCTIONS</span> <span class="o">=</span> <span class="n">subclasses</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">Func</span><span class="p">,</span> <span class="p">(</span><span class="n">AggFunc</span><span class="p">,</span> <span class="n">Anonymous</span><span class="p">,</span> <span class="n">Func</span><span class="p">))</span>
+</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a>
+</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a>
+</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;matched&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;then&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a>
-</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a><span class="c1"># Helpers</span>
-</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a> <span class="n">into</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><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</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-5129"><a href="#L-5129"><span class="linenos">5129</span></a> <span class="n">prefix</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-5130"><a href="#L-5130"><span class="linenos">5130</span></a> <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><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a> <span class="o">...</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><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">E</span><span class="p">,</span>
-</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a> <span class="n">into</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">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5141"><a href="#L-5141"><span class="linenos">5141</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-5142"><a href="#L-5142"><span class="linenos">5142</span></a> <span class="n">prefix</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-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <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><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a> <span class="o">...</span>
+</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
+</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a>
+</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 class="k">def</span> <span class="nf">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">):</span>
+</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">str</span> <span class="k">else</span> <span class="n">arg</span>
+</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a>
+</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a>
+</span><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</span></a><span class="n">ALL_FUNCTIONS</span> <span class="o">=</span> <span class="n">subclasses</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">Func</span><span class="p">,</span> <span class="p">(</span><span class="n">AggFunc</span><span class="p">,</span> <span class="n">Anonymous</span><span class="p">,</span> <span class="n">Func</span><span class="p">))</span>
+</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a>
+</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a>
+</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a><span class="c1"># Helpers</span>
+</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a> <span class="n">into</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><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</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-5141"><a href="#L-5141"><span class="linenos">5141</span></a> <span class="n">prefix</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-5142"><a href="#L-5142"><span class="linenos">5142</span></a> <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><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a> <span class="o">...</span>
+</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a>
</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</span></a>
-</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a>
+</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-5149"><a href="#L-5149"><span class="linenos">5149</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">E</span><span class="p">,</span>
</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a> <span class="o">*</span><span class="p">,</span>
</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a> <span class="n">into</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">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</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-5154"><a href="#L-5154"><span class="linenos">5154</span></a> <span class="n">prefix</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-5155"><a href="#L-5155"><span class="linenos">5155</span></a> <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><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a> <span class="o">...</span>
</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="sd"> Example:</span>
-</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</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"> Args:</span>
-</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5174"><a href="#L-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="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a>
-</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a>
-</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</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="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
-</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a>
-</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a>
-</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span>
-</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a>
-</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</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-5195"><a href="#L-5195"><span class="linenos">5195</span></a>
+</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a>
+</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a> <span class="n">into</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">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</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-5166"><a href="#L-5166"><span class="linenos">5166</span></a> <span class="n">prefix</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-5167"><a href="#L-5167"><span class="linenos">5167</span></a> <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><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a>
+</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a><span class="sd"> Args:</span>
+</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a>
+</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a> <span class="k">return</span> <span class="n">sql_or_expression</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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</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-5199"><a href="#L-5199"><span class="linenos">5199</span></a> <span class="o">...</span>
-</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a>
+</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
+</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a>
+</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a>
-</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</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-5204"><a href="#L-5204"><span class="linenos">5204</span></a> <span class="o">...</span>
+</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span>
+</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a>
-</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a>
-</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</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-5208"><a href="#L-5208"><span class="linenos">5208</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-5209"><a href="#L-5209"><span class="linenos">5209</span></a>
-</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a>
-</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</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-5212"><a href="#L-5212"><span class="linenos">5212</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-5206"><a href="#L-5206"><span class="linenos">5206</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-5207"><a href="#L-5207"><span class="linenos">5207</span></a>
+</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a>
+</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</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-5211"><a href="#L-5211"><span class="linenos">5211</span></a> <span class="o">...</span>
+</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</span></a>
</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a>
-</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a>
-</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
-</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a><span class="p">):</span>
-</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</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-5227"><a href="#L-5227"><span class="linenos">5227</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="n">into_arg</span><span class="p">:</span> <span class="n">expression</span><span class="p">})</span>
-</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</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-5229"><a href="#L-5229"><span class="linenos">5229</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-5230"><a href="#L-5230"><span class="linenos">5230</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-5231"><a href="#L-5231"><span class="linenos">5231</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a> <span class="p">)</span>
-</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</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-5237"><a href="#L-5237"><span class="linenos">5237</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a>
-</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a>
-</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5247"><a href="#L-5247"><span class="linenos">5247</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5250"><a href="#L-5250"><span class="linenos">5250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a><span class="p">):</span>
-</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</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-5253"><a href="#L-5253"><span class="linenos">5253</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</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-5255"><a href="#L-5255"><span class="linenos">5255</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-5256"><a href="#L-5256"><span class="linenos">5256</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-5257"><a href="#L-5257"><span class="linenos">5257</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-5258"><a href="#L-5258"><span class="linenos">5258</span></a>
-</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</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-5260"><a href="#L-5260"><span class="linenos">5260</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a> <span class="p">)</span>
-</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</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-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="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-5269"><a href="#L-5269"><span class="linenos">5269</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-5270"><a href="#L-5270"><span class="linenos">5270</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-5271"><a href="#L-5271"><span class="linenos">5271</span></a>
-</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</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-5273"><a href="#L-5273"><span class="linenos">5273</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-5274"><a href="#L-5274"><span class="linenos">5274</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-5275"><a href="#L-5275"><span class="linenos">5275</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-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="k">return</span> <span class="n">instance</span>
-</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a>
+</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</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-5216"><a href="#L-5216"><span class="linenos">5216</span></a> <span class="o">...</span>
+</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a>
+</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a>
+</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</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-5220"><a href="#L-5220"><span class="linenos">5220</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-5221"><a href="#L-5221"><span class="linenos">5221</span></a>
+</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a>
+</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</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-5224"><a href="#L-5224"><span class="linenos">5224</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-5225"><a href="#L-5225"><span class="linenos">5225</span></a>
+</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a>
+</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a> <span class="n">into</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">dialect</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">into_arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</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><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</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-5239"><a href="#L-5239"><span class="linenos">5239</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="n">into_arg</span><span class="p">:</span> <span class="n">expression</span><span class="p">})</span>
+</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</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-5241"><a href="#L-5241"><span class="linenos">5241</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-5242"><a href="#L-5242"><span class="linenos">5242</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-5243"><a href="#L-5243"><span class="linenos">5243</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a> <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="p">)</span>
+</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</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-5249"><a href="#L-5249"><span class="linenos">5249</span></a> <span class="k">return</span> <span class="n">instance</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">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</span></a><span class="p">):</span>
+</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</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-5265"><a href="#L-5265"><span class="linenos">5265</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</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-5267"><a href="#L-5267"><span class="linenos">5267</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-5268"><a href="#L-5268"><span class="linenos">5268</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-5269"><a href="#L-5269"><span class="linenos">5269</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-5270"><a href="#L-5270"><span class="linenos">5270</span></a>
+</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</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-5272"><a href="#L-5272"><span class="linenos">5272</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a> <span class="p">)</span>
+</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</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-5279"><a href="#L-5279"><span class="linenos">5279</span></a>
-</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</span></a><span class="p">):</span>
-</span><span id="L-5291"><a href="#L-5291"><span class="linenos">5291</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-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="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</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-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a> <span class="p">)</span>
-</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</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-5302"><a href="#L-5302"><span class="linenos">5302</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-5303"><a href="#L-5303"><span class="linenos">5303</span></a> <span class="p">]</span>
+</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</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-5281"><a href="#L-5281"><span class="linenos">5281</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-5282"><a href="#L-5282"><span class="linenos">5282</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-5283"><a href="#L-5283"><span class="linenos">5283</span></a>
+</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</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-5285"><a href="#L-5285"><span class="linenos">5285</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-5286"><a href="#L-5286"><span class="linenos">5286</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-5287"><a href="#L-5287"><span class="linenos">5287</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-5288"><a href="#L-5288"><span class="linenos">5288</span></a>
+</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</span></a>
+</span><span id="L-5291"><a href="#L-5291"><span class="linenos">5291</span></a>
+</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</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="kc">None</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 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-5304"><a href="#L-5304"><span class="linenos">5304</span></a>
-</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</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-5306"><a href="#L-5306"><span class="linenos">5306</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-5307"><a href="#L-5307"><span class="linenos">5307</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-5308"><a href="#L-5308"><span class="linenos">5308</span></a>
-</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</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-5310"><a href="#L-5310"><span class="linenos">5310</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a>
-</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="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a><span class="p">):</span>
-</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</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-5324"><a href="#L-5324"><span class="linenos">5324</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-5325"><a href="#L-5325"><span class="linenos">5325</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a>
-</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</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-5328"><a href="#L-5328"><span class="linenos">5328</span></a>
-</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</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-5330"><a href="#L-5330"><span class="linenos">5330</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-5331"><a href="#L-5331"><span class="linenos">5331</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-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 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-5334"><a href="#L-5334"><span class="linenos">5334</span></a>
-</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</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-5336"><a href="#L-5336"><span class="linenos">5336</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a>
+</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-5306"><a href="#L-5306"><span class="linenos">5306</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</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-5308"><a href="#L-5308"><span class="linenos">5308</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a> <span class="p">)</span>
+</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</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-5314"><a href="#L-5314"><span class="linenos">5314</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-5315"><a href="#L-5315"><span class="linenos">5315</span></a> <span class="p">]</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="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-5318"><a href="#L-5318"><span class="linenos">5318</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-5319"><a href="#L-5319"><span class="linenos">5319</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-5320"><a href="#L-5320"><span class="linenos">5320</span></a>
+</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</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-5322"><a href="#L-5322"><span class="linenos">5322</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a>
+</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a>
+</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a><span class="p">):</span>
+</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</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-5336"><a href="#L-5336"><span class="linenos">5336</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-5337"><a href="#L-5337"><span class="linenos">5337</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a>
-</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
-</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</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-5344"><a href="#L-5344"><span class="linenos">5344</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-5345"><a href="#L-5345"><span class="linenos">5345</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-5346"><a href="#L-5346"><span class="linenos">5346</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-5347"><a href="#L-5347"><span class="linenos">5347</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</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-5350"><a href="#L-5350"><span class="linenos">5350</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-5351"><a href="#L-5351"><span class="linenos">5351</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-5352"><a href="#L-5352"><span class="linenos">5352</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</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-5356"><a href="#L-5356"><span class="linenos">5356</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</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-5360"><a href="#L-5360"><span class="linenos">5360</span></a> <span class="p">)</span>
-</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a>
-</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="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
-</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</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-5365"><a href="#L-5365"><span class="linenos">5365</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-5366"><a href="#L-5366"><span class="linenos">5366</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-5367"><a href="#L-5367"><span class="linenos">5367</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-5368"><a href="#L-5368"><span class="linenos">5368</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</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">Expression</span><span class="p">:</span>
-</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</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-5372"><a href="#L-5372"><span class="linenos">5372</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-5373"><a href="#L-5373"><span class="linenos">5373</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-5374"><a href="#L-5374"><span class="linenos">5374</span></a> <span class="p">]</span>
-</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a>
-</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</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-5377"><a href="#L-5377"><span class="linenos">5377</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</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-5379"><a href="#L-5379"><span class="linenos">5379</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-5380"><a href="#L-5380"><span class="linenos">5380</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-5381"><a href="#L-5381"><span class="linenos">5381</span></a>
-</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a> <span class="k">return</span> <span class="n">this</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><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</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-5386"><a href="#L-5386"><span class="linenos">5386</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-5339"><a href="#L-5339"><span class="linenos">5339</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-5340"><a href="#L-5340"><span class="linenos">5340</span></a>
+</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</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-5342"><a href="#L-5342"><span class="linenos">5342</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-5343"><a href="#L-5343"><span class="linenos">5343</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-5344"><a href="#L-5344"><span class="linenos">5344</span></a>
+</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</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-5346"><a href="#L-5346"><span class="linenos">5346</span></a>
+</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</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-5348"><a href="#L-5348"><span class="linenos">5348</span></a> <span class="k">return</span> <span class="n">inst</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><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
+</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</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-5356"><a href="#L-5356"><span class="linenos">5356</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-5357"><a href="#L-5357"><span class="linenos">5357</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-5358"><a href="#L-5358"><span class="linenos">5358</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-5359"><a href="#L-5359"><span class="linenos">5359</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</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-5362"><a href="#L-5362"><span class="linenos">5362</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-5363"><a href="#L-5363"><span class="linenos">5363</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-5364"><a href="#L-5364"><span class="linenos">5364</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="L-5366"><a href="#L-5366"><span class="linenos">5366</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</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-5368"><a href="#L-5368"><span class="linenos">5368</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</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-5372"><a href="#L-5372"><span class="linenos">5372</span></a> <span class="p">)</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><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
+</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</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-5377"><a href="#L-5377"><span class="linenos">5377</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-5378"><a href="#L-5378"><span class="linenos">5378</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-5379"><a href="#L-5379"><span class="linenos">5379</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-5380"><a href="#L-5380"><span class="linenos">5380</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5381"><a href="#L-5381"><span class="linenos">5381</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-5383"><a href="#L-5383"><span class="linenos">5383</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-5384"><a href="#L-5384"><span class="linenos">5384</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-5385"><a href="#L-5385"><span class="linenos">5385</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-5386"><a href="#L-5386"><span class="linenos">5386</span></a> <span class="p">]</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><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</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-5391"><a href="#L-5391"><span class="linenos">5391</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</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"> Example:</span>
-</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</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-5397"><a href="#L-5397"><span class="linenos">5397</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a>
-</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a><span class="sd"> Args:</span>
-</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5406"><a href="#L-5406"><span class="linenos">5406</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a>
-</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</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-5412"><a href="#L-5412"><span class="linenos">5412</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-5413"><a href="#L-5413"><span class="linenos">5413</span></a>
-</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</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-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">intersect</span><span class="p">(</span>
-</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</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-5419"><a href="#L-5419"><span class="linenos">5419</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a>
-</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a><span class="sd"> Example:</span>
-</span><span id="L-5424"><a href="#L-5424"><span class="linenos">5424</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-5425"><a href="#L-5425"><span class="linenos">5425</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a>
-</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a><span class="sd"> Args:</span>
-</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5429"><a href="#L-5429"><span class="linenos">5429</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5434"><a href="#L-5434"><span class="linenos">5434</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</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-5440"><a href="#L-5440"><span class="linenos">5440</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-5441"><a href="#L-5441"><span class="linenos">5441</span></a>
-</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</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-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><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</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-5447"><a href="#L-5447"><span class="linenos">5447</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</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="sd"> Example:</span>
-</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</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-5453"><a href="#L-5453"><span class="linenos">5453</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a>
-</span><span id="L-5455"><a href="#L-5455"><span class="linenos">5455</span></a><span class="sd"> Args:</span>
-</span><span id="L-5456"><a href="#L-5456"><span class="linenos">5456</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a>
-</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</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-5468"><a href="#L-5468"><span class="linenos">5468</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-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 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-5471"><a href="#L-5471"><span class="linenos">5471</span></a>
-</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a>
-</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</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-5474"><a href="#L-5474"><span class="linenos">5474</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</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="sd"> Example:</span>
-</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</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-5479"><a href="#L-5479"><span class="linenos">5479</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</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-5389"><a href="#L-5389"><span class="linenos">5389</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</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-5391"><a href="#L-5391"><span class="linenos">5391</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-5392"><a href="#L-5392"><span class="linenos">5392</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-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="k">return</span> <span class="n">this</span>
+</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a>
+</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a>
+</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</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-5398"><a href="#L-5398"><span class="linenos">5398</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-5399"><a href="#L-5399"><span class="linenos">5399</span></a>
+</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a>
+</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</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-5403"><a href="#L-5403"><span class="linenos">5403</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</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-5409"><a href="#L-5409"><span class="linenos">5409</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</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"> Args:</span>
+</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5413"><a href="#L-5413"><span class="linenos">5413</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 new Union instance.</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="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-5424"><a href="#L-5424"><span class="linenos">5424</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-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="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-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="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</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-5431"><a href="#L-5431"><span class="linenos">5431</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</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 class="sd"> Example:</span>
+</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</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-5437"><a href="#L-5437"><span class="linenos">5437</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5441"><a href="#L-5441"><span class="linenos">5441</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5443"><a href="#L-5443"><span class="linenos">5443</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5444"><a href="#L-5444"><span class="linenos">5444</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a>
+</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</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-5452"><a href="#L-5452"><span class="linenos">5452</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-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="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-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><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</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-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</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="sd"> Example:</span>
+</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</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-5465"><a href="#L-5465"><span class="linenos">5465</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</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 class="sd"> Args:</span>
+</span><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a>
+</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</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-5480"><a href="#L-5480"><span class="linenos">5480</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-5481"><a href="#L-5481"><span class="linenos">5481</span></a>
+</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</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-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><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</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-5486"><a href="#L-5486"><span class="linenos">5486</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</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-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="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-5496"><a href="#L-5496"><span class="linenos">5496</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</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 class="sd"> Example:</span>
-</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</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-5501"><a href="#L-5501"><span class="linenos">5501</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a>
-</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a><span class="sd"> Args:</span>
-</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-5507"><a href="#L-5507"><span class="linenos">5507</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a><span class="sd"> Example:</span>
+</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</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-5491"><a href="#L-5491"><span class="linenos">5491</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a>
+</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a><span class="sd"> Args:</span>
+</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5498"><a href="#L-5498"><span class="linenos">5498</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</span></a>
+</span><span id="L-5501"><a href="#L-5501"><span class="linenos">5501</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</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-5505"><a href="#L-5505"><span class="linenos">5505</span></a>
+</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="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-5508"><a href="#L-5508"><span class="linenos">5508</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
</span><span id="L-5510"><a href="#L-5510"><span class="linenos">5510</span></a>
-</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-5513"><a href="#L-5513"><span class="linenos">5513</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</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-5515"><a href="#L-5515"><span class="linenos">5515</span></a>
-</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="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</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-5519"><a href="#L-5519"><span class="linenos">5519</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</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-5521"><a href="#L-5521"><span class="linenos">5521</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-5522"><a href="#L-5522"><span class="linenos">5522</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-5523"><a href="#L-5523"><span class="linenos">5523</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a><span class="sd"> Example:</span>
+</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</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-5513"><a href="#L-5513"><span class="linenos">5513</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</span></a>
+</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a><span class="sd"> Args:</span>
+</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-5517"><a href="#L-5517"><span class="linenos">5517</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5521"><a href="#L-5521"><span class="linenos">5521</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-5522"><a href="#L-5522"><span class="linenos">5522</span></a>
+</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</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-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="sd"> Example:</span>
-</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</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-5530"><a href="#L-5530"><span class="linenos">5530</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-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"> Args:</span>
-</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-5535"><a href="#L-5535"><span class="linenos">5535</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a>
+</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</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-5531"><a href="#L-5531"><span class="linenos">5531</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</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-5533"><a href="#L-5533"><span class="linenos">5533</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-5534"><a href="#L-5534"><span class="linenos">5534</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-5535"><a href="#L-5535"><span class="linenos">5535</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a><span class="sd"> Creates an update statement.</span>
</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a>
-</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5543"><a href="#L-5543"><span class="linenos">5543</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-5544"><a href="#L-5544"><span class="linenos">5544</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-5545"><a href="#L-5545"><span class="linenos">5545</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a> <span class="p">[</span>
-</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</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-5548"><a href="#L-5548"><span class="linenos">5548</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-5549"><a href="#L-5549"><span class="linenos">5549</span></a> <span class="p">],</span>
-</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a> <span class="p">)</span>
-</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</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-5553"><a href="#L-5553"><span class="linenos">5553</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</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-5555"><a href="#L-5555"><span class="linenos">5555</span></a> <span class="p">)</span>
-</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</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-5557"><a href="#L-5557"><span class="linenos">5557</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-5558"><a href="#L-5558"><span class="linenos">5558</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</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-5560"><a href="#L-5560"><span class="linenos">5560</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-5561"><a href="#L-5561"><span class="linenos">5561</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-5562"><a href="#L-5562"><span class="linenos">5562</span></a> <span class="p">)</span>
-</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a> <span class="k">return</span> <span class="n">update_expr</span>
-</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a>
-</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a>
-</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</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-5569"><a href="#L-5569"><span class="linenos">5569</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-5570"><a href="#L-5570"><span class="linenos">5570</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-5571"><a href="#L-5571"><span class="linenos">5571</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5572"><a href="#L-5572"><span class="linenos">5572</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a>
-</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a><span class="sd"> Example:</span>
-</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</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-5578"><a href="#L-5578"><span class="linenos">5578</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a>
-</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a><span class="sd"> Args:</span>
-</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a>
-</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</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-5590"><a href="#L-5590"><span class="linenos">5590</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</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-5592"><a href="#L-5592"><span class="linenos">5592</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</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-5594"><a href="#L-5594"><span class="linenos">5594</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
-</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a>
-</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">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</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-5601"><a href="#L-5601"><span class="linenos">5601</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-5602"><a href="#L-5602"><span class="linenos">5602</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-5603"><a href="#L-5603"><span class="linenos">5603</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-5604"><a href="#L-5604"><span class="linenos">5604</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a><span class="sd"> Example:</span>
+</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</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-5542"><a href="#L-5542"><span class="linenos">5542</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-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"> *properties: dictionary of properties to set which are</span>
+</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="L-5549"><a href="#L-5549"><span class="linenos">5549</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a>
+</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5553"><a href="#L-5553"><span class="linenos">5553</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</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-5556"><a href="#L-5556"><span class="linenos">5556</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-5557"><a href="#L-5557"><span class="linenos">5557</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a> <span class="p">[</span>
+</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</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-5560"><a href="#L-5560"><span class="linenos">5560</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-5561"><a href="#L-5561"><span class="linenos">5561</span></a> <span class="p">],</span>
+</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a> <span class="p">)</span>
+</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</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-5565"><a href="#L-5565"><span class="linenos">5565</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</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-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="p">)</span>
+</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</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-5569"><a href="#L-5569"><span class="linenos">5569</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-5570"><a href="#L-5570"><span class="linenos">5570</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</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-5572"><a href="#L-5572"><span class="linenos">5572</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</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-5574"><a href="#L-5574"><span class="linenos">5574</span></a> <span class="p">)</span>
+</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a>
+</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a>
+</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</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-5581"><a href="#L-5581"><span class="linenos">5581</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-5582"><a href="#L-5582"><span class="linenos">5582</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-5583"><a href="#L-5583"><span class="linenos">5583</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a>
+</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a><span class="sd"> Example:</span>
+</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</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-5590"><a href="#L-5590"><span class="linenos">5590</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a>
+</span><span id="L-5592"><a href="#L-5592"><span class="linenos">5592</span></a><span class="sd"> Args:</span>
+</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5597"><a href="#L-5597"><span class="linenos">5597</span></a>
+</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</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-5602"><a href="#L-5602"><span class="linenos">5602</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-5603"><a href="#L-5603"><span class="linenos">5603</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-5604"><a href="#L-5604"><span class="linenos">5604</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</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-5606"><a href="#L-5606"><span class="linenos">5606</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a>
</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a>
-</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a><span class="sd"> Example:</span>
-</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</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="sd"> Args:</span>
-</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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"> Returns:</span>
-</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</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-5626"><a href="#L-5626"><span class="linenos">5626</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-5627"><a href="#L-5627"><span class="linenos">5627</span></a>
-</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</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-5630"><a href="#L-5630"><span class="linenos">5630</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
-</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</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-5632"><a href="#L-5632"><span class="linenos">5632</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-5633"><a href="#L-5633"><span class="linenos">5633</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a> <span class="o">**</span><span class="n">opts</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><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a>
-</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</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-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><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</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-5644"><a href="#L-5644"><span class="linenos">5644</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a><span class="sd"> Initialize a logical condition expression.</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"> Example:</span>
-</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="L-5651"><a href="#L-5651"><span class="linenos">5651</span></a>
-</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</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 class="sd"> Args:</span>
-</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a>
-</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a> <span class="p">)</span>
-</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a>
+</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</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-5613"><a href="#L-5613"><span class="linenos">5613</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-5614"><a href="#L-5614"><span class="linenos">5614</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-5615"><a href="#L-5615"><span class="linenos">5615</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-5616"><a href="#L-5616"><span class="linenos">5616</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a>
+</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a><span class="sd"> Example:</span>
+</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a>
+</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a><span class="sd"> Args:</span>
+</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</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 expressions.</span>
+</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5633"><a href="#L-5633"><span class="linenos">5633</span></a>
+</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</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-5638"><a href="#L-5638"><span class="linenos">5638</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-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 class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</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-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</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-5644"><a href="#L-5644"><span class="linenos">5644</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-5645"><a href="#L-5645"><span class="linenos">5645</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5648"><a href="#L-5648"><span class="linenos">5648</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a> <span class="p">)</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="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-5652"><a href="#L-5652"><span class="linenos">5652</span></a>
+</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a>
+</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</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-5656"><a href="#L-5656"><span class="linenos">5656</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5657"><a href="#L-5657"><span class="linenos">5657</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a>
+</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="sd"> Example:</span>
+</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a>
+</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</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"> Args:</span>
+</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a><span class="sd"> that the input expression is a SQL string).</span>
</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a>
-</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</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-5681"><a href="#L-5681"><span class="linenos">5681</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a>
-</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</span></a><span class="sd"> Example:</span>
-</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</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-5687"><a href="#L-5687"><span class="linenos">5687</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a>
-</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a><span class="sd"> Args:</span>
-</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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"> Returns:</span>
-</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</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-5679"><a href="#L-5679"><span class="linenos">5679</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a> <span class="p">)</span>
+</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a>
+</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a>
+</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</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-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</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;</span>
+</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a>
+</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a><span class="sd"> Example:</span>
+</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</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-5699"><a href="#L-5699"><span class="linenos">5699</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a>
-</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a>
-</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</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-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a><span class="sd"> Args:</span>
+</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a>
-</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="sd"> Example:</span>
-</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</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-5710"><a href="#L-5710"><span class="linenos">5710</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a>
-</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</span></a><span class="sd"> Args:</span>
-</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a>
-</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</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-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a><span class="sd"> And: the new condition</span>
+</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</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-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">or_</span><span class="p">(</span>
+</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</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-5716"><a href="#L-5716"><span class="linenos">5716</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a>
+</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a><span class="sd"> Example:</span>
+</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</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-5722"><a href="#L-5722"><span class="linenos">5722</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a>
-</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="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-5726"><a href="#L-5726"><span class="linenos">5726</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a>
-</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a><span class="sd"> Example:</span>
-</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a>
-</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a><span class="sd"> Args:</span>
-</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5736"><a href="#L-5736"><span class="linenos">5736</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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"> Returns:</span>
-</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a><span class="sd"> The new condition.</span>
-</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a> <span class="p">)</span>
-</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</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-5750"><a href="#L-5750"><span class="linenos">5750</span></a>
+</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</span></a><span class="sd"> Args:</span>
+</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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"> Or: the new condition</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">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-5735"><a href="#L-5735"><span class="linenos">5735</span></a>
+</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">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-5738"><a href="#L-5738"><span class="linenos">5738</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a>
+</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a><span class="sd"> Example:</span>
+</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a>
+</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a><span class="sd"> Args:</span>
+</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5751"><a href="#L-5751"><span class="linenos">5751</span></a>
-</span><span id="L-5752"><a href="#L-5752"><span class="linenos">5752</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-5753"><a href="#L-5753"><span class="linenos">5753</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="sd"> Wrap an expression in parentheses.</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="sd"> Example:</span>
-</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a><span class="sd"> &#39;(5 + 3)&#39;</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 class="sd"> Args:</span>
-</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a>
-</span><span id="L-5765"><a href="#L-5765"><span class="linenos">5765</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="L-5767"><a href="#L-5767"><span class="linenos">5767</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5768"><a href="#L-5768"><span class="linenos">5768</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-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="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-5772"><a href="#L-5772"><span class="linenos">5772</span></a>
-</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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</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-5776"><a href="#L-5776"><span class="linenos">5776</span></a> <span class="o">...</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><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
-</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</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-5782"><a href="#L-5782"><span class="linenos">5782</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</span></a> <span class="o">...</span>
+</span><span id="L-5752"><a href="#L-5752"><span class="linenos">5752</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a><span class="sd"> The new condition.</span>
+</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a> <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">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-5759"><a href="#L-5759"><span class="linenos">5759</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a> <span class="p">)</span>
+</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</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-5762"><a href="#L-5762"><span class="linenos">5762</span></a>
+</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="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-5765"><a href="#L-5765"><span class="linenos">5765</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a><span class="sd"> Wrap an expression in parentheses.</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"> Example:</span>
+</span><span id="L-5769"><a href="#L-5769"><span class="linenos">5769</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="L-5770"><a href="#L-5770"><span class="linenos">5770</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</span></a>
+</span><span id="L-5772"><a href="#L-5772"><span class="linenos">5772</span></a><span class="sd"> Args:</span>
+</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-5774"><a href="#L-5774"><span class="linenos">5774</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-5776"><a href="#L-5776"><span class="linenos">5776</span></a>
+</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5778"><a href="#L-5778"><span class="linenos">5778</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</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-5781"><a href="#L-5781"><span class="linenos">5781</span></a>
+</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a>
+</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</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-5784"><a href="#L-5784"><span class="linenos">5784</span></a>
</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="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-5787"><a href="#L-5787"><span class="linenos">5787</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a>
-</span><span id="L-5789"><a href="#L-5789"><span class="linenos">5789</span></a><span class="sd"> Args:</span>
-</span><span id="L-5790"><a href="#L-5790"><span class="linenos">5790</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</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"> Returns:</span>
-</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5786"><a href="#L-5786"><span class="linenos">5786</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</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-5788"><a href="#L-5788"><span class="linenos">5788</span></a> <span class="o">...</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><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
+</span><span id="L-5793"><a href="#L-5793"><span class="linenos">5793</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-5794"><a href="#L-5794"><span class="linenos">5794</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a> <span class="o">...</span>
+</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a>
</span><span id="L-5797"><a href="#L-5797"><span class="linenos">5797</span></a>
-</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</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-5799"><a href="#L-5799"><span class="linenos">5799</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</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-5799"><a href="#L-5799"><span class="linenos">5799</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
</span><span id="L-5800"><a href="#L-5800"><span class="linenos">5800</span></a>
-</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">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
-</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</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-5803"><a href="#L-5803"><span class="linenos">5803</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-5804"><a href="#L-5804"><span class="linenos">5804</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</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-5807"><a href="#L-5807"><span class="linenos">5807</span></a> <span class="p">)</span>
-</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</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-5810"><a href="#L-5810"><span class="linenos">5810</span></a> <span class="k">return</span> <span class="n">identifier</span>
-</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</span></a>
+</span><span id="L-5801"><a href="#L-5801"><span class="linenos">5801</span></a><span class="sd"> Args:</span>
+</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
+</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a>
+</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5807"><a href="#L-5807"><span class="linenos">5807</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a>
+</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</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-5811"><a href="#L-5811"><span class="linenos">5811</span></a> <span class="k">return</span> <span class="kc">None</span>
</span><span id="L-5812"><a href="#L-5812"><span class="linenos">5812</span></a>
-</span><span id="L-5813"><a href="#L-5813"><span class="linenos">5813</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-5814"><a href="#L-5814"><span class="linenos">5814</span></a>
-</span><span id="L-5815"><a href="#L-5815"><span class="linenos">5815</span></a>
-</span><span id="L-5816"><a href="#L-5816"><span class="linenos">5816</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-5817"><a href="#L-5817"><span class="linenos">5817</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-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">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
-</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</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-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="s2">&quot;Invalid interval string.&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 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-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">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
+</span><span id="L-5814"><a href="#L-5814"><span class="linenos">5814</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-5815"><a href="#L-5815"><span class="linenos">5815</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-5816"><a href="#L-5816"><span class="linenos">5816</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</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-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">else</span><span class="p">:</span>
+</span><span id="L-5821"><a href="#L-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;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-5822"><a href="#L-5822"><span class="linenos">5822</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span><span id="L-5823"><a href="#L-5823"><span class="linenos">5823</span></a>
-</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</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-5825"><a href="#L-5825"><span class="linenos">5825</span></a>
-</span><span id="L-5826"><a href="#L-5826"><span class="linenos">5826</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-5827"><a href="#L-5827"><span class="linenos">5827</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-5828"><a href="#L-5828"><span class="linenos">5828</span></a>
-</span><span id="L-5829"><a href="#L-5829"><span class="linenos">5829</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-5830"><a href="#L-5830"><span class="linenos">5830</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-5831"><a href="#L-5831"><span class="linenos">5831</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-5832"><a href="#L-5832"><span class="linenos">5832</span></a> <span class="p">)</span>
+</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</span></a>
+</span><span id="L-5825"><a href="#L-5825"><span class="linenos">5825</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-5826"><a href="#L-5826"><span class="linenos">5826</span></a>
+</span><span id="L-5827"><a href="#L-5827"><span class="linenos">5827</span></a>
+</span><span id="L-5828"><a href="#L-5828"><span class="linenos">5828</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-5829"><a href="#L-5829"><span class="linenos">5829</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-5830"><a href="#L-5830"><span class="linenos">5830</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-5831"><a href="#L-5831"><span class="linenos">5831</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-5832"><a href="#L-5832"><span class="linenos">5832</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-5833"><a href="#L-5833"><span class="linenos">5833</span></a>
-</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</span></a>
-</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</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-5837"><a href="#L-5837"><span class="linenos">5837</span></a> <span class="o">...</span>
-</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a>
-</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="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</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-5842"><a href="#L-5842"><span class="linenos">5842</span></a> <span class="o">...</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">to_table</span><span class="p">(</span>
-</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</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-5847"><a href="#L-5847"><span class="linenos">5847</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-5848"><a href="#L-5848"><span class="linenos">5848</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5849"><a href="#L-5849"><span class="linenos">5849</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-5850"><a href="#L-5850"><span class="linenos">5850</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</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-5835"><a href="#L-5835"><span class="linenos">5835</span></a>
+</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</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-5837"><a href="#L-5837"><span class="linenos">5837</span></a>
+</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</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-5839"><a href="#L-5839"><span class="linenos">5839</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-5840"><a href="#L-5840"><span class="linenos">5840</span></a>
+</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-5842"><a href="#L-5842"><span class="linenos">5842</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-5843"><a href="#L-5843"><span class="linenos">5843</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-5844"><a href="#L-5844"><span class="linenos">5844</span></a> <span class="p">)</span>
+</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</span></a>
+</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</span></a>
+</span><span id="L-5847"><a href="#L-5847"><span class="linenos">5847</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5848"><a href="#L-5848"><span class="linenos">5848</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-5849"><a href="#L-5849"><span class="linenos">5849</span></a> <span class="o">...</span>
+</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</span></a>
</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="sd"> Args:</span>
-</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="L-5854"><a href="#L-5854"><span class="linenos">5854</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="L-5855"><a href="#L-5855"><span class="linenos">5855</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="L-5852"><a href="#L-5852"><span class="linenos">5852</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</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-5854"><a href="#L-5854"><span class="linenos">5854</span></a> <span class="o">...</span>
+</span><span id="L-5855"><a href="#L-5855"><span class="linenos">5855</span></a>
</span><span id="L-5856"><a href="#L-5856"><span class="linenos">5856</span></a>
-</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-5859"><a href="#L-5859"><span class="linenos">5859</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5860"><a href="#L-5860"><span class="linenos">5860</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-5861"><a href="#L-5861"><span class="linenos">5861</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-5862"><a href="#L-5862"><span class="linenos">5862</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-5863"><a href="#L-5863"><span class="linenos">5863</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-5864"><a href="#L-5864"><span class="linenos">5864</span></a>
-</span><span id="L-5865"><a href="#L-5865"><span class="linenos">5865</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-5866"><a href="#L-5866"><span class="linenos">5866</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5867"><a href="#L-5867"><span class="linenos">5867</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-5868"><a href="#L-5868"><span class="linenos">5868</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-5869"><a href="#L-5869"><span class="linenos">5869</span></a>
-</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="L-5871"><a href="#L-5871"><span class="linenos">5871</span></a>
-</span><span id="L-5872"><a href="#L-5872"><span class="linenos">5872</span></a>
-</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</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-5874"><a href="#L-5874"><span class="linenos">5874</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5875"><a href="#L-5875"><span class="linenos">5875</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</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-5859"><a href="#L-5859"><span class="linenos">5859</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-5860"><a href="#L-5860"><span class="linenos">5860</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</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-5862"><a href="#L-5862"><span class="linenos">5862</span></a><span class="sd"> If a table is passed in then that table is returned.</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"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-5866"><a href="#L-5866"><span class="linenos">5866</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="L-5867"><a href="#L-5867"><span class="linenos">5867</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a>
+</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-5871"><a href="#L-5871"><span class="linenos">5871</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5872"><a href="#L-5872"><span class="linenos">5872</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-5873"><a href="#L-5873"><span class="linenos">5873</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-5874"><a href="#L-5874"><span class="linenos">5874</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-5875"><a href="#L-5875"><span class="linenos">5875</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-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 class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="L-5878"><a href="#L-5878"><span class="linenos">5878</span></a>
-</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</span></a><span class="sd"> Args:</span>
-</span><span id="L-5880"><a href="#L-5880"><span class="linenos">5880</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="L-5883"><a href="#L-5883"><span class="linenos">5883</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5884"><a href="#L-5884"><span class="linenos">5884</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-5885"><a href="#L-5885"><span class="linenos">5885</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</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="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-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;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-5888"><a href="#L-5888"><span class="linenos">5888</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-5889"><a href="#L-5889"><span class="linenos">5889</span></a>
+</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</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-5878"><a href="#L-5878"><span class="linenos">5878</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</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-5880"><a href="#L-5880"><span class="linenos">5880</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-5881"><a href="#L-5881"><span class="linenos">5881</span></a>
+</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a> <span class="k">return</span> <span class="n">table</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><span id="L-5885"><a href="#L-5885"><span class="linenos">5885</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-5886"><a href="#L-5886"><span class="linenos">5886</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</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="sd"> If a column is passed in then that column is returned.</span>
</span><span id="L-5890"><a href="#L-5890"><span class="linenos">5890</span></a>
-</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</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-5894"><a href="#L-5894"><span class="linenos">5894</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-5895"><a href="#L-5895"><span class="linenos">5895</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-5896"><a href="#L-5896"><span class="linenos">5896</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-5897"><a href="#L-5897"><span class="linenos">5897</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-5898"><a href="#L-5898"><span class="linenos">5898</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5899"><a href="#L-5899"><span class="linenos">5899</span></a><span class="p">):</span>
-</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a><span class="sd"> Args:</span>
+</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5894"><a href="#L-5894"><span class="linenos">5894</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="L-5895"><a href="#L-5895"><span class="linenos">5895</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5896"><a href="#L-5896"><span class="linenos">5896</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-5897"><a href="#L-5897"><span class="linenos">5897</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-5898"><a href="#L-5898"><span class="linenos">5898</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-5899"><a href="#L-5899"><span class="linenos">5899</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-5900"><a href="#L-5900"><span class="linenos">5900</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-5901"><a href="#L-5901"><span class="linenos">5901</span></a>
-</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a><span class="sd"> Example:</span>
-</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a><span class="sd"> &#39;foo AS bar&#39;</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 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-5907"><a href="#L-5907"><span class="linenos">5907</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a>
-</span><span id="L-5909"><a href="#L-5909"><span class="linenos">5909</span></a><span class="sd"> Args:</span>
-</span><span id="L-5910"><a href="#L-5910"><span class="linenos">5910</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-5913"><a href="#L-5913"><span class="linenos">5913</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</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-5915"><a href="#L-5915"><span class="linenos">5915</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
-</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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"> Alias: the aliased 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 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-5924"><a href="#L-5924"><span class="linenos">5924</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-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 class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</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-5928"><a href="#L-5928"><span class="linenos">5928</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-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="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-5931"><a href="#L-5931"><span class="linenos">5931</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-5932"><a href="#L-5932"><span class="linenos">5932</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-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">exp</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 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-5937"><a href="#L-5937"><span class="linenos">5937</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-5938"><a href="#L-5938"><span class="linenos">5938</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a> <span class="c1">#</span>
-</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a>
+</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5905"><a href="#L-5905"><span class="linenos">5905</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-5906"><a href="#L-5906"><span class="linenos">5906</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-5907"><a href="#L-5907"><span class="linenos">5907</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-5908"><a href="#L-5908"><span class="linenos">5908</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-5909"><a href="#L-5909"><span class="linenos">5909</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-5910"><a href="#L-5910"><span class="linenos">5910</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a><span class="p">):</span>
+</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</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="sd"> Example:</span>
+</span><span id="L-5915"><a href="#L-5915"><span class="linenos">5915</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a>
+</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</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-5919"><a href="#L-5919"><span class="linenos">5919</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a>
+</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a><span class="sd"> Args:</span>
+</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-5923"><a href="#L-5923"><span class="linenos">5923</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5924"><a href="#L-5924"><span class="linenos">5924</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-5925"><a href="#L-5925"><span class="linenos">5925</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-5926"><a href="#L-5926"><span class="linenos">5926</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-5927"><a href="#L-5927"><span class="linenos">5927</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5931"><a href="#L-5931"><span class="linenos">5931</span></a>
+</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5933"><a href="#L-5933"><span class="linenos">5933</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5935"><a href="#L-5935"><span class="linenos">5935</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-5936"><a href="#L-5936"><span class="linenos">5936</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-5937"><a href="#L-5937"><span class="linenos">5937</span></a>
+</span><span id="L-5938"><a href="#L-5938"><span class="linenos">5938</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</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-5940"><a href="#L-5940"><span class="linenos">5940</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-5941"><a href="#L-5941"><span class="linenos">5941</span></a>
-</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</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-5943"><a href="#L-5943"><span class="linenos">5943</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-5944"><a href="#L-5944"><span class="linenos">5944</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</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-5946"><a href="#L-5946"><span class="linenos">5946</span></a>
+</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</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-5943"><a href="#L-5943"><span class="linenos">5943</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-5944"><a href="#L-5944"><span class="linenos">5944</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-5945"><a href="#L-5945"><span class="linenos">5945</span></a>
+</span><span id="L-5946"><a href="#L-5946"><span class="linenos">5946</span></a> <span class="k">return</span> <span class="n">exp</span>
</span><span id="L-5947"><a href="#L-5947"><span class="linenos">5947</span></a>
-</span><span id="L-5948"><a href="#L-5948"><span class="linenos">5948</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="L-5949"><a href="#L-5949"><span class="linenos">5949</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</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-5951"><a href="#L-5951"><span class="linenos">5951</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-5952"><a href="#L-5952"><span class="linenos">5952</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5955"><a href="#L-5955"><span class="linenos">5955</span></a><span class="sd"> Build a subquery expression.</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="sd"> Example:</span>
-</span><span id="L-5958"><a href="#L-5958"><span class="linenos">5958</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-5959"><a href="#L-5959"><span class="linenos">5959</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a>
-</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a><span class="sd"> Args:</span>
-</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</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"> Returns:</span>
-</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a><span class="sd"> &quot;&quot;&quot;</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 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-5973"><a href="#L-5973"><span class="linenos">5973</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-5974"><a href="#L-5974"><span class="linenos">5974</span></a>
-</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="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</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-5978"><a href="#L-5978"><span class="linenos">5978</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-5979"><a href="#L-5979"><span class="linenos">5979</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-5980"><a href="#L-5980"><span class="linenos">5980</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-5981"><a href="#L-5981"><span class="linenos">5981</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-5982"><a href="#L-5982"><span class="linenos">5982</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</span></a><span class="sd"> Build a Column.</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"> col: Column name.</span>
-</span><span id="L-5988"><a href="#L-5988"><span class="linenos">5988</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-5991"><a href="#L-5991"><span class="linenos">5991</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a>
-</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5994"><a href="#L-5994"><span class="linenos">5994</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</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-5998"><a href="#L-5998"><span class="linenos">5998</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-5999"><a href="#L-5999"><span class="linenos">5999</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-6000"><a href="#L-6000"><span class="linenos">6000</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-6001"><a href="#L-6001"><span class="linenos">6001</span></a> <span class="p">)</span>
-</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a>
-</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a>
-</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</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-6005"><a href="#L-6005"><span class="linenos">6005</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</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 class="sd"> Example:</span>
-</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="L-6010"><a href="#L-6010"><span class="linenos">6010</span></a>
-</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a><span class="sd"> Args:</span>
-</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-6013"><a href="#L-6013"><span class="linenos">6013</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-5948"><a href="#L-5948"><span class="linenos">5948</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-5949"><a href="#L-5949"><span class="linenos">5949</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-5950"><a href="#L-5950"><span class="linenos">5950</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a> <span class="c1">#</span>
+</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a>
+</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</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-5955"><a href="#L-5955"><span class="linenos">5955</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-5956"><a href="#L-5956"><span class="linenos">5956</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-5957"><a href="#L-5957"><span class="linenos">5957</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-5958"><a href="#L-5958"><span class="linenos">5958</span></a>
+</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">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</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-5963"><a href="#L-5963"><span class="linenos">5963</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-5964"><a href="#L-5964"><span class="linenos">5964</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</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">Select</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;</span>
+</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="L-5968"><a href="#L-5968"><span class="linenos">5968</span></a>
+</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a><span class="sd"> Example:</span>
+</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</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-5971"><a href="#L-5971"><span class="linenos">5971</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</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"> Args:</span>
+</span><span id="L-5974"><a href="#L-5974"><span class="linenos">5974</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-5975"><a href="#L-5975"><span class="linenos">5975</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-5976"><a href="#L-5976"><span class="linenos">5976</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-5978"><a href="#L-5978"><span class="linenos">5978</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a>
+</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a>
+</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</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-5985"><a href="#L-5985"><span class="linenos">5985</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-5986"><a href="#L-5986"><span class="linenos">5986</span></a>
+</span><span id="L-5987"><a href="#L-5987"><span class="linenos">5987</span></a>
+</span><span id="L-5988"><a href="#L-5988"><span class="linenos">5988</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</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-5990"><a href="#L-5990"><span class="linenos">5990</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-5991"><a href="#L-5991"><span class="linenos">5991</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-5992"><a href="#L-5992"><span class="linenos">5992</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-5993"><a href="#L-5993"><span class="linenos">5993</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-5994"><a href="#L-5994"><span class="linenos">5994</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a><span class="sd"> Build a Column.</span>
+</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="sd"> Args:</span>
+</span><span id="L-5999"><a href="#L-5999"><span class="linenos">5999</span></a><span class="sd"> col: Column name.</span>
+</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</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="sd"> Returns:</span>
+</span><span id="L-6006"><a href="#L-6006"><span class="linenos">6006</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="L-6007"><a href="#L-6007"><span class="linenos">6007</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</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-6010"><a href="#L-6010"><span class="linenos">6010</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-6011"><a href="#L-6011"><span class="linenos">6011</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-6012"><a href="#L-6012"><span class="linenos">6012</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-6013"><a href="#L-6013"><span class="linenos">6013</span></a> <span class="p">)</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"> Returns:</span>
-</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</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-6019"><a href="#L-6019"><span class="linenos">6019</span></a> <span class="n">data_type</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-6020"><a href="#L-6020"><span class="linenos">6020</span></a> <span class="n">expression</span> <span class="o">=</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">data_type</span><span class="p">)</span>
-</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
-</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a>
-</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="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</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-6027"><a href="#L-6027"><span class="linenos">6027</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-6028"><a href="#L-6028"><span class="linenos">6028</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-6029"><a href="#L-6029"><span class="linenos">6029</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-6030"><a href="#L-6030"><span class="linenos">6030</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-6031"><a href="#L-6031"><span class="linenos">6031</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a>
-</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a><span class="sd"> Args:</span>
-</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-6036"><a href="#L-6036"><span class="linenos">6036</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-6037"><a href="#L-6037"><span class="linenos">6037</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="L-6039"><a href="#L-6039"><span class="linenos">6039</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="L-6040"><a href="#L-6040"><span class="linenos">6040</span></a>
-</span><span id="L-6041"><a href="#L-6041"><span class="linenos">6041</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6042"><a href="#L-6042"><span class="linenos">6042</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="L-6043"><a href="#L-6043"><span class="linenos">6043</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</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 class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6046"><a href="#L-6046"><span class="linenos">6046</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 class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</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 class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</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-6049"><a href="#L-6049"><span class="linenos">6049</span></a> <span class="p">)</span>
-</span><span id="L-6050"><a href="#L-6050"><span class="linenos">6050</span></a>
-</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">values</span><span class="p">(</span>
-</span><span id="L-6053"><a href="#L-6053"><span class="linenos">6053</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-6054"><a href="#L-6054"><span class="linenos">6054</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-6055"><a href="#L-6055"><span class="linenos">6055</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-6056"><a href="#L-6056"><span class="linenos">6056</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</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="sd"> Example:</span>
-</span><span id="L-6060"><a href="#L-6060"><span class="linenos">6060</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-6061"><a href="#L-6061"><span class="linenos">6061</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</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="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-6017"><a href="#L-6017"><span class="linenos">6017</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</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"> Example:</span>
+</span><span id="L-6020"><a href="#L-6020"><span class="linenos">6020</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a>
+</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a><span class="sd"> Args:</span>
+</span><span id="L-6024"><a href="#L-6024"><span class="linenos">6024</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a><span class="sd"> to: The datatype to cast to.</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="sd"> Returns:</span>
+</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6030"><a href="#L-6030"><span class="linenos">6030</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-6031"><a href="#L-6031"><span class="linenos">6031</span></a> <span class="n">data_type</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-6032"><a href="#L-6032"><span class="linenos">6032</span></a> <span class="n">expression</span> <span class="o">=</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">data_type</span><span class="p">)</span>
+</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
+</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</span></a>
+</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="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</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-6039"><a href="#L-6039"><span class="linenos">6039</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-6040"><a href="#L-6040"><span class="linenos">6040</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-6041"><a href="#L-6041"><span class="linenos">6041</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-6042"><a href="#L-6042"><span class="linenos">6042</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-6043"><a href="#L-6043"><span class="linenos">6043</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</span></a>
+</span><span id="L-6046"><a href="#L-6046"><span class="linenos">6046</span></a><span class="sd"> Args:</span>
+</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-6049"><a href="#L-6049"><span class="linenos">6049</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-6050"><a href="#L-6050"><span class="linenos">6050</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="L-6051"><a href="#L-6051"><span class="linenos">6051</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</span></a>
+</span><span id="L-6053"><a href="#L-6053"><span class="linenos">6053</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6054"><a href="#L-6054"><span class="linenos">6054</span></a><span class="sd"> The new Table instance.</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">Table</span><span class="p">(</span>
+</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</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 class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</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 class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6059"><a href="#L-6059"><span class="linenos">6059</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 class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6060"><a href="#L-6060"><span class="linenos">6060</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-6061"><a href="#L-6061"><span class="linenos">6061</span></a> <span class="p">)</span>
</span><span id="L-6062"><a href="#L-6062"><span class="linenos">6062</span></a>
-</span><span id="L-6063"><a href="#L-6063"><span class="linenos">6063</span></a><span class="sd"> Args:</span>
-</span><span id="L-6064"><a href="#L-6064"><span class="linenos">6064</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-6066"><a href="#L-6066"><span class="linenos">6066</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-6067"><a href="#L-6067"><span class="linenos">6067</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</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-6073"><a href="#L-6073"><span class="linenos">6073</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-6063"><a href="#L-6063"><span class="linenos">6063</span></a>
+</span><span id="L-6064"><a href="#L-6064"><span class="linenos">6064</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</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-6066"><a href="#L-6066"><span class="linenos">6066</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-6067"><a href="#L-6067"><span class="linenos">6067</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-6068"><a href="#L-6068"><span class="linenos">6068</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-6069"><a href="#L-6069"><span class="linenos">6069</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a>
+</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a><span class="sd"> Example:</span>
+</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-6073"><a href="#L-6073"><span class="linenos">6073</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</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 class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</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-6077"><a href="#L-6077"><span class="linenos">6077</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</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-6079"><a href="#L-6079"><span class="linenos">6079</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-6080"><a href="#L-6080"><span class="linenos">6080</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-6081"><a href="#L-6081"><span class="linenos">6081</span></a> <span class="p">),</span>
-</span><span id="L-6082"><a href="#L-6082"><span class="linenos">6082</span></a> <span class="p">)</span>
-</span><span id="L-6083"><a href="#L-6083"><span class="linenos">6083</span></a>
-</span><span id="L-6084"><a href="#L-6084"><span class="linenos">6084</span></a>
-</span><span id="L-6085"><a href="#L-6085"><span class="linenos">6085</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-6086"><a href="#L-6086"><span class="linenos">6086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="L-6087"><a href="#L-6087"><span class="linenos">6087</span></a>
-</span><span id="L-6088"><a href="#L-6088"><span class="linenos">6088</span></a><span class="sd"> Example:</span>
-</span><span id="L-6089"><a href="#L-6089"><span class="linenos">6089</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-6090"><a href="#L-6090"><span class="linenos">6090</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-6091"><a href="#L-6091"><span class="linenos">6091</span></a>
-</span><span id="L-6092"><a href="#L-6092"><span class="linenos">6092</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-6093"><a href="#L-6093"><span class="linenos">6093</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="L-6094"><a href="#L-6094"><span class="linenos">6094</span></a>
-</span><span id="L-6095"><a href="#L-6095"><span class="linenos">6095</span></a><span class="sd"> Args:</span>
-</span><span id="L-6096"><a href="#L-6096"><span class="linenos">6096</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-6097"><a href="#L-6097"><span class="linenos">6097</span></a>
-</span><span id="L-6098"><a href="#L-6098"><span class="linenos">6098</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6099"><a href="#L-6099"><span class="linenos">6099</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-6100"><a href="#L-6100"><span class="linenos">6100</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6101"><a href="#L-6101"><span class="linenos">6101</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-6102"><a href="#L-6102"><span class="linenos">6102</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-6075"><a href="#L-6075"><span class="linenos">6075</span></a><span class="sd"> Args:</span>
+</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="L-6077"><a href="#L-6077"><span class="linenos">6077</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</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-6079"><a href="#L-6079"><span class="linenos">6079</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-6080"><a href="#L-6080"><span class="linenos">6080</span></a>
+</span><span id="L-6081"><a href="#L-6081"><span class="linenos">6081</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6082"><a href="#L-6082"><span class="linenos">6082</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-6083"><a href="#L-6083"><span class="linenos">6083</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6084"><a href="#L-6084"><span class="linenos">6084</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-6085"><a href="#L-6085"><span class="linenos">6085</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-6086"><a href="#L-6086"><span class="linenos">6086</span></a>
+</span><span id="L-6087"><a href="#L-6087"><span class="linenos">6087</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-6088"><a href="#L-6088"><span class="linenos">6088</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-6089"><a href="#L-6089"><span class="linenos">6089</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="L-6090"><a href="#L-6090"><span class="linenos">6090</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-6091"><a href="#L-6091"><span class="linenos">6091</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-6092"><a href="#L-6092"><span class="linenos">6092</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-6093"><a href="#L-6093"><span class="linenos">6093</span></a> <span class="p">),</span>
+</span><span id="L-6094"><a href="#L-6094"><span class="linenos">6094</span></a> <span class="p">)</span>
+</span><span id="L-6095"><a href="#L-6095"><span class="linenos">6095</span></a>
+</span><span id="L-6096"><a href="#L-6096"><span class="linenos">6096</span></a>
+</span><span id="L-6097"><a href="#L-6097"><span class="linenos">6097</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-6098"><a href="#L-6098"><span class="linenos">6098</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="L-6099"><a href="#L-6099"><span class="linenos">6099</span></a>
+</span><span id="L-6100"><a href="#L-6100"><span class="linenos">6100</span></a><span class="sd"> Example:</span>
+</span><span id="L-6101"><a href="#L-6101"><span class="linenos">6101</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-6102"><a href="#L-6102"><span class="linenos">6102</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="L-6103"><a href="#L-6103"><span class="linenos">6103</span></a>
-</span><span id="L-6104"><a href="#L-6104"><span class="linenos">6104</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-6105"><a href="#L-6105"><span class="linenos">6105</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-6106"><a href="#L-6106"><span class="linenos">6106</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-6107"><a href="#L-6107"><span class="linenos">6107</span></a>
-</span><span id="L-6108"><a href="#L-6108"><span class="linenos">6108</span></a>
-</span><span id="L-6109"><a href="#L-6109"><span class="linenos">6109</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-6110"><a href="#L-6110"><span class="linenos">6110</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="L-6111"><a href="#L-6111"><span class="linenos">6111</span></a>
-</span><span id="L-6112"><a href="#L-6112"><span class="linenos">6112</span></a><span class="sd"> Args:</span>
-</span><span id="L-6113"><a href="#L-6113"><span class="linenos">6113</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-6114"><a href="#L-6114"><span class="linenos">6114</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="L-6104"><a href="#L-6104"><span class="linenos">6104</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-6105"><a href="#L-6105"><span class="linenos">6105</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-6106"><a href="#L-6106"><span class="linenos">6106</span></a>
+</span><span id="L-6107"><a href="#L-6107"><span class="linenos">6107</span></a><span class="sd"> Args:</span>
+</span><span id="L-6108"><a href="#L-6108"><span class="linenos">6108</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-6109"><a href="#L-6109"><span class="linenos">6109</span></a>
+</span><span id="L-6110"><a href="#L-6110"><span class="linenos">6110</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6111"><a href="#L-6111"><span class="linenos">6111</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-6112"><a href="#L-6112"><span class="linenos">6112</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6113"><a href="#L-6113"><span class="linenos">6113</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-6114"><a href="#L-6114"><span class="linenos">6114</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-6115"><a href="#L-6115"><span class="linenos">6115</span></a>
-</span><span id="L-6116"><a href="#L-6116"><span class="linenos">6116</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6117"><a href="#L-6117"><span class="linenos">6117</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-6118"><a href="#L-6118"><span class="linenos">6118</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6119"><a href="#L-6119"><span class="linenos">6119</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-6120"><a href="#L-6120"><span class="linenos">6120</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-6121"><a href="#L-6121"><span class="linenos">6121</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-6122"><a href="#L-6122"><span class="linenos">6122</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-6123"><a href="#L-6123"><span class="linenos">6123</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-6124"><a href="#L-6124"><span class="linenos">6124</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-6125"><a href="#L-6125"><span class="linenos">6125</span></a> <span class="p">],</span>
-</span><span id="L-6126"><a href="#L-6126"><span class="linenos">6126</span></a> <span class="p">)</span>
+</span><span id="L-6116"><a href="#L-6116"><span class="linenos">6116</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-6117"><a href="#L-6117"><span class="linenos">6117</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-6118"><a href="#L-6118"><span class="linenos">6118</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-6119"><a href="#L-6119"><span class="linenos">6119</span></a>
+</span><span id="L-6120"><a href="#L-6120"><span class="linenos">6120</span></a>
+</span><span id="L-6121"><a href="#L-6121"><span class="linenos">6121</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-6122"><a href="#L-6122"><span class="linenos">6122</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-6123"><a href="#L-6123"><span class="linenos">6123</span></a>
+</span><span id="L-6124"><a href="#L-6124"><span class="linenos">6124</span></a><span class="sd"> Args:</span>
+</span><span id="L-6125"><a href="#L-6125"><span class="linenos">6125</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-6126"><a href="#L-6126"><span class="linenos">6126</span></a><span class="sd"> new_name: The new name of the table</span>
</span><span id="L-6127"><a href="#L-6127"><span class="linenos">6127</span></a>
-</span><span id="L-6128"><a href="#L-6128"><span class="linenos">6128</span></a>
-</span><span id="L-6129"><a href="#L-6129"><span class="linenos">6129</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-6130"><a href="#L-6130"><span class="linenos">6130</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-6131"><a href="#L-6131"><span class="linenos">6131</span></a>
-</span><span id="L-6132"><a href="#L-6132"><span class="linenos">6132</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="L-6133"><a href="#L-6133"><span class="linenos">6133</span></a>
-</span><span id="L-6134"><a href="#L-6134"><span class="linenos">6134</span></a><span class="sd"> Args:</span>
-</span><span id="L-6135"><a href="#L-6135"><span class="linenos">6135</span></a><span class="sd"> value: A python object.</span>
-</span><span id="L-6136"><a href="#L-6136"><span class="linenos">6136</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="L-6137"><a href="#L-6137"><span class="linenos">6137</span></a>
-</span><span id="L-6138"><a href="#L-6138"><span class="linenos">6138</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6139"><a href="#L-6139"><span class="linenos">6139</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="L-6140"><a href="#L-6140"><span class="linenos">6140</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6141"><a href="#L-6141"><span class="linenos">6141</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-6142"><a href="#L-6142"><span class="linenos">6142</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-6143"><a href="#L-6143"><span class="linenos">6143</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-6144"><a href="#L-6144"><span class="linenos">6144</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-6145"><a href="#L-6145"><span class="linenos">6145</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-6146"><a href="#L-6146"><span class="linenos">6146</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-6147"><a href="#L-6147"><span class="linenos">6147</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-6148"><a href="#L-6148"><span class="linenos">6148</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-6149"><a href="#L-6149"><span class="linenos">6149</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-6150"><a href="#L-6150"><span class="linenos">6150</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-6151"><a href="#L-6151"><span class="linenos">6151</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-6152"><a href="#L-6152"><span class="linenos">6152</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-6153"><a href="#L-6153"><span class="linenos">6153</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-6154"><a href="#L-6154"><span class="linenos">6154</span></a> <span class="p">)</span>
-</span><span id="L-6155"><a href="#L-6155"><span class="linenos">6155</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-6156"><a href="#L-6156"><span class="linenos">6156</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-6157"><a href="#L-6157"><span class="linenos">6157</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-6158"><a href="#L-6158"><span class="linenos">6158</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-6159"><a href="#L-6159"><span class="linenos">6159</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-6160"><a href="#L-6160"><span class="linenos">6160</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-6161"><a href="#L-6161"><span class="linenos">6161</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-6162"><a href="#L-6162"><span class="linenos">6162</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-6163"><a href="#L-6163"><span class="linenos">6163</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-6164"><a href="#L-6164"><span class="linenos">6164</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-6165"><a href="#L-6165"><span class="linenos">6165</span></a> <span class="n">keys</span><span class="o">=</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">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-6166"><a href="#L-6166"><span class="linenos">6166</span></a> <span class="n">values</span><span class="o">=</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="o">.</span><span class="n">values</span><span class="p">()]),</span>
-</span><span id="L-6167"><a href="#L-6167"><span class="linenos">6167</span></a> <span class="p">)</span>
-</span><span id="L-6168"><a href="#L-6168"><span class="linenos">6168</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-6169"><a href="#L-6169"><span class="linenos">6169</span></a>
-</span><span id="L-6170"><a href="#L-6170"><span class="linenos">6170</span></a>
-</span><span id="L-6171"><a href="#L-6171"><span class="linenos">6171</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-6172"><a href="#L-6172"><span class="linenos">6172</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6173"><a href="#L-6173"><span class="linenos">6173</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-6174"><a href="#L-6174"><span class="linenos">6174</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6175"><a href="#L-6175"><span class="linenos">6175</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-6176"><a href="#L-6176"><span class="linenos">6176</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-6177"><a href="#L-6177"><span class="linenos">6177</span></a>
-</span><span id="L-6178"><a href="#L-6178"><span class="linenos">6178</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-6179"><a href="#L-6179"><span class="linenos">6179</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-6180"><a href="#L-6180"><span class="linenos">6180</span></a>
-</span><span id="L-6181"><a href="#L-6181"><span class="linenos">6181</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-6182"><a href="#L-6182"><span class="linenos">6182</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-6183"><a href="#L-6183"><span class="linenos">6183</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-6184"><a href="#L-6184"><span class="linenos">6184</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-6185"><a href="#L-6185"><span class="linenos">6185</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-6186"><a href="#L-6186"><span class="linenos">6186</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-6187"><a href="#L-6187"><span class="linenos">6187</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6188"><a href="#L-6188"><span class="linenos">6188</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-6128"><a href="#L-6128"><span class="linenos">6128</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6129"><a href="#L-6129"><span class="linenos">6129</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-6130"><a href="#L-6130"><span class="linenos">6130</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6131"><a href="#L-6131"><span class="linenos">6131</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-6132"><a href="#L-6132"><span class="linenos">6132</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-6133"><a href="#L-6133"><span class="linenos">6133</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-6134"><a href="#L-6134"><span class="linenos">6134</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-6135"><a href="#L-6135"><span class="linenos">6135</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-6136"><a href="#L-6136"><span class="linenos">6136</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-6137"><a href="#L-6137"><span class="linenos">6137</span></a> <span class="p">],</span>
+</span><span id="L-6138"><a href="#L-6138"><span class="linenos">6138</span></a> <span class="p">)</span>
+</span><span id="L-6139"><a href="#L-6139"><span class="linenos">6139</span></a>
+</span><span id="L-6140"><a href="#L-6140"><span class="linenos">6140</span></a>
+</span><span id="L-6141"><a href="#L-6141"><span class="linenos">6141</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-6142"><a href="#L-6142"><span class="linenos">6142</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-6143"><a href="#L-6143"><span class="linenos">6143</span></a>
+</span><span id="L-6144"><a href="#L-6144"><span class="linenos">6144</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="L-6145"><a href="#L-6145"><span class="linenos">6145</span></a>
+</span><span id="L-6146"><a href="#L-6146"><span class="linenos">6146</span></a><span class="sd"> Args:</span>
+</span><span id="L-6147"><a href="#L-6147"><span class="linenos">6147</span></a><span class="sd"> value: A python object.</span>
+</span><span id="L-6148"><a href="#L-6148"><span class="linenos">6148</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="L-6149"><a href="#L-6149"><span class="linenos">6149</span></a>
+</span><span id="L-6150"><a href="#L-6150"><span class="linenos">6150</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6151"><a href="#L-6151"><span class="linenos">6151</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="L-6152"><a href="#L-6152"><span class="linenos">6152</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6153"><a href="#L-6153"><span class="linenos">6153</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-6154"><a href="#L-6154"><span class="linenos">6154</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-6155"><a href="#L-6155"><span class="linenos">6155</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-6156"><a href="#L-6156"><span class="linenos">6156</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-6157"><a href="#L-6157"><span class="linenos">6157</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-6158"><a href="#L-6158"><span class="linenos">6158</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-6159"><a href="#L-6159"><span class="linenos">6159</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-6160"><a href="#L-6160"><span class="linenos">6160</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-6161"><a href="#L-6161"><span class="linenos">6161</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-6162"><a href="#L-6162"><span class="linenos">6162</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-6163"><a href="#L-6163"><span class="linenos">6163</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-6164"><a href="#L-6164"><span class="linenos">6164</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-6165"><a href="#L-6165"><span class="linenos">6165</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-6166"><a href="#L-6166"><span class="linenos">6166</span></a> <span class="p">)</span>
+</span><span id="L-6167"><a href="#L-6167"><span class="linenos">6167</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-6168"><a href="#L-6168"><span class="linenos">6168</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-6169"><a href="#L-6169"><span class="linenos">6169</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-6170"><a href="#L-6170"><span class="linenos">6170</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-6171"><a href="#L-6171"><span class="linenos">6171</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-6172"><a href="#L-6172"><span class="linenos">6172</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-6173"><a href="#L-6173"><span class="linenos">6173</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-6174"><a href="#L-6174"><span class="linenos">6174</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-6175"><a href="#L-6175"><span class="linenos">6175</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-6176"><a href="#L-6176"><span class="linenos">6176</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-6177"><a href="#L-6177"><span class="linenos">6177</span></a> <span class="n">keys</span><span class="o">=</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">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-6178"><a href="#L-6178"><span class="linenos">6178</span></a> <span class="n">values</span><span class="o">=</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="o">.</span><span class="n">values</span><span class="p">()]),</span>
+</span><span id="L-6179"><a href="#L-6179"><span class="linenos">6179</span></a> <span class="p">)</span>
+</span><span id="L-6180"><a href="#L-6180"><span class="linenos">6180</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-6181"><a href="#L-6181"><span class="linenos">6181</span></a>
+</span><span id="L-6182"><a href="#L-6182"><span class="linenos">6182</span></a>
+</span><span id="L-6183"><a href="#L-6183"><span class="linenos">6183</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-6184"><a href="#L-6184"><span class="linenos">6184</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6185"><a href="#L-6185"><span class="linenos">6185</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-6186"><a href="#L-6186"><span class="linenos">6186</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6187"><a href="#L-6187"><span class="linenos">6187</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-6188"><a href="#L-6188"><span class="linenos">6188</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-6189"><a href="#L-6189"><span class="linenos">6189</span></a>
-</span><span id="L-6190"><a href="#L-6190"><span class="linenos">6190</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-6191"><a href="#L-6191"><span class="linenos">6191</span></a>
+</span><span id="L-6190"><a href="#L-6190"><span class="linenos">6190</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-6191"><a href="#L-6191"><span class="linenos">6191</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-6192"><a href="#L-6192"><span class="linenos">6192</span></a>
-</span><span id="L-6193"><a href="#L-6193"><span class="linenos">6193</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-6194"><a href="#L-6194"><span class="linenos">6194</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6195"><a href="#L-6195"><span class="linenos">6195</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="L-6196"><a href="#L-6196"><span class="linenos">6196</span></a>
-</span><span id="L-6197"><a href="#L-6197"><span class="linenos">6197</span></a><span class="sd"> Example:</span>
-</span><span id="L-6198"><a href="#L-6198"><span class="linenos">6198</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-6199"><a href="#L-6199"><span class="linenos">6199</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-6200"><a href="#L-6200"><span class="linenos">6200</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="L-6193"><a href="#L-6193"><span class="linenos">6193</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-6194"><a href="#L-6194"><span class="linenos">6194</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-6195"><a href="#L-6195"><span class="linenos">6195</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-6196"><a href="#L-6196"><span class="linenos">6196</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-6197"><a href="#L-6197"><span class="linenos">6197</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-6198"><a href="#L-6198"><span class="linenos">6198</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-6199"><a href="#L-6199"><span class="linenos">6199</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6200"><a href="#L-6200"><span class="linenos">6200</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-6201"><a href="#L-6201"><span class="linenos">6201</span></a>
-</span><span id="L-6202"><a href="#L-6202"><span class="linenos">6202</span></a><span class="sd"> Args:</span>
-</span><span id="L-6203"><a href="#L-6203"><span class="linenos">6203</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="L-6204"><a href="#L-6204"><span class="linenos">6204</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="L-6205"><a href="#L-6205"><span class="linenos">6205</span></a>
-</span><span id="L-6206"><a href="#L-6206"><span class="linenos">6206</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6207"><a href="#L-6207"><span class="linenos">6207</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="L-6208"><a href="#L-6208"><span class="linenos">6208</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6209"><a href="#L-6209"><span class="linenos">6209</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="L-6210"><a href="#L-6210"><span class="linenos">6210</span></a> <span class="n">table</span>
-</span><span id="L-6211"><a href="#L-6211"><span class="linenos">6211</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-6212"><a href="#L-6212"><span class="linenos">6212</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-6213"><a href="#L-6213"><span class="linenos">6213</span></a> <span class="p">}</span>
-</span><span id="L-6214"><a href="#L-6214"><span class="linenos">6214</span></a>
-</span><span id="L-6215"><a href="#L-6215"><span class="linenos">6215</span></a>
-</span><span id="L-6216"><a href="#L-6216"><span class="linenos">6216</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-6217"><a href="#L-6217"><span class="linenos">6217</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-6218"><a href="#L-6218"><span class="linenos">6218</span></a>
-</span><span id="L-6219"><a href="#L-6219"><span class="linenos">6219</span></a><span class="sd"> Args:</span>
-</span><span id="L-6220"><a href="#L-6220"><span class="linenos">6220</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="L-6221"><a href="#L-6221"><span class="linenos">6221</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="L-6222"><a href="#L-6222"><span class="linenos">6222</span></a>
-</span><span id="L-6223"><a href="#L-6223"><span class="linenos">6223</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6224"><a href="#L-6224"><span class="linenos">6224</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-6225"><a href="#L-6225"><span class="linenos">6225</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-6226"><a href="#L-6226"><span class="linenos">6226</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="L-6202"><a href="#L-6202"><span class="linenos">6202</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-6203"><a href="#L-6203"><span class="linenos">6203</span></a>
+</span><span id="L-6204"><a href="#L-6204"><span class="linenos">6204</span></a>
+</span><span id="L-6205"><a href="#L-6205"><span class="linenos">6205</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-6206"><a href="#L-6206"><span class="linenos">6206</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6207"><a href="#L-6207"><span class="linenos">6207</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="L-6208"><a href="#L-6208"><span class="linenos">6208</span></a>
+</span><span id="L-6209"><a href="#L-6209"><span class="linenos">6209</span></a><span class="sd"> Example:</span>
+</span><span id="L-6210"><a href="#L-6210"><span class="linenos">6210</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-6211"><a href="#L-6211"><span class="linenos">6211</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-6212"><a href="#L-6212"><span class="linenos">6212</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="L-6213"><a href="#L-6213"><span class="linenos">6213</span></a>
+</span><span id="L-6214"><a href="#L-6214"><span class="linenos">6214</span></a><span class="sd"> Args:</span>
+</span><span id="L-6215"><a href="#L-6215"><span class="linenos">6215</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="L-6216"><a href="#L-6216"><span class="linenos">6216</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="L-6217"><a href="#L-6217"><span class="linenos">6217</span></a>
+</span><span id="L-6218"><a href="#L-6218"><span class="linenos">6218</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6219"><a href="#L-6219"><span class="linenos">6219</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="L-6220"><a href="#L-6220"><span class="linenos">6220</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6221"><a href="#L-6221"><span class="linenos">6221</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="L-6222"><a href="#L-6222"><span class="linenos">6222</span></a> <span class="n">table</span>
+</span><span id="L-6223"><a href="#L-6223"><span class="linenos">6223</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-6224"><a href="#L-6224"><span class="linenos">6224</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-6225"><a href="#L-6225"><span class="linenos">6225</span></a> <span class="p">}</span>
+</span><span id="L-6226"><a href="#L-6226"><span class="linenos">6226</span></a>
</span><span id="L-6227"><a href="#L-6227"><span class="linenos">6227</span></a>
-</span><span id="L-6228"><a href="#L-6228"><span class="linenos">6228</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6229"><a href="#L-6229"><span class="linenos">6229</span></a><span class="sd"> The table name.</span>
-</span><span id="L-6230"><a href="#L-6230"><span class="linenos">6230</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6231"><a href="#L-6231"><span class="linenos">6231</span></a>
-</span><span id="L-6232"><a href="#L-6232"><span class="linenos">6232</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-6233"><a href="#L-6233"><span class="linenos">6233</span></a>
-</span><span id="L-6234"><a href="#L-6234"><span class="linenos">6234</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-6235"><a href="#L-6235"><span class="linenos">6235</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-6236"><a href="#L-6236"><span class="linenos">6236</span></a>
-</span><span id="L-6237"><a href="#L-6237"><span class="linenos">6237</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-6238"><a href="#L-6238"><span class="linenos">6238</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-6239"><a href="#L-6239"><span class="linenos">6239</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-6240"><a href="#L-6240"><span class="linenos">6240</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-6241"><a href="#L-6241"><span class="linenos">6241</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-6242"><a href="#L-6242"><span class="linenos">6242</span></a> <span class="p">)</span>
+</span><span id="L-6228"><a href="#L-6228"><span class="linenos">6228</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-6229"><a href="#L-6229"><span class="linenos">6229</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-6230"><a href="#L-6230"><span class="linenos">6230</span></a>
+</span><span id="L-6231"><a href="#L-6231"><span class="linenos">6231</span></a><span class="sd"> Args:</span>
+</span><span id="L-6232"><a href="#L-6232"><span class="linenos">6232</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="L-6233"><a href="#L-6233"><span class="linenos">6233</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="L-6234"><a href="#L-6234"><span class="linenos">6234</span></a>
+</span><span id="L-6235"><a href="#L-6235"><span class="linenos">6235</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6236"><a href="#L-6236"><span class="linenos">6236</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-6237"><a href="#L-6237"><span class="linenos">6237</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-6238"><a href="#L-6238"><span class="linenos">6238</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="L-6239"><a href="#L-6239"><span class="linenos">6239</span></a>
+</span><span id="L-6240"><a href="#L-6240"><span class="linenos">6240</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6241"><a href="#L-6241"><span class="linenos">6241</span></a><span class="sd"> The table name.</span>
+</span><span id="L-6242"><a href="#L-6242"><span class="linenos">6242</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-6243"><a href="#L-6243"><span class="linenos">6243</span></a>
-</span><span id="L-6244"><a href="#L-6244"><span class="linenos">6244</span></a>
-</span><span id="L-6245"><a href="#L-6245"><span class="linenos">6245</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-6246"><a href="#L-6246"><span class="linenos">6246</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-6247"><a href="#L-6247"><span class="linenos">6247</span></a>
-</span><span id="L-6248"><a href="#L-6248"><span class="linenos">6248</span></a><span class="sd"> Args:</span>
-</span><span id="L-6249"><a href="#L-6249"><span class="linenos">6249</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-6250"><a href="#L-6250"><span class="linenos">6250</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="L-6251"><a href="#L-6251"><span class="linenos">6251</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-6252"><a href="#L-6252"><span class="linenos">6252</span></a>
-</span><span id="L-6253"><a href="#L-6253"><span class="linenos">6253</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6254"><a href="#L-6254"><span class="linenos">6254</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-6255"><a href="#L-6255"><span class="linenos">6255</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-6256"><a href="#L-6256"><span class="linenos">6256</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="L-6257"><a href="#L-6257"><span class="linenos">6257</span></a>
-</span><span id="L-6258"><a href="#L-6258"><span class="linenos">6258</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6259"><a href="#L-6259"><span class="linenos">6259</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-6260"><a href="#L-6260"><span class="linenos">6260</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6261"><a href="#L-6261"><span class="linenos">6261</span></a>
-</span><span id="L-6262"><a href="#L-6262"><span class="linenos">6262</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-6263"><a href="#L-6263"><span class="linenos">6263</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-6264"><a href="#L-6264"><span class="linenos">6264</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-6265"><a href="#L-6265"><span class="linenos">6265</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-6266"><a href="#L-6266"><span class="linenos">6266</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="L-6267"><a href="#L-6267"><span class="linenos">6267</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-6268"><a href="#L-6268"><span class="linenos">6268</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-6269"><a href="#L-6269"><span class="linenos">6269</span></a> <span class="p">)</span>
-</span><span id="L-6270"><a href="#L-6270"><span class="linenos">6270</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-6271"><a href="#L-6271"><span class="linenos">6271</span></a>
-</span><span id="L-6272"><a href="#L-6272"><span class="linenos">6272</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-6244"><a href="#L-6244"><span class="linenos">6244</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6245"><a href="#L-6245"><span class="linenos">6245</span></a>
+</span><span id="L-6246"><a href="#L-6246"><span class="linenos">6246</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-6247"><a href="#L-6247"><span class="linenos">6247</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-6248"><a href="#L-6248"><span class="linenos">6248</span></a>
+</span><span id="L-6249"><a href="#L-6249"><span class="linenos">6249</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-6250"><a href="#L-6250"><span class="linenos">6250</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-6251"><a href="#L-6251"><span class="linenos">6251</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-6252"><a href="#L-6252"><span class="linenos">6252</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-6253"><a href="#L-6253"><span class="linenos">6253</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-6254"><a href="#L-6254"><span class="linenos">6254</span></a> <span class="p">)</span>
+</span><span id="L-6255"><a href="#L-6255"><span class="linenos">6255</span></a>
+</span><span id="L-6256"><a href="#L-6256"><span class="linenos">6256</span></a>
+</span><span id="L-6257"><a href="#L-6257"><span class="linenos">6257</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-6258"><a href="#L-6258"><span class="linenos">6258</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-6259"><a href="#L-6259"><span class="linenos">6259</span></a>
+</span><span id="L-6260"><a href="#L-6260"><span class="linenos">6260</span></a><span class="sd"> Args:</span>
+</span><span id="L-6261"><a href="#L-6261"><span class="linenos">6261</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-6262"><a href="#L-6262"><span class="linenos">6262</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="L-6263"><a href="#L-6263"><span class="linenos">6263</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-6264"><a href="#L-6264"><span class="linenos">6264</span></a>
+</span><span id="L-6265"><a href="#L-6265"><span class="linenos">6265</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6266"><a href="#L-6266"><span class="linenos">6266</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-6267"><a href="#L-6267"><span class="linenos">6267</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-6268"><a href="#L-6268"><span class="linenos">6268</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="L-6269"><a href="#L-6269"><span class="linenos">6269</span></a>
+</span><span id="L-6270"><a href="#L-6270"><span class="linenos">6270</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6271"><a href="#L-6271"><span class="linenos">6271</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-6272"><a href="#L-6272"><span class="linenos">6272</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-6273"><a href="#L-6273"><span class="linenos">6273</span></a>
-</span><span id="L-6274"><a href="#L-6274"><span class="linenos">6274</span></a>
-</span><span id="L-6275"><a href="#L-6275"><span class="linenos">6275</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-6276"><a href="#L-6276"><span class="linenos">6276</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="L-6277"><a href="#L-6277"><span class="linenos">6277</span></a>
-</span><span id="L-6278"><a href="#L-6278"><span class="linenos">6278</span></a><span class="sd"> Args:</span>
-</span><span id="L-6279"><a href="#L-6279"><span class="linenos">6279</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-6280"><a href="#L-6280"><span class="linenos">6280</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-6281"><a href="#L-6281"><span class="linenos">6281</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="L-6282"><a href="#L-6282"><span class="linenos">6282</span></a>
-</span><span id="L-6283"><a href="#L-6283"><span class="linenos">6283</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6284"><a href="#L-6284"><span class="linenos">6284</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-6285"><a href="#L-6285"><span class="linenos">6285</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-6286"><a href="#L-6286"><span class="linenos">6286</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="L-6287"><a href="#L-6287"><span class="linenos">6287</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-6288"><a href="#L-6288"><span class="linenos">6288</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-6289"><a href="#L-6289"><span class="linenos">6289</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="L-6290"><a href="#L-6290"><span class="linenos">6290</span></a>
-</span><span id="L-6291"><a href="#L-6291"><span class="linenos">6291</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6292"><a href="#L-6292"><span class="linenos">6292</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-6293"><a href="#L-6293"><span class="linenos">6293</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6274"><a href="#L-6274"><span class="linenos">6274</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-6275"><a href="#L-6275"><span class="linenos">6275</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-6276"><a href="#L-6276"><span class="linenos">6276</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-6277"><a href="#L-6277"><span class="linenos">6277</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-6278"><a href="#L-6278"><span class="linenos">6278</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-6279"><a href="#L-6279"><span class="linenos">6279</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-6280"><a href="#L-6280"><span class="linenos">6280</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-6281"><a href="#L-6281"><span class="linenos">6281</span></a> <span class="p">)</span>
+</span><span id="L-6282"><a href="#L-6282"><span class="linenos">6282</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-6283"><a href="#L-6283"><span class="linenos">6283</span></a>
+</span><span id="L-6284"><a href="#L-6284"><span class="linenos">6284</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-6285"><a href="#L-6285"><span class="linenos">6285</span></a>
+</span><span id="L-6286"><a href="#L-6286"><span class="linenos">6286</span></a>
+</span><span id="L-6287"><a href="#L-6287"><span class="linenos">6287</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-6288"><a href="#L-6288"><span class="linenos">6288</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="L-6289"><a href="#L-6289"><span class="linenos">6289</span></a>
+</span><span id="L-6290"><a href="#L-6290"><span class="linenos">6290</span></a><span class="sd"> Args:</span>
+</span><span id="L-6291"><a href="#L-6291"><span class="linenos">6291</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-6292"><a href="#L-6292"><span class="linenos">6292</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-6293"><a href="#L-6293"><span class="linenos">6293</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
</span><span id="L-6294"><a href="#L-6294"><span class="linenos">6294</span></a>
-</span><span id="L-6295"><a href="#L-6295"><span class="linenos">6295</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-6296"><a href="#L-6296"><span class="linenos">6296</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-6297"><a href="#L-6297"><span class="linenos">6297</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-6298"><a href="#L-6298"><span class="linenos">6298</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-6299"><a href="#L-6299"><span class="linenos">6299</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-6300"><a href="#L-6300"><span class="linenos">6300</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-6301"><a href="#L-6301"><span class="linenos">6301</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6302"><a href="#L-6302"><span class="linenos">6302</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-6303"><a href="#L-6303"><span class="linenos">6303</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-6304"><a href="#L-6304"><span class="linenos">6304</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-6305"><a href="#L-6305"><span class="linenos">6305</span></a> <span class="k">pass</span>
-</span><span id="L-6306"><a href="#L-6306"><span class="linenos">6306</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-6307"><a href="#L-6307"><span class="linenos">6307</span></a>
-</span><span id="L-6308"><a href="#L-6308"><span class="linenos">6308</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-6309"><a href="#L-6309"><span class="linenos">6309</span></a>
-</span><span id="L-6310"><a href="#L-6310"><span class="linenos">6310</span></a>
-</span><span id="L-6311"><a href="#L-6311"><span class="linenos">6311</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="L-6312"><a href="#L-6312"><span class="linenos">6312</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-6313"><a href="#L-6313"><span class="linenos">6313</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6314"><a href="#L-6314"><span class="linenos">6314</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-6315"><a href="#L-6315"><span class="linenos">6315</span></a>
-</span><span id="L-6316"><a href="#L-6316"><span class="linenos">6316</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6317"><a href="#L-6317"><span class="linenos">6317</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-6318"><a href="#L-6318"><span class="linenos">6318</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-6319"><a href="#L-6319"><span class="linenos">6319</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="L-6320"><a href="#L-6320"><span class="linenos">6320</span></a>
-</span><span id="L-6321"><a href="#L-6321"><span class="linenos">6321</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-6322"><a href="#L-6322"><span class="linenos">6322</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-6323"><a href="#L-6323"><span class="linenos">6323</span></a>
-</span><span id="L-6324"><a href="#L-6324"><span class="linenos">6324</span></a><span class="sd"> Args:</span>
-</span><span id="L-6325"><a href="#L-6325"><span class="linenos">6325</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-6326"><a href="#L-6326"><span class="linenos">6326</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="L-6327"><a href="#L-6327"><span class="linenos">6327</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="L-6328"><a href="#L-6328"><span class="linenos">6328</span></a>
-</span><span id="L-6329"><a href="#L-6329"><span class="linenos">6329</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6330"><a href="#L-6330"><span class="linenos">6330</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-6331"><a href="#L-6331"><span class="linenos">6331</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6295"><a href="#L-6295"><span class="linenos">6295</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6296"><a href="#L-6296"><span class="linenos">6296</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-6297"><a href="#L-6297"><span class="linenos">6297</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-6298"><a href="#L-6298"><span class="linenos">6298</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="L-6299"><a href="#L-6299"><span class="linenos">6299</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-6300"><a href="#L-6300"><span class="linenos">6300</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-6301"><a href="#L-6301"><span class="linenos">6301</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-6302"><a href="#L-6302"><span class="linenos">6302</span></a>
+</span><span id="L-6303"><a href="#L-6303"><span class="linenos">6303</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6304"><a href="#L-6304"><span class="linenos">6304</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-6305"><a href="#L-6305"><span class="linenos">6305</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6306"><a href="#L-6306"><span class="linenos">6306</span></a>
+</span><span id="L-6307"><a href="#L-6307"><span class="linenos">6307</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-6308"><a href="#L-6308"><span class="linenos">6308</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-6309"><a href="#L-6309"><span class="linenos">6309</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-6310"><a href="#L-6310"><span class="linenos">6310</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-6311"><a href="#L-6311"><span class="linenos">6311</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-6312"><a href="#L-6312"><span class="linenos">6312</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-6313"><a href="#L-6313"><span class="linenos">6313</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6314"><a href="#L-6314"><span class="linenos">6314</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-6315"><a href="#L-6315"><span class="linenos">6315</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-6316"><a href="#L-6316"><span class="linenos">6316</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-6317"><a href="#L-6317"><span class="linenos">6317</span></a> <span class="k">pass</span>
+</span><span id="L-6318"><a href="#L-6318"><span class="linenos">6318</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-6319"><a href="#L-6319"><span class="linenos">6319</span></a>
+</span><span id="L-6320"><a href="#L-6320"><span class="linenos">6320</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-6321"><a href="#L-6321"><span class="linenos">6321</span></a>
+</span><span id="L-6322"><a href="#L-6322"><span class="linenos">6322</span></a>
+</span><span id="L-6323"><a href="#L-6323"><span class="linenos">6323</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="L-6324"><a href="#L-6324"><span class="linenos">6324</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-6325"><a href="#L-6325"><span class="linenos">6325</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6326"><a href="#L-6326"><span class="linenos">6326</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-6327"><a href="#L-6327"><span class="linenos">6327</span></a>
+</span><span id="L-6328"><a href="#L-6328"><span class="linenos">6328</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6329"><a href="#L-6329"><span class="linenos">6329</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-6330"><a href="#L-6330"><span class="linenos">6330</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-6331"><a href="#L-6331"><span class="linenos">6331</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
</span><span id="L-6332"><a href="#L-6332"><span class="linenos">6332</span></a>
-</span><span id="L-6333"><a href="#L-6333"><span class="linenos">6333</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-6334"><a href="#L-6334"><span class="linenos">6334</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-6335"><a href="#L-6335"><span class="linenos">6335</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-6336"><a href="#L-6336"><span class="linenos">6336</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-6337"><a href="#L-6337"><span class="linenos">6337</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-6338"><a href="#L-6338"><span class="linenos">6338</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-6339"><a href="#L-6339"><span class="linenos">6339</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-6340"><a href="#L-6340"><span class="linenos">6340</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-6341"><a href="#L-6341"><span class="linenos">6341</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-6342"><a href="#L-6342"><span class="linenos">6342</span></a>
-</span><span id="L-6343"><a href="#L-6343"><span class="linenos">6343</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-6333"><a href="#L-6333"><span class="linenos">6333</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-6334"><a href="#L-6334"><span class="linenos">6334</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-6335"><a href="#L-6335"><span class="linenos">6335</span></a>
+</span><span id="L-6336"><a href="#L-6336"><span class="linenos">6336</span></a><span class="sd"> Args:</span>
+</span><span id="L-6337"><a href="#L-6337"><span class="linenos">6337</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-6338"><a href="#L-6338"><span class="linenos">6338</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="L-6339"><a href="#L-6339"><span class="linenos">6339</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="L-6340"><a href="#L-6340"><span class="linenos">6340</span></a>
+</span><span id="L-6341"><a href="#L-6341"><span class="linenos">6341</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6342"><a href="#L-6342"><span class="linenos">6342</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-6343"><a href="#L-6343"><span class="linenos">6343</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-6344"><a href="#L-6344"><span class="linenos">6344</span></a>
-</span><span id="L-6345"><a href="#L-6345"><span class="linenos">6345</span></a>
-</span><span id="L-6346"><a href="#L-6346"><span class="linenos">6346</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-6347"><a href="#L-6347"><span class="linenos">6347</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6348"><a href="#L-6348"><span class="linenos">6348</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="L-6349"><a href="#L-6349"><span class="linenos">6349</span></a>
-</span><span id="L-6350"><a href="#L-6350"><span class="linenos">6350</span></a><span class="sd"> Examples:</span>
-</span><span id="L-6351"><a href="#L-6351"><span class="linenos">6351</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-6352"><a href="#L-6352"><span class="linenos">6352</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="L-6353"><a href="#L-6353"><span class="linenos">6353</span></a>
-</span><span id="L-6354"><a href="#L-6354"><span class="linenos">6354</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-6355"><a href="#L-6355"><span class="linenos">6355</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-6345"><a href="#L-6345"><span class="linenos">6345</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-6346"><a href="#L-6346"><span class="linenos">6346</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-6347"><a href="#L-6347"><span class="linenos">6347</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-6348"><a href="#L-6348"><span class="linenos">6348</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-6349"><a href="#L-6349"><span class="linenos">6349</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-6350"><a href="#L-6350"><span class="linenos">6350</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-6351"><a href="#L-6351"><span class="linenos">6351</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-6352"><a href="#L-6352"><span class="linenos">6352</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-6353"><a href="#L-6353"><span class="linenos">6353</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-6354"><a href="#L-6354"><span class="linenos">6354</span></a>
+</span><span id="L-6355"><a href="#L-6355"><span class="linenos">6355</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-6356"><a href="#L-6356"><span class="linenos">6356</span></a>
-</span><span id="L-6357"><a href="#L-6357"><span class="linenos">6357</span></a><span class="sd"> Args:</span>
-</span><span id="L-6358"><a href="#L-6358"><span class="linenos">6358</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-6359"><a href="#L-6359"><span class="linenos">6359</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-6360"><a href="#L-6360"><span class="linenos">6360</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-6361"><a href="#L-6361"><span class="linenos">6361</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-6362"><a href="#L-6362"><span class="linenos">6362</span></a>
-</span><span id="L-6363"><a href="#L-6363"><span class="linenos">6363</span></a><span class="sd"> Note:</span>
-</span><span id="L-6364"><a href="#L-6364"><span class="linenos">6364</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="L-6357"><a href="#L-6357"><span class="linenos">6357</span></a>
+</span><span id="L-6358"><a href="#L-6358"><span class="linenos">6358</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-6359"><a href="#L-6359"><span class="linenos">6359</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6360"><a href="#L-6360"><span class="linenos">6360</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-6361"><a href="#L-6361"><span class="linenos">6361</span></a>
+</span><span id="L-6362"><a href="#L-6362"><span class="linenos">6362</span></a><span class="sd"> Examples:</span>
+</span><span id="L-6363"><a href="#L-6363"><span class="linenos">6363</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-6364"><a href="#L-6364"><span class="linenos">6364</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
</span><span id="L-6365"><a href="#L-6365"><span class="linenos">6365</span></a>
-</span><span id="L-6366"><a href="#L-6366"><span class="linenos">6366</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6367"><a href="#L-6367"><span class="linenos">6367</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-6368"><a href="#L-6368"><span class="linenos">6368</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-6369"><a href="#L-6369"><span class="linenos">6369</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6370"><a href="#L-6370"><span class="linenos">6370</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-6371"><a href="#L-6371"><span class="linenos">6371</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-6372"><a href="#L-6372"><span class="linenos">6372</span></a>
-</span><span id="L-6373"><a href="#L-6373"><span class="linenos">6373</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-6366"><a href="#L-6366"><span class="linenos">6366</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-6367"><a href="#L-6367"><span class="linenos">6367</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-6368"><a href="#L-6368"><span class="linenos">6368</span></a>
+</span><span id="L-6369"><a href="#L-6369"><span class="linenos">6369</span></a><span class="sd"> Args:</span>
+</span><span id="L-6370"><a href="#L-6370"><span class="linenos">6370</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-6371"><a href="#L-6371"><span class="linenos">6371</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-6372"><a href="#L-6372"><span class="linenos">6372</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-6373"><a href="#L-6373"><span class="linenos">6373</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
</span><span id="L-6374"><a href="#L-6374"><span class="linenos">6374</span></a>
-</span><span id="L-6375"><a href="#L-6375"><span class="linenos">6375</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-6376"><a href="#L-6376"><span class="linenos">6376</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-6375"><a href="#L-6375"><span class="linenos">6375</span></a><span class="sd"> Note:</span>
+</span><span id="L-6376"><a href="#L-6376"><span class="linenos">6376</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
</span><span id="L-6377"><a href="#L-6377"><span class="linenos">6377</span></a>
-</span><span id="L-6378"><a href="#L-6378"><span class="linenos">6378</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-6379"><a href="#L-6379"><span class="linenos">6379</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-6380"><a href="#L-6380"><span class="linenos">6380</span></a>
-</span><span id="L-6381"><a href="#L-6381"><span class="linenos">6381</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="L-6382"><a href="#L-6382"><span class="linenos">6382</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-6383"><a href="#L-6383"><span class="linenos">6383</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6384"><a href="#L-6384"><span class="linenos">6384</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-6385"><a href="#L-6385"><span class="linenos">6385</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-6378"><a href="#L-6378"><span class="linenos">6378</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6379"><a href="#L-6379"><span class="linenos">6379</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-6380"><a href="#L-6380"><span class="linenos">6380</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-6381"><a href="#L-6381"><span class="linenos">6381</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6382"><a href="#L-6382"><span class="linenos">6382</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-6383"><a href="#L-6383"><span class="linenos">6383</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-6384"><a href="#L-6384"><span class="linenos">6384</span></a>
+</span><span id="L-6385"><a href="#L-6385"><span class="linenos">6385</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-6386"><a href="#L-6386"><span class="linenos">6386</span></a>
-</span><span id="L-6387"><a href="#L-6387"><span class="linenos">6387</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-6388"><a href="#L-6388"><span class="linenos">6388</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-6387"><a href="#L-6387"><span class="linenos">6387</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-6388"><a href="#L-6388"><span class="linenos">6388</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-6389"><a href="#L-6389"><span class="linenos">6389</span></a>
-</span><span id="L-6390"><a href="#L-6390"><span class="linenos">6390</span></a> <span class="k">return</span> <span class="n">function</span>
-</span><span id="L-6391"><a href="#L-6391"><span class="linenos">6391</span></a>
+</span><span id="L-6390"><a href="#L-6390"><span class="linenos">6390</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-6391"><a href="#L-6391"><span class="linenos">6391</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-6392"><a href="#L-6392"><span class="linenos">6392</span></a>
-</span><span id="L-6393"><a href="#L-6393"><span class="linenos">6393</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-6394"><a href="#L-6394"><span class="linenos">6394</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6395"><a href="#L-6395"><span class="linenos">6395</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-6396"><a href="#L-6396"><span class="linenos">6396</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6397"><a href="#L-6397"><span class="linenos">6397</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-6393"><a href="#L-6393"><span class="linenos">6393</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="L-6394"><a href="#L-6394"><span class="linenos">6394</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-6395"><a href="#L-6395"><span class="linenos">6395</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6396"><a href="#L-6396"><span class="linenos">6396</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-6397"><a href="#L-6397"><span class="linenos">6397</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-6398"><a href="#L-6398"><span class="linenos">6398</span></a>
-</span><span id="L-6399"><a href="#L-6399"><span class="linenos">6399</span></a>
-</span><span id="L-6400"><a href="#L-6400"><span class="linenos">6400</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-6401"><a href="#L-6401"><span class="linenos">6401</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6402"><a href="#L-6402"><span class="linenos">6402</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="L-6403"><a href="#L-6403"><span class="linenos">6403</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6404"><a href="#L-6404"><span class="linenos">6404</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-6405"><a href="#L-6405"><span class="linenos">6405</span></a>
-</span><span id="L-6406"><a href="#L-6406"><span class="linenos">6406</span></a>
-</span><span id="L-6407"><a href="#L-6407"><span class="linenos">6407</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-6408"><a href="#L-6408"><span class="linenos">6408</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6409"><a href="#L-6409"><span class="linenos">6409</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="L-6410"><a href="#L-6410"><span class="linenos">6410</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6411"><a href="#L-6411"><span class="linenos">6411</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
-</span><span id="L-6412"><a href="#L-6412"><span class="linenos">6412</span></a>
-</span><span id="L-6413"><a href="#L-6413"><span class="linenos">6413</span></a>
-</span><span id="L-6414"><a href="#L-6414"><span class="linenos">6414</span></a><span class="c1"># TODO: deprecate this</span>
-</span><span id="L-6415"><a href="#L-6415"><span class="linenos">6415</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-6416"><a href="#L-6416"><span class="linenos">6416</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-6417"><a href="#L-6417"><span class="linenos">6417</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-6399"><a href="#L-6399"><span class="linenos">6399</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-6400"><a href="#L-6400"><span class="linenos">6400</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-6401"><a href="#L-6401"><span class="linenos">6401</span></a>
+</span><span id="L-6402"><a href="#L-6402"><span class="linenos">6402</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-6403"><a href="#L-6403"><span class="linenos">6403</span></a>
+</span><span id="L-6404"><a href="#L-6404"><span class="linenos">6404</span></a>
+</span><span id="L-6405"><a href="#L-6405"><span class="linenos">6405</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-6406"><a href="#L-6406"><span class="linenos">6406</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6407"><a href="#L-6407"><span class="linenos">6407</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="L-6408"><a href="#L-6408"><span class="linenos">6408</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6409"><a href="#L-6409"><span class="linenos">6409</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-6410"><a href="#L-6410"><span class="linenos">6410</span></a>
+</span><span id="L-6411"><a href="#L-6411"><span class="linenos">6411</span></a>
+</span><span id="L-6412"><a href="#L-6412"><span class="linenos">6412</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-6413"><a href="#L-6413"><span class="linenos">6413</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6414"><a href="#L-6414"><span class="linenos">6414</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-6415"><a href="#L-6415"><span class="linenos">6415</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6416"><a href="#L-6416"><span class="linenos">6416</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-6417"><a href="#L-6417"><span class="linenos">6417</span></a>
+</span><span id="L-6418"><a href="#L-6418"><span class="linenos">6418</span></a>
+</span><span id="L-6419"><a href="#L-6419"><span class="linenos">6419</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-6420"><a href="#L-6420"><span class="linenos">6420</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6421"><a href="#L-6421"><span class="linenos">6421</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-6422"><a href="#L-6422"><span class="linenos">6422</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6423"><a href="#L-6423"><span class="linenos">6423</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-6424"><a href="#L-6424"><span class="linenos">6424</span></a>
+</span><span id="L-6425"><a href="#L-6425"><span class="linenos">6425</span></a>
+</span><span id="L-6426"><a href="#L-6426"><span class="linenos">6426</span></a><span class="c1"># TODO: deprecate this</span>
+</span><span id="L-6427"><a href="#L-6427"><span class="linenos">6427</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-6428"><a href="#L-6428"><span class="linenos">6428</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-6429"><a href="#L-6429"><span class="linenos">6429</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -13143,7 +13185,7 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</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-490"><a href="#Expression-490"><span class="linenos">490</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-491"><a href="#Expression-491"><span class="linenos">491</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-491"><a href="#Expression-491"><span class="linenos">491</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="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</span></a>
</span><span id="Expression-493"><a href="#Expression-493"><span class="linenos">493</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-494"><a href="#Expression-494"><span class="linenos">494</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>
@@ -14521,7 +14563,7 @@ the BFS (Breadth-first) order.</p>
</span><span id="Expression.flatten-488"><a href="#Expression.flatten-488"><span class="linenos">488</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.flatten-489"><a href="#Expression.flatten-489"><span class="linenos">489</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-490"><a href="#Expression.flatten-490"><span class="linenos">490</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-491"><a href="#Expression.flatten-491"><span class="linenos">491</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.flatten-491"><a href="#Expression.flatten-491"><span class="linenos">491</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="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">)</span> <span class="k">else</span> <span class="n">node</span>
</span></pre></div>
@@ -42565,7 +42607,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.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#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.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;}</span>
</div>
@@ -42578,7 +42620,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.INT: &#39;INT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;}</span>
</div>
@@ -42603,7 +42645,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.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;}</span>
</div>
@@ -42616,7 +42658,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.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.TIMETZ: &#39;TIMETZ&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIME: &#39;TIME&#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.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.TIMETZ: &#39;TIMETZ&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;, &lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;}</span>
</div>
@@ -55497,7 +55539,7 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Cast-4289"><a href="#Cast-4289"><span class="linenos">4289</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Cast-4290"><a href="#Cast-4290"><span class="linenos">4290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Cast-4290"><a href="#Cast-4290"><span class="linenos">4290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Cast-4291"><a href="#Cast-4291"><span class="linenos">4291</span></a>
</span><span id="Cast-4292"><a href="#Cast-4292"><span class="linenos">4292</span></a> <span class="nd">@property</span>
</span><span id="Cast-4293"><a href="#Cast-4293"><span class="linenos">4293</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>
@@ -55532,7 +55574,7 @@ name is set to the expression's class name transformed to snake case.</li>
<div id="Cast.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: True, &#39;to&#39;: True, &#39;format&#39;: False}</span>
+<span class="default_value">{&#39;this&#39;: True, &#39;to&#39;: True, &#39;format&#39;: False, &#39;safe&#39;: False}</span>
</div>
@@ -61888,6 +61930,330 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="ExplodeOuter">
+ <input id="ExplodeOuter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr class">
+
+ <span class="def">class</span>
+ <span class="name">ExplodeOuter</span><wbr>(<span class="base"><a href="#Explode">Explode</a></span>):
+
+ <label class="view-source-button" for="ExplodeOuter-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#ExplodeOuter"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ExplodeOuter-4542"><a href="#ExplodeOuter-4542"><span class="linenos">4542</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="ExplodeOuter-4543"><a href="#ExplodeOuter-4543"><span class="linenos">4543</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="ExplodeOuter.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;explodeouter&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#ExplodeOuter.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="ExplodeOuter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="ExplodeOuter.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="ExplodeOuter.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="ExplodeOuter.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="ExplodeOuter.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="ExplodeOuter.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="ExplodeOuter.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="ExplodeOuter.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="ExplodeOuter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="ExplodeOuter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="ExplodeOuter.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="ExplodeOuter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="ExplodeOuter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="ExplodeOuter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="ExplodeOuter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="ExplodeOuter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ExplodeOuter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="ExplodeOuter.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="ExplodeOuter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="ExplodeOuter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="ExplodeOuter.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="ExplodeOuter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="ExplodeOuter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="ExplodeOuter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="ExplodeOuter.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="ExplodeOuter.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="ExplodeOuter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="ExplodeOuter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="ExplodeOuter.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="ExplodeOuter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="ExplodeOuter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="ExplodeOuter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="ExplodeOuter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="ExplodeOuter.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="ExplodeOuter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="ExplodeOuter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="ExplodeOuter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="ExplodeOuter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="ExplodeOuter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="ExplodeOuter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="ExplodeOuter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ExplodeOuter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="ExplodeOuter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="ExplodeOuter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="ExplodeOuter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="ExplodeOuter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="ExplodeOuter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="ExplodeOuter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="ExplodeOuter.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="ExplodeOuter.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="ExplodeOuter.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="ExplodeOuter.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="ExplodeOuter.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="ExplodeOuter.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="ExplodeOuter.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="ExplodeOuter.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="ExplodeOuter.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="ExplodeOuter.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="ExplodeOuter.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="ExplodeOuter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="ExplodeOuter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="ExplodeOuter.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="ExplodeOuter.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="ExplodeOuter.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="ExplodeOuter.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="ExplodeOuter.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="Posexplode">
+ <input id="Posexplode-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr class">
+
+ <span class="def">class</span>
+ <span class="name">Posexplode</span><wbr>(<span class="base"><a href="#Explode">Explode</a></span>):
+
+ <label class="view-source-button" for="Posexplode-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Posexplode"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-4546"><a href="#Posexplode-4546"><span class="linenos">4546</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="Posexplode-4547"><a href="#Posexplode-4547"><span class="linenos">4547</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="Posexplode.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;posexplode&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#Posexplode.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Posexplode.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Posexplode.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="Posexplode.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="Posexplode.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="Posexplode.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="Posexplode.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="Posexplode.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="Posexplode.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Posexplode.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Posexplode.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Posexplode.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Posexplode.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Posexplode.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <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>
+ <dd id="Posexplode.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Posexplode.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="Posexplode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Posexplode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="Posexplode.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Posexplode.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Posexplode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Posexplode.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Posexplode.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Posexplode.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Posexplode.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Posexplode.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Posexplode.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Posexplode.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Posexplode.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Posexplode.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Posexplode.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Posexplode.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="Posexplode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="Posexplode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="Posexplode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Posexplode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="Posexplode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="Posexplode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="Posexplode.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Posexplode.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Posexplode.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Posexplode.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Posexplode.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="Posexplode.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="Posexplode.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="Posexplode.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="Posexplode.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="Posexplode.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="Posexplode.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="Posexplode.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="Posexplode.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="Posexplode.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="Posexplode.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="Posexplode.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="Posexplode.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="Posexplode.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="Posexplode.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="Posexplode.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="Posexplode.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="Posexplode.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="PosexplodeOuter">
+ <input id="PosexplodeOuter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr class">
+
+ <span class="def">class</span>
+ <span class="name">PosexplodeOuter</span><wbr>(<span class="base"><a href="#Posexplode">Posexplode</a></span>):
+
+ <label class="view-source-button" for="PosexplodeOuter-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#PosexplodeOuter"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PosexplodeOuter-4550"><a href="#PosexplodeOuter-4550"><span class="linenos">4550</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">):</span>
+</span><span id="PosexplodeOuter-4551"><a href="#PosexplodeOuter-4551"><span class="linenos">4551</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="PosexplodeOuter.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;posexplodeouter&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#PosexplodeOuter.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="PosexplodeOuter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="PosexplodeOuter.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="PosexplodeOuter.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="PosexplodeOuter.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="PosexplodeOuter.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="PosexplodeOuter.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="PosexplodeOuter.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="PosexplodeOuter.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="PosexplodeOuter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="PosexplodeOuter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="PosexplodeOuter.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="PosexplodeOuter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="PosexplodeOuter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="PosexplodeOuter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="PosexplodeOuter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="PosexplodeOuter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="PosexplodeOuter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="PosexplodeOuter.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="PosexplodeOuter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="PosexplodeOuter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="PosexplodeOuter.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="PosexplodeOuter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="PosexplodeOuter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="PosexplodeOuter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="PosexplodeOuter.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="PosexplodeOuter.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="PosexplodeOuter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="PosexplodeOuter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="PosexplodeOuter.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="PosexplodeOuter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="PosexplodeOuter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="PosexplodeOuter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="PosexplodeOuter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="PosexplodeOuter.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="PosexplodeOuter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="PosexplodeOuter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="PosexplodeOuter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="PosexplodeOuter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="PosexplodeOuter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="PosexplodeOuter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="PosexplodeOuter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="PosexplodeOuter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="PosexplodeOuter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="PosexplodeOuter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="PosexplodeOuter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="PosexplodeOuter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="PosexplodeOuter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="PosexplodeOuter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="PosexplodeOuter.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="PosexplodeOuter.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="PosexplodeOuter.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="PosexplodeOuter.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="PosexplodeOuter.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="PosexplodeOuter.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="PosexplodeOuter.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="PosexplodeOuter.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="PosexplodeOuter.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="PosexplodeOuter.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="PosexplodeOuter.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="PosexplodeOuter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="PosexplodeOuter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="PosexplodeOuter.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="PosexplodeOuter.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="PosexplodeOuter.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="PosexplodeOuter.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="PosexplodeOuter.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Floor">
<input id="Floor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -61899,8 +62265,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Floor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-4542"><a href="#Floor-4542"><span class="linenos">4542</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Floor-4543"><a href="#Floor-4543"><span class="linenos">4543</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-4554"><a href="#Floor-4554"><span class="linenos">4554</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Floor-4555"><a href="#Floor-4555"><span class="linenos">4555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -62018,8 +62384,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FromBase64"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-4546"><a href="#FromBase64-4546"><span class="linenos">4546</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="FromBase64-4547"><a href="#FromBase64-4547"><span class="linenos">4547</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-4558"><a href="#FromBase64-4558"><span class="linenos">4558</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="FromBase64-4559"><a href="#FromBase64-4559"><span class="linenos">4559</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -62126,8 +62492,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ToBase64"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-4550"><a href="#ToBase64-4550"><span class="linenos">4550</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToBase64-4551"><a href="#ToBase64-4551"><span class="linenos">4551</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-4562"><a href="#ToBase64-4562"><span class="linenos">4562</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToBase64-4563"><a href="#ToBase64-4563"><span class="linenos">4563</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -62234,9 +62600,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Greatest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-4554"><a href="#Greatest-4554"><span class="linenos">4554</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Greatest-4555"><a href="#Greatest-4555"><span class="linenos">4555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Greatest-4556"><a href="#Greatest-4556"><span class="linenos">4556</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-4566"><a href="#Greatest-4566"><span class="linenos">4566</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Greatest-4567"><a href="#Greatest-4567"><span class="linenos">4567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Greatest-4568"><a href="#Greatest-4568"><span class="linenos">4568</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -62365,8 +62731,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#GroupConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-4559"><a href="#GroupConcat-4559"><span class="linenos">4559</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="GroupConcat-4560"><a href="#GroupConcat-4560"><span class="linenos">4560</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-4571"><a href="#GroupConcat-4571"><span class="linenos">4571</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="GroupConcat-4572"><a href="#GroupConcat-4572"><span class="linenos">4572</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -62484,8 +62850,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Hex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-4563"><a href="#Hex-4563"><span class="linenos">4563</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Hex-4564"><a href="#Hex-4564"><span class="linenos">4564</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-4575"><a href="#Hex-4575"><span class="linenos">4575</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Hex-4576"><a href="#Hex-4576"><span class="linenos">4576</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -62592,8 +62958,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Xor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Xor-4567"><a href="#Xor-4567"><span class="linenos">4567</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Xor-4568"><a href="#Xor-4568"><span class="linenos">4568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Xor-4579"><a href="#Xor-4579"><span class="linenos">4579</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Xor-4580"><a href="#Xor-4580"><span class="linenos">4580</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -62716,8 +63082,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#If"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="If-4571"><a href="#If-4571"><span class="linenos">4571</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="If-4572"><a href="#If-4572"><span class="linenos">4572</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="If-4583"><a href="#If-4583"><span class="linenos">4583</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="If-4584"><a href="#If-4584"><span class="linenos">4584</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -62835,8 +63201,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Initcap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-4575"><a href="#Initcap-4575"><span class="linenos">4575</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Initcap-4576"><a href="#Initcap-4576"><span class="linenos">4576</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-4587"><a href="#Initcap-4587"><span class="linenos">4587</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Initcap-4588"><a href="#Initcap-4588"><span class="linenos">4588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -62954,8 +63320,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#IsNan"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsNan-4579"><a href="#IsNan-4579"><span class="linenos">4579</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IsNan-4580"><a href="#IsNan-4580"><span class="linenos">4580</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsNan-4591"><a href="#IsNan-4591"><span class="linenos">4591</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IsNan-4592"><a href="#IsNan-4592"><span class="linenos">4592</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -63062,8 +63428,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FormatJson"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FormatJson-4583"><a href="#FormatJson-4583"><span class="linenos">4583</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="FormatJson-4584"><a href="#FormatJson-4584"><span class="linenos">4584</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FormatJson-4595"><a href="#FormatJson-4595"><span class="linenos">4595</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="FormatJson-4596"><a href="#FormatJson-4596"><span class="linenos">4596</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -63162,8 +63528,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONKeyValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-4587"><a href="#JSONKeyValue-4587"><span class="linenos">4587</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONKeyValue-4588"><a href="#JSONKeyValue-4588"><span class="linenos">4588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-4599"><a href="#JSONKeyValue-4599"><span class="linenos">4599</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONKeyValue-4600"><a href="#JSONKeyValue-4600"><span class="linenos">4600</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -63273,14 +63639,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONObject"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-4591"><a href="#JSONObject-4591"><span class="linenos">4591</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONObject-4592"><a href="#JSONObject-4592"><span class="linenos">4592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONObject-4593"><a href="#JSONObject-4593"><span class="linenos">4593</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-4594"><a href="#JSONObject-4594"><span class="linenos">4594</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-4595"><a href="#JSONObject-4595"><span class="linenos">4595</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-4596"><a href="#JSONObject-4596"><span class="linenos">4596</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-4597"><a href="#JSONObject-4597"><span class="linenos">4597</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-4598"><a href="#JSONObject-4598"><span class="linenos">4598</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-4603"><a href="#JSONObject-4603"><span class="linenos">4603</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONObject-4604"><a href="#JSONObject-4604"><span class="linenos">4604</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONObject-4605"><a href="#JSONObject-4605"><span class="linenos">4605</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-4606"><a href="#JSONObject-4606"><span class="linenos">4606</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-4607"><a href="#JSONObject-4607"><span class="linenos">4607</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-4608"><a href="#JSONObject-4608"><span class="linenos">4608</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-4609"><a href="#JSONObject-4609"><span class="linenos">4609</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-4610"><a href="#JSONObject-4610"><span class="linenos">4610</span></a> <span class="p">}</span>
</span></pre></div>
@@ -63399,13 +63765,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArray-4602"><a href="#JSONArray-4602"><span class="linenos">4602</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArray-4603"><a href="#JSONArray-4603"><span class="linenos">4603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONArray-4604"><a href="#JSONArray-4604"><span class="linenos">4604</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONArray-4605"><a href="#JSONArray-4605"><span class="linenos">4605</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-4606"><a href="#JSONArray-4606"><span class="linenos">4606</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-4607"><a href="#JSONArray-4607"><span class="linenos">4607</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-4608"><a href="#JSONArray-4608"><span class="linenos">4608</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArray-4614"><a href="#JSONArray-4614"><span class="linenos">4614</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArray-4615"><a href="#JSONArray-4615"><span class="linenos">4615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONArray-4616"><a href="#JSONArray-4616"><span class="linenos">4616</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONArray-4617"><a href="#JSONArray-4617"><span class="linenos">4617</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-4618"><a href="#JSONArray-4618"><span class="linenos">4618</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-4619"><a href="#JSONArray-4619"><span class="linenos">4619</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-4620"><a href="#JSONArray-4620"><span class="linenos">4620</span></a> <span class="p">}</span>
</span></pre></div>
@@ -63523,14 +63889,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArrayAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayAgg-4612"><a href="#JSONArrayAgg-4612"><span class="linenos">4612</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArrayAgg-4613"><a href="#JSONArrayAgg-4613"><span class="linenos">4613</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONArrayAgg-4614"><a href="#JSONArrayAgg-4614"><span class="linenos">4614</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4615"><a href="#JSONArrayAgg-4615"><span class="linenos">4615</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4616"><a href="#JSONArrayAgg-4616"><span class="linenos">4616</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4617"><a href="#JSONArrayAgg-4617"><span class="linenos">4617</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4618"><a href="#JSONArrayAgg-4618"><span class="linenos">4618</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-4619"><a href="#JSONArrayAgg-4619"><span class="linenos">4619</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayAgg-4624"><a href="#JSONArrayAgg-4624"><span class="linenos">4624</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArrayAgg-4625"><a href="#JSONArrayAgg-4625"><span class="linenos">4625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONArrayAgg-4626"><a href="#JSONArrayAgg-4626"><span class="linenos">4626</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4627"><a href="#JSONArrayAgg-4627"><span class="linenos">4627</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4628"><a href="#JSONArrayAgg-4628"><span class="linenos">4628</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4629"><a href="#JSONArrayAgg-4629"><span class="linenos">4629</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4630"><a href="#JSONArrayAgg-4630"><span class="linenos">4630</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-4631"><a href="#JSONArrayAgg-4631"><span class="linenos">4631</span></a> <span class="p">}</span>
</span></pre></div>
@@ -63648,8 +64014,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONColumnDef-4624"><a href="#JSONColumnDef-4624"><span class="linenos">4624</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONColumnDef-4625"><a href="#JSONColumnDef-4625"><span class="linenos">4625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONColumnDef-4636"><a href="#JSONColumnDef-4636"><span class="linenos">4636</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONColumnDef-4637"><a href="#JSONColumnDef-4637"><span class="linenos">4637</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -63658,7 +64024,7 @@ array<int> != array<float>.</p>
<div id="JSONColumnDef.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: True, &#39;kind&#39;: False, &#39;path&#39;: False}</span>
+<span class="default_value">{&#39;this&#39;: False, &#39;kind&#39;: False, &#39;path&#39;: False, &#39;nested_schema&#39;: False}</span>
</div>
@@ -63748,6 +64114,117 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="JSONSchema">
+ <input id="JSONSchema-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr class">
+
+ <span class="def">class</span>
+ <span class="name">JSONSchema</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="JSONSchema-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#JSONSchema"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONSchema-4640"><a href="#JSONSchema-4640"><span class="linenos">4640</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONSchema-4641"><a href="#JSONSchema-4641"><span class="linenos">4641</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="JSONSchema.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;expressions&#39;: True}</span>
+
+
+ </div>
+ <a class="headerlink" href="#JSONSchema.arg_types"></a>
+
+
+
+ </div>
+ <div id="JSONSchema.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;jsonschema&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#JSONSchema.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="JSONSchema.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="JSONSchema.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="JSONSchema.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="JSONSchema.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="JSONSchema.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="JSONSchema.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="JSONSchema.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="JSONSchema.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="JSONSchema.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="JSONSchema.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="JSONSchema.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="JSONSchema.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="JSONSchema.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="JSONSchema.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="JSONSchema.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="JSONSchema.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="JSONSchema.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="JSONSchema.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="JSONSchema.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="JSONSchema.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="JSONSchema.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="JSONSchema.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="JSONSchema.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="JSONSchema.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="JSONSchema.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="JSONSchema.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="JSONSchema.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="JSONSchema.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="JSONSchema.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="JSONSchema.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="JSONSchema.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="JSONSchema.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="JSONSchema.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="JSONSchema.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="JSONSchema.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="JSONSchema.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="JSONSchema.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="JSONSchema.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="JSONSchema.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="JSONSchema.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="JSONSchema.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="JSONSchema.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="JSONSchema.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="JSONSchema.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="JSONSchema.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="JSONSchema.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="JSONSchema.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="JSONSchema.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="JSONSchema.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="JSONSchema.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="JSONSchema.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="JSONSchema.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="JSONSchema.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="JSONSchema.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="JSONSchema.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="JSONSchema.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="JSONSchema.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="JSONSchema.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="JSONSchema.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="JSONSchema.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="JSONTable">
<input id="JSONTable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -63759,14 +64236,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONTable-4629"><a href="#JSONTable-4629"><span class="linenos">4629</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONTable-4630"><a href="#JSONTable-4630"><span class="linenos">4630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONTable-4631"><a href="#JSONTable-4631"><span class="linenos">4631</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONTable-4632"><a href="#JSONTable-4632"><span class="linenos">4632</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONTable-4633"><a href="#JSONTable-4633"><span class="linenos">4633</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-4634"><a href="#JSONTable-4634"><span class="linenos">4634</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-4635"><a href="#JSONTable-4635"><span class="linenos">4635</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-4636"><a href="#JSONTable-4636"><span class="linenos">4636</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONTable-4645"><a href="#JSONTable-4645"><span class="linenos">4645</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONTable-4646"><a href="#JSONTable-4646"><span class="linenos">4646</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONTable-4647"><a href="#JSONTable-4647"><span class="linenos">4647</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONTable-4648"><a href="#JSONTable-4648"><span class="linenos">4648</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONTable-4649"><a href="#JSONTable-4649"><span class="linenos">4649</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-4650"><a href="#JSONTable-4650"><span class="linenos">4650</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-4651"><a href="#JSONTable-4651"><span class="linenos">4651</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-4652"><a href="#JSONTable-4652"><span class="linenos">4652</span></a> <span class="p">}</span>
</span></pre></div>
@@ -63775,7 +64252,7 @@ array<int> != array<float>.</p>
<div id="JSONTable.arg_types" class="classattr">
<div class="attr variable">
<span class="name">arg_types</span> =
-<span class="default_value">{&#39;this&#39;: True, &#39;expressions&#39;: True, &#39;path&#39;: False, &#39;error_handling&#39;: False, &#39;empty_handling&#39;: False}</span>
+<span class="default_value">{&#39;this&#39;: True, &#39;schema&#39;: True, &#39;path&#39;: False, &#39;error_handling&#39;: False, &#39;empty_handling&#39;: False}</span>
</div>
@@ -63884,8 +64361,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#OpenJSONColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-4639"><a href="#OpenJSONColumnDef-4639"><span class="linenos">4639</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="OpenJSONColumnDef-4640"><a href="#OpenJSONColumnDef-4640"><span class="linenos">4640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-4655"><a href="#OpenJSONColumnDef-4655"><span class="linenos">4655</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="OpenJSONColumnDef-4656"><a href="#OpenJSONColumnDef-4656"><span class="linenos">4656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -63995,8 +64472,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#OpenJSON"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-4643"><a href="#OpenJSON-4643"><span class="linenos">4643</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="OpenJSON-4644"><a href="#OpenJSON-4644"><span class="linenos">4644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-4659"><a href="#OpenJSON-4659"><span class="linenos">4659</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="OpenJSON-4660"><a href="#OpenJSON-4660"><span class="linenos">4660</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -64114,8 +64591,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-4647"><a href="#JSONBContains-4647"><span class="linenos">4647</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="JSONBContains-4648"><a href="#JSONBContains-4648"><span class="linenos">4648</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-4663"><a href="#JSONBContains-4663"><span class="linenos">4663</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="JSONBContains-4664"><a href="#JSONBContains-4664"><span class="linenos">4664</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64219,8 +64696,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-4651"><a href="#JSONExtract-4651"><span class="linenos">4651</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONExtract-4652"><a href="#JSONExtract-4652"><span class="linenos">4652</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-4667"><a href="#JSONExtract-4667"><span class="linenos">4667</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONExtract-4668"><a href="#JSONExtract-4668"><span class="linenos">4668</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64332,8 +64809,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-4655"><a href="#JSONExtractScalar-4655"><span class="linenos">4655</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="JSONExtractScalar-4656"><a href="#JSONExtractScalar-4656"><span class="linenos">4656</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-4671"><a href="#JSONExtractScalar-4671"><span class="linenos">4671</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="JSONExtractScalar-4672"><a href="#JSONExtractScalar-4672"><span class="linenos">4672</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64445,8 +64922,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-4659"><a href="#JSONBExtract-4659"><span class="linenos">4659</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="JSONBExtract-4660"><a href="#JSONBExtract-4660"><span class="linenos">4660</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-4675"><a href="#JSONBExtract-4675"><span class="linenos">4675</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="JSONBExtract-4676"><a href="#JSONBExtract-4676"><span class="linenos">4676</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64558,8 +65035,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-4663"><a href="#JSONBExtractScalar-4663"><span class="linenos">4663</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
-</span><span id="JSONBExtractScalar-4664"><a href="#JSONBExtractScalar-4664"><span class="linenos">4664</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-4679"><a href="#JSONBExtractScalar-4679"><span class="linenos">4679</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
+</span><span id="JSONBExtractScalar-4680"><a href="#JSONBExtractScalar-4680"><span class="linenos">4680</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64671,9 +65148,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-4667"><a href="#JSONFormat-4667"><span class="linenos">4667</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONFormat-4668"><a href="#JSONFormat-4668"><span class="linenos">4668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="JSONFormat-4669"><a href="#JSONFormat-4669"><span class="linenos">4669</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-4683"><a href="#JSONFormat-4683"><span class="linenos">4683</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONFormat-4684"><a href="#JSONFormat-4684"><span class="linenos">4684</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="JSONFormat-4685"><a href="#JSONFormat-4685"><span class="linenos">4685</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64791,8 +65268,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArrayContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayContains-4673"><a href="#JSONArrayContains-4673"><span class="linenos">4673</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArrayContains-4674"><a href="#JSONArrayContains-4674"><span class="linenos">4674</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayContains-4689"><a href="#JSONArrayContains-4689"><span class="linenos">4689</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArrayContains-4690"><a href="#JSONArrayContains-4690"><span class="linenos">4690</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64904,9 +65381,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ParseJSON"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ParseJSON-4677"><a href="#ParseJSON-4677"><span class="linenos">4677</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ParseJSON-4678"><a href="#ParseJSON-4678"><span class="linenos">4678</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
-</span><span id="ParseJSON-4679"><a href="#ParseJSON-4679"><span class="linenos">4679</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ParseJSON-4693"><a href="#ParseJSON-4693"><span class="linenos">4693</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ParseJSON-4694"><a href="#ParseJSON-4694"><span class="linenos">4694</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
+</span><span id="ParseJSON-4695"><a href="#ParseJSON-4695"><span class="linenos">4695</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -65013,9 +65490,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Least"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Least-4682"><a href="#Least-4682"><span class="linenos">4682</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Least-4683"><a href="#Least-4683"><span class="linenos">4683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Least-4684"><a href="#Least-4684"><span class="linenos">4684</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Least-4698"><a href="#Least-4698"><span class="linenos">4698</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Least-4699"><a href="#Least-4699"><span class="linenos">4699</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Least-4700"><a href="#Least-4700"><span class="linenos">4700</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -65144,8 +65621,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Left"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Left-4687"><a href="#Left-4687"><span class="linenos">4687</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Left-4688"><a href="#Left-4688"><span class="linenos">4688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Left-4703"><a href="#Left-4703"><span class="linenos">4703</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Left-4704"><a href="#Left-4704"><span class="linenos">4704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -65263,8 +65740,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Right"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Right-4691"><a href="#Right-4691"><span class="linenos">4691</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Right-4692"><a href="#Right-4692"><span class="linenos">4692</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Right-4707"><a href="#Right-4707"><span class="linenos">4707</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Right-4708"><a href="#Right-4708"><span class="linenos">4708</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -65382,8 +65859,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Length"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Length-4695"><a href="#Length-4695"><span class="linenos">4695</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Length-4696"><a href="#Length-4696"><span class="linenos">4696</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Length-4711"><a href="#Length-4711"><span class="linenos">4711</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Length-4712"><a href="#Length-4712"><span class="linenos">4712</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -65490,14 +65967,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Levenshtein"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-4699"><a href="#Levenshtein-4699"><span class="linenos">4699</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Levenshtein-4700"><a href="#Levenshtein-4700"><span class="linenos">4700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Levenshtein-4701"><a href="#Levenshtein-4701"><span class="linenos">4701</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Levenshtein-4702"><a href="#Levenshtein-4702"><span class="linenos">4702</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Levenshtein-4703"><a href="#Levenshtein-4703"><span class="linenos">4703</span></a> <span class="s2">&quot;ins_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Levenshtein-4704"><a href="#Levenshtein-4704"><span class="linenos">4704</span></a> <span class="s2">&quot;del_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Levenshtein-4705"><a href="#Levenshtein-4705"><span class="linenos">4705</span></a> <span class="s2">&quot;sub_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Levenshtein-4706"><a href="#Levenshtein-4706"><span class="linenos">4706</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-4715"><a href="#Levenshtein-4715"><span class="linenos">4715</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Levenshtein-4716"><a href="#Levenshtein-4716"><span class="linenos">4716</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Levenshtein-4717"><a href="#Levenshtein-4717"><span class="linenos">4717</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Levenshtein-4718"><a href="#Levenshtein-4718"><span class="linenos">4718</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Levenshtein-4719"><a href="#Levenshtein-4719"><span class="linenos">4719</span></a> <span class="s2">&quot;ins_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Levenshtein-4720"><a href="#Levenshtein-4720"><span class="linenos">4720</span></a> <span class="s2">&quot;del_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Levenshtein-4721"><a href="#Levenshtein-4721"><span class="linenos">4721</span></a> <span class="s2">&quot;sub_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Levenshtein-4722"><a href="#Levenshtein-4722"><span class="linenos">4722</span></a> <span class="p">}</span>
</span></pre></div>
@@ -65615,8 +66092,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Ln"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-4709"><a href="#Ln-4709"><span class="linenos">4709</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Ln-4710"><a href="#Ln-4710"><span class="linenos">4710</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-4725"><a href="#Ln-4725"><span class="linenos">4725</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Ln-4726"><a href="#Ln-4726"><span class="linenos">4726</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65723,8 +66200,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log-4713"><a href="#Log-4713"><span class="linenos">4713</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Log-4714"><a href="#Log-4714"><span class="linenos">4714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log-4729"><a href="#Log-4729"><span class="linenos">4729</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Log-4730"><a href="#Log-4730"><span class="linenos">4730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -65842,8 +66319,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-4717"><a href="#Log2-4717"><span class="linenos">4717</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Log2-4718"><a href="#Log2-4718"><span class="linenos">4718</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-4733"><a href="#Log2-4733"><span class="linenos">4733</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Log2-4734"><a href="#Log2-4734"><span class="linenos">4734</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65950,8 +66427,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log10"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-4721"><a href="#Log10-4721"><span class="linenos">4721</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Log10-4722"><a href="#Log10-4722"><span class="linenos">4722</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-4737"><a href="#Log10-4737"><span class="linenos">4737</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Log10-4738"><a href="#Log10-4738"><span class="linenos">4738</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66058,8 +66535,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LogicalOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-4725"><a href="#LogicalOr-4725"><span class="linenos">4725</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="LogicalOr-4726"><a href="#LogicalOr-4726"><span class="linenos">4726</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-4741"><a href="#LogicalOr-4741"><span class="linenos">4741</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="LogicalOr-4742"><a href="#LogicalOr-4742"><span class="linenos">4742</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -66166,8 +66643,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LogicalAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-4729"><a href="#LogicalAnd-4729"><span class="linenos">4729</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="LogicalAnd-4730"><a href="#LogicalAnd-4730"><span class="linenos">4730</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-4745"><a href="#LogicalAnd-4745"><span class="linenos">4745</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="LogicalAnd-4746"><a href="#LogicalAnd-4746"><span class="linenos">4746</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -66274,8 +66751,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Lower"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-4733"><a href="#Lower-4733"><span class="linenos">4733</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Lower-4734"><a href="#Lower-4734"><span class="linenos">4734</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-4749"><a href="#Lower-4749"><span class="linenos">4749</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Lower-4750"><a href="#Lower-4750"><span class="linenos">4750</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -66382,8 +66859,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Map"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map-4737"><a href="#Map-4737"><span class="linenos">4737</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Map-4738"><a href="#Map-4738"><span class="linenos">4738</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map-4753"><a href="#Map-4753"><span class="linenos">4753</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Map-4754"><a href="#Map-4754"><span class="linenos">4754</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -66501,8 +66978,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MapFromEntries"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MapFromEntries-4741"><a href="#MapFromEntries-4741"><span class="linenos">4741</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MapFromEntries-4742"><a href="#MapFromEntries-4742"><span class="linenos">4742</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MapFromEntries-4757"><a href="#MapFromEntries-4757"><span class="linenos">4757</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MapFromEntries-4758"><a href="#MapFromEntries-4758"><span class="linenos">4758</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66609,8 +67086,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-4745"><a href="#StarMap-4745"><span class="linenos">4745</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StarMap-4746"><a href="#StarMap-4746"><span class="linenos">4746</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-4761"><a href="#StarMap-4761"><span class="linenos">4761</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StarMap-4762"><a href="#StarMap-4762"><span class="linenos">4762</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66717,17 +67194,17 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-4749"><a href="#VarMap-4749"><span class="linenos">4749</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="VarMap-4750"><a href="#VarMap-4750"><span class="linenos">4750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="VarMap-4751"><a href="#VarMap-4751"><span class="linenos">4751</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="VarMap-4752"><a href="#VarMap-4752"><span class="linenos">4752</span></a>
-</span><span id="VarMap-4753"><a href="#VarMap-4753"><span class="linenos">4753</span></a> <span class="nd">@property</span>
-</span><span id="VarMap-4754"><a href="#VarMap-4754"><span class="linenos">4754</span></a> <span class="k">def</span> <span class="nf">keys</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="VarMap-4755"><a href="#VarMap-4755"><span class="linenos">4755</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="VarMap-4756"><a href="#VarMap-4756"><span class="linenos">4756</span></a>
-</span><span id="VarMap-4757"><a href="#VarMap-4757"><span class="linenos">4757</span></a> <span class="nd">@property</span>
-</span><span id="VarMap-4758"><a href="#VarMap-4758"><span class="linenos">4758</span></a> <span class="k">def</span> <span class="nf">values</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="VarMap-4759"><a href="#VarMap-4759"><span class="linenos">4759</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-4765"><a href="#VarMap-4765"><span class="linenos">4765</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="VarMap-4766"><a href="#VarMap-4766"><span class="linenos">4766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="VarMap-4767"><a href="#VarMap-4767"><span class="linenos">4767</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="VarMap-4768"><a href="#VarMap-4768"><span class="linenos">4768</span></a>
+</span><span id="VarMap-4769"><a href="#VarMap-4769"><span class="linenos">4769</span></a> <span class="nd">@property</span>
+</span><span id="VarMap-4770"><a href="#VarMap-4770"><span class="linenos">4770</span></a> <span class="k">def</span> <span class="nf">keys</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="VarMap-4771"><a href="#VarMap-4771"><span class="linenos">4771</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="VarMap-4772"><a href="#VarMap-4772"><span class="linenos">4772</span></a>
+</span><span id="VarMap-4773"><a href="#VarMap-4773"><span class="linenos">4773</span></a> <span class="nd">@property</span>
+</span><span id="VarMap-4774"><a href="#VarMap-4774"><span class="linenos">4774</span></a> <span class="k">def</span> <span class="nf">values</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="VarMap-4775"><a href="#VarMap-4775"><span class="linenos">4775</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -66878,8 +67355,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MatchAgainst"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-4763"><a href="#MatchAgainst-4763"><span class="linenos">4763</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MatchAgainst-4764"><a href="#MatchAgainst-4764"><span class="linenos">4764</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-4779"><a href="#MatchAgainst-4779"><span class="linenos">4779</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MatchAgainst-4780"><a href="#MatchAgainst-4780"><span class="linenos">4780</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -66997,9 +67474,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Max"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Max-4767"><a href="#Max-4767"><span class="linenos">4767</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Max-4768"><a href="#Max-4768"><span class="linenos">4768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Max-4769"><a href="#Max-4769"><span class="linenos">4769</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Max-4783"><a href="#Max-4783"><span class="linenos">4783</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Max-4784"><a href="#Max-4784"><span class="linenos">4784</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Max-4785"><a href="#Max-4785"><span class="linenos">4785</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -67128,8 +67605,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MD5"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-4772"><a href="#MD5-4772"><span class="linenos">4772</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MD5-4773"><a href="#MD5-4773"><span class="linenos">4773</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-4788"><a href="#MD5-4788"><span class="linenos">4788</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MD5-4789"><a href="#MD5-4789"><span class="linenos">4789</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -67236,8 +67713,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MD5Digest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5Digest-4777"><a href="#MD5Digest-4777"><span class="linenos">4777</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MD5Digest-4778"><a href="#MD5Digest-4778"><span class="linenos">4778</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5Digest-4793"><a href="#MD5Digest-4793"><span class="linenos">4793</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MD5Digest-4794"><a href="#MD5Digest-4794"><span class="linenos">4794</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -67344,9 +67821,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Min"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Min-4781"><a href="#Min-4781"><span class="linenos">4781</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Min-4782"><a href="#Min-4782"><span class="linenos">4782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Min-4783"><a href="#Min-4783"><span class="linenos">4783</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Min-4797"><a href="#Min-4797"><span class="linenos">4797</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Min-4798"><a href="#Min-4798"><span class="linenos">4798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Min-4799"><a href="#Min-4799"><span class="linenos">4799</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -67475,8 +67952,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Month"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Month-4786"><a href="#Month-4786"><span class="linenos">4786</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Month-4787"><a href="#Month-4787"><span class="linenos">4787</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Month-4802"><a href="#Month-4802"><span class="linenos">4802</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Month-4803"><a href="#Month-4803"><span class="linenos">4803</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -67583,8 +68060,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Nvl2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-4790"><a href="#Nvl2-4790"><span class="linenos">4790</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Nvl2-4791"><a href="#Nvl2-4791"><span class="linenos">4791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-4806"><a href="#Nvl2-4806"><span class="linenos">4806</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Nvl2-4807"><a href="#Nvl2-4807"><span class="linenos">4807</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -67691,114 +68168,6 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
- <section id="Posexplode">
- <input id="Posexplode-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
-<div class="attr class">
-
- <span class="def">class</span>
- <span class="name">Posexplode</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
-
- <label class="view-source-button" for="Posexplode-view-source"><span>View Source</span></label>
-
- </div>
- <a class="headerlink" href="#Posexplode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-4794"><a href="#Posexplode-4794"><span class="linenos">4794</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Posexplode-4795"><a href="#Posexplode-4795"><span class="linenos">4795</span></a> <span class="k">pass</span>
-</span></pre></div>
-
-
-
-
- <div id="Posexplode.key" class="classattr">
- <div class="attr variable">
- <span class="name">key</span> =
-<span class="default_value">&#39;posexplode&#39;</span>
-
-
- </div>
- <a class="headerlink" href="#Posexplode.key"></a>
-
-
-
- </div>
- <div class="inherited">
- <h5>Inherited Members</h5>
- <dl>
- <div><dt><a href="#Expression">Expression</a></dt>
- <dd id="Posexplode.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
- <dd id="Posexplode.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
- <dd id="Posexplode.args" class="variable"><a href="#Expression.args">args</a></dd>
- <dd id="Posexplode.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
- <dd id="Posexplode.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
- <dd id="Posexplode.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
- <dd id="Posexplode.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
- <dd id="Posexplode.this" class="variable"><a href="#Expression.this">this</a></dd>
- <dd id="Posexplode.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
- <dd id="Posexplode.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
- <dd id="Posexplode.text" class="function"><a href="#Expression.text">text</a></dd>
- <dd id="Posexplode.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
- <dd id="Posexplode.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
- <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>
- <dd id="Posexplode.type" class="variable"><a href="#Expression.type">type</a></dd>
- <dd id="Posexplode.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
- <dd id="Posexplode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
- <dd id="Posexplode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
- <dd id="Posexplode.append" class="function"><a href="#Expression.append">append</a></dd>
- <dd id="Posexplode.set" class="function"><a href="#Expression.set">set</a></dd>
- <dd id="Posexplode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
- <dd id="Posexplode.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
- <dd id="Posexplode.find" class="function"><a href="#Expression.find">find</a></dd>
- <dd id="Posexplode.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
- <dd id="Posexplode.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
- <dd id="Posexplode.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
- <dd id="Posexplode.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
- <dd id="Posexplode.root" class="function"><a href="#Expression.root">root</a></dd>
- <dd id="Posexplode.walk" class="function"><a href="#Expression.walk">walk</a></dd>
- <dd id="Posexplode.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
- <dd id="Posexplode.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
- <dd id="Posexplode.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
- <dd id="Posexplode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
- <dd id="Posexplode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
- <dd id="Posexplode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
- <dd id="Posexplode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
- <dd id="Posexplode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
- <dd id="Posexplode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
- <dd id="Posexplode.pop" class="function"><a href="#Expression.pop">pop</a></dd>
- <dd id="Posexplode.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
- <dd id="Posexplode.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
- <dd id="Posexplode.dump" class="function"><a href="#Expression.dump">dump</a></dd>
- <dd id="Posexplode.load" class="function"><a href="#Expression.load">load</a></dd>
- <dd id="Posexplode.and_" class="function"><a href="#Expression.and_">and_</a></dd>
- <dd id="Posexplode.or_" class="function"><a href="#Expression.or_">or_</a></dd>
- <dd id="Posexplode.not_" class="function"><a href="#Expression.not_">not_</a></dd>
- <dd id="Posexplode.as_" class="function"><a href="#Expression.as_">as_</a></dd>
- <dd id="Posexplode.isin" class="function"><a href="#Expression.isin">isin</a></dd>
- <dd id="Posexplode.between" class="function"><a href="#Expression.between">between</a></dd>
- <dd id="Posexplode.is_" class="function"><a href="#Expression.is_">is_</a></dd>
- <dd id="Posexplode.like" class="function"><a href="#Expression.like">like</a></dd>
- <dd id="Posexplode.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
- <dd id="Posexplode.eq" class="function"><a href="#Expression.eq">eq</a></dd>
- <dd id="Posexplode.neq" class="function"><a href="#Expression.neq">neq</a></dd>
- <dd id="Posexplode.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
-
- </div>
- <div><dt><a href="#Func">Func</a></dt>
- <dd id="Posexplode.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
- <dd id="Posexplode.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
- <dd id="Posexplode.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
- <dd id="Posexplode.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
- <dd id="Posexplode.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
-
- </div>
- </dl>
- </div>
- </section>
<section id="Predict">
<input id="Predict-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -67810,8 +68179,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Predict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Predict-4799"><a href="#Predict-4799"><span class="linenos">4799</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Predict-4800"><a href="#Predict-4800"><span class="linenos">4800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Predict-4811"><a href="#Predict-4811"><span class="linenos">4811</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Predict-4812"><a href="#Predict-4812"><span class="linenos">4812</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -67929,8 +68298,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Pow"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-4803"><a href="#Pow-4803"><span class="linenos">4803</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Pow-4804"><a href="#Pow-4804"><span class="linenos">4804</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-4815"><a href="#Pow-4815"><span class="linenos">4815</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Pow-4816"><a href="#Pow-4816"><span class="linenos">4816</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -68042,8 +68411,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PercentileCont"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-4807"><a href="#PercentileCont-4807"><span class="linenos">4807</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="PercentileCont-4808"><a href="#PercentileCont-4808"><span class="linenos">4808</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-4819"><a href="#PercentileCont-4819"><span class="linenos">4819</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="PercentileCont-4820"><a href="#PercentileCont-4820"><span class="linenos">4820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68161,8 +68530,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-4811"><a href="#PercentileDisc-4811"><span class="linenos">4811</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="PercentileDisc-4812"><a href="#PercentileDisc-4812"><span class="linenos">4812</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-4823"><a href="#PercentileDisc-4823"><span class="linenos">4823</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="PercentileDisc-4824"><a href="#PercentileDisc-4824"><span class="linenos">4824</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68280,8 +68649,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Quantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-4815"><a href="#Quantile-4815"><span class="linenos">4815</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Quantile-4816"><a href="#Quantile-4816"><span class="linenos">4816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-4827"><a href="#Quantile-4827"><span class="linenos">4827</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Quantile-4828"><a href="#Quantile-4828"><span class="linenos">4828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -68399,8 +68768,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-4819"><a href="#ApproxQuantile-4819"><span class="linenos">4819</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span>
-</span><span id="ApproxQuantile-4820"><a href="#ApproxQuantile-4820"><span class="linenos">4820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-4831"><a href="#ApproxQuantile-4831"><span class="linenos">4831</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span>
+</span><span id="ApproxQuantile-4832"><a href="#ApproxQuantile-4832"><span class="linenos">4832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68518,8 +68887,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RangeN"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-4823"><a href="#RangeN-4823"><span class="linenos">4823</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RangeN-4824"><a href="#RangeN-4824"><span class="linenos">4824</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;each&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-4835"><a href="#RangeN-4835"><span class="linenos">4835</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RangeN-4836"><a href="#RangeN-4836"><span class="linenos">4836</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;each&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68637,10 +69006,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ReadCSV"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-4827"><a href="#ReadCSV-4827"><span class="linenos">4827</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ReadCSV-4828"><a href="#ReadCSV-4828"><span class="linenos">4828</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
-</span><span id="ReadCSV-4829"><a href="#ReadCSV-4829"><span class="linenos">4829</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="ReadCSV-4830"><a href="#ReadCSV-4830"><span class="linenos">4830</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-4839"><a href="#ReadCSV-4839"><span class="linenos">4839</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ReadCSV-4840"><a href="#ReadCSV-4840"><span class="linenos">4840</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
+</span><span id="ReadCSV-4841"><a href="#ReadCSV-4841"><span class="linenos">4841</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="ReadCSV-4842"><a href="#ReadCSV-4842"><span class="linenos">4842</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68769,8 +69138,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Reduce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-4833"><a href="#Reduce-4833"><span class="linenos">4833</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Reduce-4834"><a href="#Reduce-4834"><span class="linenos">4834</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;initial&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;merge&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;finish&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-4845"><a href="#Reduce-4845"><span class="linenos">4845</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Reduce-4846"><a href="#Reduce-4846"><span class="linenos">4846</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;initial&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;merge&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;finish&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -68888,15 +69257,15 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-4837"><a href="#RegexpExtract-4837"><span class="linenos">4837</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpExtract-4838"><a href="#RegexpExtract-4838"><span class="linenos">4838</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpExtract-4839"><a href="#RegexpExtract-4839"><span class="linenos">4839</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpExtract-4840"><a href="#RegexpExtract-4840"><span class="linenos">4840</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpExtract-4841"><a href="#RegexpExtract-4841"><span class="linenos">4841</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpExtract-4842"><a href="#RegexpExtract-4842"><span class="linenos">4842</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpExtract-4843"><a href="#RegexpExtract-4843"><span class="linenos">4843</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpExtract-4844"><a href="#RegexpExtract-4844"><span class="linenos">4844</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpExtract-4845"><a href="#RegexpExtract-4845"><span class="linenos">4845</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-4849"><a href="#RegexpExtract-4849"><span class="linenos">4849</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpExtract-4850"><a href="#RegexpExtract-4850"><span class="linenos">4850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpExtract-4851"><a href="#RegexpExtract-4851"><span class="linenos">4851</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpExtract-4852"><a href="#RegexpExtract-4852"><span class="linenos">4852</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpExtract-4853"><a href="#RegexpExtract-4853"><span class="linenos">4853</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpExtract-4854"><a href="#RegexpExtract-4854"><span class="linenos">4854</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpExtract-4855"><a href="#RegexpExtract-4855"><span class="linenos">4855</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpExtract-4856"><a href="#RegexpExtract-4856"><span class="linenos">4856</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpExtract-4857"><a href="#RegexpExtract-4857"><span class="linenos">4857</span></a> <span class="p">}</span>
</span></pre></div>
@@ -69015,15 +69384,15 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpReplace"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpReplace-4848"><a href="#RegexpReplace-4848"><span class="linenos">4848</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpReplace-4849"><a href="#RegexpReplace-4849"><span class="linenos">4849</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpReplace-4850"><a href="#RegexpReplace-4850"><span class="linenos">4850</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-4851"><a href="#RegexpReplace-4851"><span class="linenos">4851</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-4852"><a href="#RegexpReplace-4852"><span class="linenos">4852</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-4853"><a href="#RegexpReplace-4853"><span class="linenos">4853</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-4854"><a href="#RegexpReplace-4854"><span class="linenos">4854</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-4855"><a href="#RegexpReplace-4855"><span class="linenos">4855</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-4856"><a href="#RegexpReplace-4856"><span class="linenos">4856</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpReplace-4860"><a href="#RegexpReplace-4860"><span class="linenos">4860</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpReplace-4861"><a href="#RegexpReplace-4861"><span class="linenos">4861</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpReplace-4862"><a href="#RegexpReplace-4862"><span class="linenos">4862</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-4863"><a href="#RegexpReplace-4863"><span class="linenos">4863</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-4864"><a href="#RegexpReplace-4864"><span class="linenos">4864</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-4865"><a href="#RegexpReplace-4865"><span class="linenos">4865</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-4866"><a href="#RegexpReplace-4866"><span class="linenos">4866</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-4867"><a href="#RegexpReplace-4867"><span class="linenos">4867</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-4868"><a href="#RegexpReplace-4868"><span class="linenos">4868</span></a> <span class="p">}</span>
</span></pre></div>
@@ -69142,8 +69511,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpLike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-4859"><a href="#RegexpLike-4859"><span class="linenos">4859</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpLike-4860"><a href="#RegexpLike-4860"><span class="linenos">4860</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-4871"><a href="#RegexpLike-4871"><span class="linenos">4871</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpLike-4872"><a href="#RegexpLike-4872"><span class="linenos">4872</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -69266,8 +69635,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-4863"><a href="#RegexpILike-4863"><span class="linenos">4863</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpILike-4864"><a href="#RegexpILike-4864"><span class="linenos">4864</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-4875"><a href="#RegexpILike-4875"><span class="linenos">4875</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpILike-4876"><a href="#RegexpILike-4876"><span class="linenos">4876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -69385,8 +69754,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-4869"><a href="#RegexpSplit-4869"><span class="linenos">4869</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpSplit-4870"><a href="#RegexpSplit-4870"><span class="linenos">4870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-4881"><a href="#RegexpSplit-4881"><span class="linenos">4881</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpSplit-4882"><a href="#RegexpSplit-4882"><span class="linenos">4882</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -69504,8 +69873,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Repeat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-4873"><a href="#Repeat-4873"><span class="linenos">4873</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Repeat-4874"><a href="#Repeat-4874"><span class="linenos">4874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-4885"><a href="#Repeat-4885"><span class="linenos">4885</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Repeat-4886"><a href="#Repeat-4886"><span class="linenos">4886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -69623,8 +69992,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Round"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Round-4877"><a href="#Round-4877"><span class="linenos">4877</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Round-4878"><a href="#Round-4878"><span class="linenos">4878</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Round-4889"><a href="#Round-4889"><span class="linenos">4889</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Round-4890"><a href="#Round-4890"><span class="linenos">4890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -69742,8 +70111,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RowNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-4881"><a href="#RowNumber-4881"><span class="linenos">4881</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RowNumber-4882"><a href="#RowNumber-4882"><span class="linenos">4882</span></a> <span class="n">arg_types</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-4893"><a href="#RowNumber-4893"><span class="linenos">4893</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RowNumber-4894"><a href="#RowNumber-4894"><span class="linenos">4894</span></a> <span class="n">arg_types</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></pre></div>
@@ -69861,8 +70230,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SafeDivide"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-4885"><a href="#SafeDivide-4885"><span class="linenos">4885</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="SafeDivide-4886"><a href="#SafeDivide-4886"><span class="linenos">4886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-4897"><a href="#SafeDivide-4897"><span class="linenos">4897</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="SafeDivide-4898"><a href="#SafeDivide-4898"><span class="linenos">4898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -69980,8 +70349,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SetAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-4889"><a href="#SetAgg-4889"><span class="linenos">4889</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="SetAgg-4890"><a href="#SetAgg-4890"><span class="linenos">4890</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-4901"><a href="#SetAgg-4901"><span class="linenos">4901</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="SetAgg-4902"><a href="#SetAgg-4902"><span class="linenos">4902</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -70088,8 +70457,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SHA"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-4893"><a href="#SHA-4893"><span class="linenos">4893</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="SHA-4894"><a href="#SHA-4894"><span class="linenos">4894</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-4905"><a href="#SHA-4905"><span class="linenos">4905</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="SHA-4906"><a href="#SHA-4906"><span class="linenos">4906</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -70196,9 +70565,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SHA2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-4897"><a href="#SHA2-4897"><span class="linenos">4897</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="SHA2-4898"><a href="#SHA2-4898"><span class="linenos">4898</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
-</span><span id="SHA2-4899"><a href="#SHA2-4899"><span class="linenos">4899</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-4909"><a href="#SHA2-4909"><span class="linenos">4909</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="SHA2-4910"><a href="#SHA2-4910"><span class="linenos">4910</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
+</span><span id="SHA2-4911"><a href="#SHA2-4911"><span class="linenos">4911</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -70316,8 +70685,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SortArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-4902"><a href="#SortArray-4902"><span class="linenos">4902</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="SortArray-4903"><a href="#SortArray-4903"><span class="linenos">4903</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-4914"><a href="#SortArray-4914"><span class="linenos">4914</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="SortArray-4915"><a href="#SortArray-4915"><span class="linenos">4915</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -70435,8 +70804,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Split"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Split-4906"><a href="#Split-4906"><span class="linenos">4906</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Split-4907"><a href="#Split-4907"><span class="linenos">4907</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Split-4918"><a href="#Split-4918"><span class="linenos">4918</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Split-4919"><a href="#Split-4919"><span class="linenos">4919</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -70554,8 +70923,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Substring"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-4912"><a href="#Substring-4912"><span class="linenos">4912</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Substring-4913"><a href="#Substring-4913"><span class="linenos">4913</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-4924"><a href="#Substring-4924"><span class="linenos">4924</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Substring-4925"><a href="#Substring-4925"><span class="linenos">4925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -70673,8 +71042,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StandardHash"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-4916"><a href="#StandardHash-4916"><span class="linenos">4916</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StandardHash-4917"><a href="#StandardHash-4917"><span class="linenos">4917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-4928"><a href="#StandardHash-4928"><span class="linenos">4928</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StandardHash-4929"><a href="#StandardHash-4929"><span class="linenos">4929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -70792,9 +71161,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StartsWith"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StartsWith-4920"><a href="#StartsWith-4920"><span class="linenos">4920</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StartsWith-4921"><a href="#StartsWith-4921"><span class="linenos">4921</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
-</span><span id="StartsWith-4922"><a href="#StartsWith-4922"><span class="linenos">4922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StartsWith-4932"><a href="#StartsWith-4932"><span class="linenos">4932</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StartsWith-4933"><a href="#StartsWith-4933"><span class="linenos">4933</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
+</span><span id="StartsWith-4934"><a href="#StartsWith-4934"><span class="linenos">4934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -70912,13 +71281,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-4925"><a href="#StrPosition-4925"><span class="linenos">4925</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrPosition-4926"><a href="#StrPosition-4926"><span class="linenos">4926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrPosition-4927"><a href="#StrPosition-4927"><span class="linenos">4927</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="StrPosition-4928"><a href="#StrPosition-4928"><span class="linenos">4928</span></a> <span class="s2">&quot;substr&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="StrPosition-4929"><a href="#StrPosition-4929"><span class="linenos">4929</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrPosition-4930"><a href="#StrPosition-4930"><span class="linenos">4930</span></a> <span class="s2">&quot;instance&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrPosition-4931"><a href="#StrPosition-4931"><span class="linenos">4931</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-4937"><a href="#StrPosition-4937"><span class="linenos">4937</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrPosition-4938"><a href="#StrPosition-4938"><span class="linenos">4938</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrPosition-4939"><a href="#StrPosition-4939"><span class="linenos">4939</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="StrPosition-4940"><a href="#StrPosition-4940"><span class="linenos">4940</span></a> <span class="s2">&quot;substr&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="StrPosition-4941"><a href="#StrPosition-4941"><span class="linenos">4941</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrPosition-4942"><a href="#StrPosition-4942"><span class="linenos">4942</span></a> <span class="s2">&quot;instance&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrPosition-4943"><a href="#StrPosition-4943"><span class="linenos">4943</span></a> <span class="p">}</span>
</span></pre></div>
@@ -71036,8 +71405,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-4934"><a href="#StrToDate-4934"><span class="linenos">4934</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrToDate-4935"><a href="#StrToDate-4935"><span class="linenos">4935</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-4946"><a href="#StrToDate-4946"><span class="linenos">4946</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrToDate-4947"><a href="#StrToDate-4947"><span class="linenos">4947</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -71155,8 +71524,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-4938"><a href="#StrToTime-4938"><span class="linenos">4938</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrToTime-4939"><a href="#StrToTime-4939"><span class="linenos">4939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-4950"><a href="#StrToTime-4950"><span class="linenos">4950</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrToTime-4951"><a href="#StrToTime-4951"><span class="linenos">4951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -71274,8 +71643,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-4944"><a href="#StrToUnix-4944"><span class="linenos">4944</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrToUnix-4945"><a href="#StrToUnix-4945"><span class="linenos">4945</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-4956"><a href="#StrToUnix-4956"><span class="linenos">4956</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrToUnix-4957"><a href="#StrToUnix-4957"><span class="linenos">4957</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -71393,13 +71762,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToMap-4950"><a href="#StrToMap-4950"><span class="linenos">4950</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrToMap-4951"><a href="#StrToMap-4951"><span class="linenos">4951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrToMap-4952"><a href="#StrToMap-4952"><span class="linenos">4952</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="StrToMap-4953"><a href="#StrToMap-4953"><span class="linenos">4953</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-4954"><a href="#StrToMap-4954"><span class="linenos">4954</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-4955"><a href="#StrToMap-4955"><span class="linenos">4955</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-4956"><a href="#StrToMap-4956"><span class="linenos">4956</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToMap-4962"><a href="#StrToMap-4962"><span class="linenos">4962</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrToMap-4963"><a href="#StrToMap-4963"><span class="linenos">4963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrToMap-4964"><a href="#StrToMap-4964"><span class="linenos">4964</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="StrToMap-4965"><a href="#StrToMap-4965"><span class="linenos">4965</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-4966"><a href="#StrToMap-4966"><span class="linenos">4966</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-4967"><a href="#StrToMap-4967"><span class="linenos">4967</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-4968"><a href="#StrToMap-4968"><span class="linenos">4968</span></a> <span class="p">}</span>
</span></pre></div>
@@ -71518,8 +71887,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#NumberToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-4959"><a href="#NumberToStr-4959"><span class="linenos">4959</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="NumberToStr-4960"><a href="#NumberToStr-4960"><span class="linenos">4960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-4971"><a href="#NumberToStr-4971"><span class="linenos">4971</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="NumberToStr-4972"><a href="#NumberToStr-4972"><span class="linenos">4972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -71637,8 +72006,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FromBase"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase-4963"><a href="#FromBase-4963"><span class="linenos">4963</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="FromBase-4964"><a href="#FromBase-4964"><span class="linenos">4964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase-4975"><a href="#FromBase-4975"><span class="linenos">4975</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="FromBase-4976"><a href="#FromBase-4976"><span class="linenos">4976</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -71756,9 +72125,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Struct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-4967"><a href="#Struct-4967"><span class="linenos">4967</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Struct-4968"><a href="#Struct-4968"><span class="linenos">4968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Struct-4969"><a href="#Struct-4969"><span class="linenos">4969</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-4979"><a href="#Struct-4979"><span class="linenos">4979</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Struct-4980"><a href="#Struct-4980"><span class="linenos">4980</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Struct-4981"><a href="#Struct-4981"><span class="linenos">4981</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -71887,8 +72256,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StructExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-4972"><a href="#StructExtract-4972"><span class="linenos">4972</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StructExtract-4973"><a href="#StructExtract-4973"><span class="linenos">4973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-4984"><a href="#StructExtract-4984"><span class="linenos">4984</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StructExtract-4985"><a href="#StructExtract-4985"><span class="linenos">4985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -72006,9 +72375,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Stuff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stuff-4978"><a href="#Stuff-4978"><span class="linenos">4978</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Stuff-4979"><a href="#Stuff-4979"><span class="linenos">4979</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
-</span><span id="Stuff-4980"><a href="#Stuff-4980"><span class="linenos">4980</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stuff-4990"><a href="#Stuff-4990"><span class="linenos">4990</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Stuff-4991"><a href="#Stuff-4991"><span class="linenos">4991</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
+</span><span id="Stuff-4992"><a href="#Stuff-4992"><span class="linenos">4992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -72126,8 +72495,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-4983"><a href="#Sum-4983"><span class="linenos">4983</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Sum-4984"><a href="#Sum-4984"><span class="linenos">4984</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-4995"><a href="#Sum-4995"><span class="linenos">4995</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Sum-4996"><a href="#Sum-4996"><span class="linenos">4996</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72234,8 +72603,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sqrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-4987"><a href="#Sqrt-4987"><span class="linenos">4987</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Sqrt-4988"><a href="#Sqrt-4988"><span class="linenos">4988</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-4999"><a href="#Sqrt-4999"><span class="linenos">4999</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Sqrt-5000"><a href="#Sqrt-5000"><span class="linenos">5000</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72342,8 +72711,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Stddev"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-4991"><a href="#Stddev-4991"><span class="linenos">4991</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Stddev-4992"><a href="#Stddev-4992"><span class="linenos">4992</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-5003"><a href="#Stddev-5003"><span class="linenos">5003</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Stddev-5004"><a href="#Stddev-5004"><span class="linenos">5004</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72450,8 +72819,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StddevPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-4995"><a href="#StddevPop-4995"><span class="linenos">4995</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="StddevPop-4996"><a href="#StddevPop-4996"><span class="linenos">4996</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-5007"><a href="#StddevPop-5007"><span class="linenos">5007</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="StddevPop-5008"><a href="#StddevPop-5008"><span class="linenos">5008</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72558,8 +72927,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StddevSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-4999"><a href="#StddevSamp-4999"><span class="linenos">4999</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="StddevSamp-5000"><a href="#StddevSamp-5000"><span class="linenos">5000</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-5011"><a href="#StddevSamp-5011"><span class="linenos">5011</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="StddevSamp-5012"><a href="#StddevSamp-5012"><span class="linenos">5012</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72666,8 +73035,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-5003"><a href="#TimeToStr-5003"><span class="linenos">5003</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeToStr-5004"><a href="#TimeToStr-5004"><span class="linenos">5004</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-5015"><a href="#TimeToStr-5015"><span class="linenos">5015</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeToStr-5016"><a href="#TimeToStr-5016"><span class="linenos">5016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -72785,8 +73154,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-5007"><a href="#TimeToTimeStr-5007"><span class="linenos">5007</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeToTimeStr-5008"><a href="#TimeToTimeStr-5008"><span class="linenos">5008</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-5019"><a href="#TimeToTimeStr-5019"><span class="linenos">5019</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeToTimeStr-5020"><a href="#TimeToTimeStr-5020"><span class="linenos">5020</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72893,8 +73262,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-5011"><a href="#TimeToUnix-5011"><span class="linenos">5011</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeToUnix-5012"><a href="#TimeToUnix-5012"><span class="linenos">5012</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-5023"><a href="#TimeToUnix-5023"><span class="linenos">5023</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeToUnix-5024"><a href="#TimeToUnix-5024"><span class="linenos">5024</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -73001,8 +73370,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-5015"><a href="#TimeStrToDate-5015"><span class="linenos">5015</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeStrToDate-5016"><a href="#TimeStrToDate-5016"><span class="linenos">5016</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-5027"><a href="#TimeStrToDate-5027"><span class="linenos">5027</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeStrToDate-5028"><a href="#TimeStrToDate-5028"><span class="linenos">5028</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -73109,8 +73478,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-5019"><a href="#TimeStrToTime-5019"><span class="linenos">5019</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeStrToTime-5020"><a href="#TimeStrToTime-5020"><span class="linenos">5020</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-5031"><a href="#TimeStrToTime-5031"><span class="linenos">5031</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeStrToTime-5032"><a href="#TimeStrToTime-5032"><span class="linenos">5032</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -73217,8 +73586,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-5023"><a href="#TimeStrToUnix-5023"><span class="linenos">5023</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeStrToUnix-5024"><a href="#TimeStrToUnix-5024"><span class="linenos">5024</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-5035"><a href="#TimeStrToUnix-5035"><span class="linenos">5035</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeStrToUnix-5036"><a href="#TimeStrToUnix-5036"><span class="linenos">5036</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -73325,13 +73694,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Trim"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-5027"><a href="#Trim-5027"><span class="linenos">5027</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Trim-5028"><a href="#Trim-5028"><span class="linenos">5028</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Trim-5029"><a href="#Trim-5029"><span class="linenos">5029</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Trim-5030"><a href="#Trim-5030"><span class="linenos">5030</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Trim-5031"><a href="#Trim-5031"><span class="linenos">5031</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Trim-5032"><a href="#Trim-5032"><span class="linenos">5032</span></a> <span class="s2">&quot;collation&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Trim-5033"><a href="#Trim-5033"><span class="linenos">5033</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-5039"><a href="#Trim-5039"><span class="linenos">5039</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Trim-5040"><a href="#Trim-5040"><span class="linenos">5040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Trim-5041"><a href="#Trim-5041"><span class="linenos">5041</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Trim-5042"><a href="#Trim-5042"><span class="linenos">5042</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Trim-5043"><a href="#Trim-5043"><span class="linenos">5043</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Trim-5044"><a href="#Trim-5044"><span class="linenos">5044</span></a> <span class="s2">&quot;collation&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Trim-5045"><a href="#Trim-5045"><span class="linenos">5045</span></a> <span class="p">}</span>
</span></pre></div>
@@ -73449,8 +73818,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-5036"><a href="#TsOrDsAdd-5036"><span class="linenos">5036</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="TsOrDsAdd-5037"><a href="#TsOrDsAdd-5037"><span class="linenos">5037</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-5048"><a href="#TsOrDsAdd-5048"><span class="linenos">5048</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="TsOrDsAdd-5049"><a href="#TsOrDsAdd-5049"><span class="linenos">5049</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -73572,8 +73941,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-5040"><a href="#TsOrDsToDateStr-5040"><span class="linenos">5040</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TsOrDsToDateStr-5041"><a href="#TsOrDsToDateStr-5041"><span class="linenos">5041</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-5052"><a href="#TsOrDsToDateStr-5052"><span class="linenos">5052</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TsOrDsToDateStr-5053"><a href="#TsOrDsToDateStr-5053"><span class="linenos">5053</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -73680,8 +74049,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-5044"><a href="#TsOrDsToDate-5044"><span class="linenos">5044</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TsOrDsToDate-5045"><a href="#TsOrDsToDate-5045"><span class="linenos">5045</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-5056"><a href="#TsOrDsToDate-5056"><span class="linenos">5056</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TsOrDsToDate-5057"><a href="#TsOrDsToDate-5057"><span class="linenos">5057</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -73799,8 +74168,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-5048"><a href="#TsOrDiToDi-5048"><span class="linenos">5048</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TsOrDiToDi-5049"><a href="#TsOrDiToDi-5049"><span class="linenos">5049</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-5060"><a href="#TsOrDiToDi-5060"><span class="linenos">5060</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TsOrDiToDi-5061"><a href="#TsOrDiToDi-5061"><span class="linenos">5061</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -73907,8 +74276,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Unhex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-5052"><a href="#Unhex-5052"><span class="linenos">5052</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Unhex-5053"><a href="#Unhex-5053"><span class="linenos">5053</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-5064"><a href="#Unhex-5064"><span class="linenos">5064</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Unhex-5065"><a href="#Unhex-5065"><span class="linenos">5065</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -74015,8 +74384,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-5056"><a href="#UnixToStr-5056"><span class="linenos">5056</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="UnixToStr-5057"><a href="#UnixToStr-5057"><span class="linenos">5057</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-5068"><a href="#UnixToStr-5068"><span class="linenos">5068</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="UnixToStr-5069"><a href="#UnixToStr-5069"><span class="linenos">5069</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -74134,12 +74503,12 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-5062"><a href="#UnixToTime-5062"><span class="linenos">5062</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="UnixToTime-5063"><a href="#UnixToTime-5063"><span class="linenos">5063</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="UnixToTime-5064"><a href="#UnixToTime-5064"><span class="linenos">5064</span></a>
-</span><span id="UnixToTime-5065"><a href="#UnixToTime-5065"><span class="linenos">5065</span></a> <span class="n">SECONDS</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="s2">&quot;seconds&quot;</span><span class="p">)</span>
-</span><span id="UnixToTime-5066"><a href="#UnixToTime-5066"><span class="linenos">5066</span></a> <span class="n">MILLIS</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="s2">&quot;millis&quot;</span><span class="p">)</span>
-</span><span id="UnixToTime-5067"><a href="#UnixToTime-5067"><span class="linenos">5067</span></a> <span class="n">MICROS</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="s2">&quot;micros&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-5074"><a href="#UnixToTime-5074"><span class="linenos">5074</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="UnixToTime-5075"><a href="#UnixToTime-5075"><span class="linenos">5075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="UnixToTime-5076"><a href="#UnixToTime-5076"><span class="linenos">5076</span></a>
+</span><span id="UnixToTime-5077"><a href="#UnixToTime-5077"><span class="linenos">5077</span></a> <span class="n">SECONDS</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="s2">&quot;seconds&quot;</span><span class="p">)</span>
+</span><span id="UnixToTime-5078"><a href="#UnixToTime-5078"><span class="linenos">5078</span></a> <span class="n">MILLIS</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="s2">&quot;millis&quot;</span><span class="p">)</span>
+</span><span id="UnixToTime-5079"><a href="#UnixToTime-5079"><span class="linenos">5079</span></a> <span class="n">MICROS</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="s2">&quot;micros&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -74293,8 +74662,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-5070"><a href="#UnixToTimeStr-5070"><span class="linenos">5070</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="UnixToTimeStr-5071"><a href="#UnixToTimeStr-5071"><span class="linenos">5071</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-5082"><a href="#UnixToTimeStr-5082"><span class="linenos">5082</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="UnixToTimeStr-5083"><a href="#UnixToTimeStr-5083"><span class="linenos">5083</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -74401,8 +74770,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Upper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-5074"><a href="#Upper-5074"><span class="linenos">5074</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Upper-5075"><a href="#Upper-5075"><span class="linenos">5075</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-5086"><a href="#Upper-5086"><span class="linenos">5086</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Upper-5087"><a href="#Upper-5087"><span class="linenos">5087</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -74509,8 +74878,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Variance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-5078"><a href="#Variance-5078"><span class="linenos">5078</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Variance-5079"><a href="#Variance-5079"><span class="linenos">5079</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE&quot;</span><span class="p">,</span> <span class="s2">&quot;VARIANCE_SAMP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_SAMP&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-5090"><a href="#Variance-5090"><span class="linenos">5090</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Variance-5091"><a href="#Variance-5091"><span class="linenos">5091</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE&quot;</span><span class="p">,</span> <span class="s2">&quot;VARIANCE_SAMP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_SAMP&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -74617,8 +74986,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VariancePop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-5082"><a href="#VariancePop-5082"><span class="linenos">5082</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="VariancePop-5083"><a href="#VariancePop-5083"><span class="linenos">5083</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-5094"><a href="#VariancePop-5094"><span class="linenos">5094</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="VariancePop-5095"><a href="#VariancePop-5095"><span class="linenos">5095</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -74725,8 +75094,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Week"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Week-5086"><a href="#Week-5086"><span class="linenos">5086</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Week-5087"><a href="#Week-5087"><span class="linenos">5087</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Week-5098"><a href="#Week-5098"><span class="linenos">5098</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Week-5099"><a href="#Week-5099"><span class="linenos">5099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -74844,8 +75213,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#XMLTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-5090"><a href="#XMLTable-5090"><span class="linenos">5090</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="XMLTable-5091"><a href="#XMLTable-5091"><span class="linenos">5091</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;passing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;by_ref&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-5102"><a href="#XMLTable-5102"><span class="linenos">5102</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="XMLTable-5103"><a href="#XMLTable-5103"><span class="linenos">5103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;passing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;by_ref&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -74963,8 +75332,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Year"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Year-5094"><a href="#Year-5094"><span class="linenos">5094</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Year-5095"><a href="#Year-5095"><span class="linenos">5095</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Year-5106"><a href="#Year-5106"><span class="linenos">5106</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Year-5107"><a href="#Year-5107"><span class="linenos">5107</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -75071,8 +75440,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Use"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Use-5098"><a href="#Use-5098"><span class="linenos">5098</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Use-5099"><a href="#Use-5099"><span class="linenos">5099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Use-5110"><a href="#Use-5110"><span class="linenos">5110</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Use-5111"><a href="#Use-5111"><span class="linenos">5111</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -75182,8 +75551,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Merge"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-5102"><a href="#Merge-5102"><span class="linenos">5102</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Merge-5103"><a href="#Merge-5103"><span class="linenos">5103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-5114"><a href="#Merge-5114"><span class="linenos">5114</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Merge-5115"><a href="#Merge-5115"><span class="linenos">5115</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -75293,8 +75662,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#When"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="When-5106"><a href="#When-5106"><span class="linenos">5106</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="When-5107"><a href="#When-5107"><span class="linenos">5107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;matched&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;then&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="When-5118"><a href="#When-5118"><span class="linenos">5118</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="When-5119"><a href="#When-5119"><span class="linenos">5119</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;matched&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;then&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -75412,8 +75781,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#NextValueFor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-5112"><a href="#NextValueFor-5112"><span class="linenos">5112</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="NextValueFor-5113"><a href="#NextValueFor-5113"><span class="linenos">5113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-5124"><a href="#NextValueFor-5124"><span class="linenos">5124</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="NextValueFor-5125"><a href="#NextValueFor-5125"><span class="linenos">5125</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -75524,7 +75893,7 @@ array<int> != array<float>.</p>
<div class="attr variable">
<span class="name">ALL_FUNCTIONS</span> =
<input id="ALL_FUNCTIONS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="ALL_FUNCTIONS-view-value"></label><span class="default_value">[&lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayJoin">ArrayJoin</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &lt;class &#39;<a href="#LastDateOfMonth">LastDateOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &lt;class &#39;<a href="#Log10">Log10</a>&#39;&gt;, &lt;class &#39;<a href="#Log2">Log2</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &lt;class &#39;<a href="#SafeConcat">SafeConcat</a>&#39;&gt;, &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &lt;class &#39;<a href="#SetAgg">SetAgg</a>&#39;&gt;, &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;]</span>
+ <label class="view-value-button pdoc-button" for="ALL_FUNCTIONS-view-value"></label><span class="default_value">[&lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayJoin">ArrayJoin</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &lt;class &#39;<a href="#LastDateOfMonth">LastDateOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &lt;class &#39;<a href="#Log10">Log10</a>&#39;&gt;, &lt;class &#39;<a href="#Log2">Log2</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &lt;class &#39;<a href="#SafeConcat">SafeConcat</a>&#39;&gt;, &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &lt;class &#39;<a href="#SetAgg">SetAgg</a>&#39;&gt;, &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;]</span>
</div>
@@ -75544,52 +75913,52 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#maybe_parse"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-5150"><a href="#maybe_parse-5150"><span class="linenos">5150</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="maybe_parse-5151"><a href="#maybe_parse-5151"><span class="linenos">5151</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="maybe_parse-5152"><a href="#maybe_parse-5152"><span class="linenos">5152</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="maybe_parse-5153"><a href="#maybe_parse-5153"><span class="linenos">5153</span></a> <span class="n">into</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">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="maybe_parse-5154"><a href="#maybe_parse-5154"><span class="linenos">5154</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="maybe_parse-5155"><a href="#maybe_parse-5155"><span class="linenos">5155</span></a> <span class="n">prefix</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="maybe_parse-5156"><a href="#maybe_parse-5156"><span class="linenos">5156</span></a> <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><span id="maybe_parse-5157"><a href="#maybe_parse-5157"><span class="linenos">5157</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="maybe_parse-5158"><a href="#maybe_parse-5158"><span class="linenos">5158</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="maybe_parse-5159"><a href="#maybe_parse-5159"><span class="linenos">5159</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
-</span><span id="maybe_parse-5160"><a href="#maybe_parse-5160"><span class="linenos">5160</span></a>
-</span><span id="maybe_parse-5161"><a href="#maybe_parse-5161"><span class="linenos">5161</span></a><span class="sd"> Example:</span>
-</span><span id="maybe_parse-5162"><a href="#maybe_parse-5162"><span class="linenos">5162</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="maybe_parse-5163"><a href="#maybe_parse-5163"><span class="linenos">5163</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="maybe_parse-5164"><a href="#maybe_parse-5164"><span class="linenos">5164</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="maybe_parse-5165"><a href="#maybe_parse-5165"><span class="linenos">5165</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="maybe_parse-5166"><a href="#maybe_parse-5166"><span class="linenos">5166</span></a>
-</span><span id="maybe_parse-5167"><a href="#maybe_parse-5167"><span class="linenos">5167</span></a><span class="sd"> Args:</span>
-</span><span id="maybe_parse-5168"><a href="#maybe_parse-5168"><span class="linenos">5168</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="maybe_parse-5169"><a href="#maybe_parse-5169"><span class="linenos">5169</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="maybe_parse-5170"><a href="#maybe_parse-5170"><span class="linenos">5170</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="maybe_parse-5171"><a href="#maybe_parse-5171"><span class="linenos">5171</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="maybe_parse-5172"><a href="#maybe_parse-5172"><span class="linenos">5172</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="maybe_parse-5173"><a href="#maybe_parse-5173"><span class="linenos">5173</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="maybe_parse-5174"><a href="#maybe_parse-5174"><span class="linenos">5174</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="maybe_parse-5175"><a href="#maybe_parse-5175"><span class="linenos">5175</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="maybe_parse-5176"><a href="#maybe_parse-5176"><span class="linenos">5176</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="maybe_parse-5177"><a href="#maybe_parse-5177"><span class="linenos">5177</span></a>
-</span><span id="maybe_parse-5178"><a href="#maybe_parse-5178"><span class="linenos">5178</span></a><span class="sd"> Returns:</span>
-</span><span id="maybe_parse-5179"><a href="#maybe_parse-5179"><span class="linenos">5179</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="maybe_parse-5180"><a href="#maybe_parse-5180"><span class="linenos">5180</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="maybe_parse-5181"><a href="#maybe_parse-5181"><span class="linenos">5181</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="maybe_parse-5182"><a href="#maybe_parse-5182"><span class="linenos">5182</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="maybe_parse-5183"><a href="#maybe_parse-5183"><span class="linenos">5183</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="maybe_parse-5184"><a href="#maybe_parse-5184"><span class="linenos">5184</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="maybe_parse-5185"><a href="#maybe_parse-5185"><span class="linenos">5185</span></a>
-</span><span id="maybe_parse-5186"><a href="#maybe_parse-5186"><span class="linenos">5186</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="maybe_parse-5187"><a href="#maybe_parse-5187"><span class="linenos">5187</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
-</span><span id="maybe_parse-5188"><a href="#maybe_parse-5188"><span class="linenos">5188</span></a>
-</span><span id="maybe_parse-5189"><a href="#maybe_parse-5189"><span class="linenos">5189</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="maybe_parse-5190"><a href="#maybe_parse-5190"><span class="linenos">5190</span></a>
-</span><span id="maybe_parse-5191"><a href="#maybe_parse-5191"><span class="linenos">5191</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span>
-</span><span id="maybe_parse-5192"><a href="#maybe_parse-5192"><span class="linenos">5192</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="maybe_parse-5193"><a href="#maybe_parse-5193"><span class="linenos">5193</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="maybe_parse-5194"><a href="#maybe_parse-5194"><span class="linenos">5194</span></a>
-</span><span id="maybe_parse-5195"><a href="#maybe_parse-5195"><span class="linenos">5195</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-5162"><a href="#maybe_parse-5162"><span class="linenos">5162</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="maybe_parse-5163"><a href="#maybe_parse-5163"><span class="linenos">5163</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="maybe_parse-5164"><a href="#maybe_parse-5164"><span class="linenos">5164</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="maybe_parse-5165"><a href="#maybe_parse-5165"><span class="linenos">5165</span></a> <span class="n">into</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">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="maybe_parse-5166"><a href="#maybe_parse-5166"><span class="linenos">5166</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="maybe_parse-5167"><a href="#maybe_parse-5167"><span class="linenos">5167</span></a> <span class="n">prefix</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="maybe_parse-5168"><a href="#maybe_parse-5168"><span class="linenos">5168</span></a> <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><span id="maybe_parse-5169"><a href="#maybe_parse-5169"><span class="linenos">5169</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="maybe_parse-5170"><a href="#maybe_parse-5170"><span class="linenos">5170</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="maybe_parse-5171"><a href="#maybe_parse-5171"><span class="linenos">5171</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="maybe_parse-5172"><a href="#maybe_parse-5172"><span class="linenos">5172</span></a>
+</span><span id="maybe_parse-5173"><a href="#maybe_parse-5173"><span class="linenos">5173</span></a><span class="sd"> Example:</span>
+</span><span id="maybe_parse-5174"><a href="#maybe_parse-5174"><span class="linenos">5174</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="maybe_parse-5175"><a href="#maybe_parse-5175"><span class="linenos">5175</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="maybe_parse-5176"><a href="#maybe_parse-5176"><span class="linenos">5176</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="maybe_parse-5177"><a href="#maybe_parse-5177"><span class="linenos">5177</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="maybe_parse-5178"><a href="#maybe_parse-5178"><span class="linenos">5178</span></a>
+</span><span id="maybe_parse-5179"><a href="#maybe_parse-5179"><span class="linenos">5179</span></a><span class="sd"> Args:</span>
+</span><span id="maybe_parse-5180"><a href="#maybe_parse-5180"><span class="linenos">5180</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="maybe_parse-5181"><a href="#maybe_parse-5181"><span class="linenos">5181</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="maybe_parse-5182"><a href="#maybe_parse-5182"><span class="linenos">5182</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="maybe_parse-5183"><a href="#maybe_parse-5183"><span class="linenos">5183</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="maybe_parse-5184"><a href="#maybe_parse-5184"><span class="linenos">5184</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="maybe_parse-5185"><a href="#maybe_parse-5185"><span class="linenos">5185</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="maybe_parse-5186"><a href="#maybe_parse-5186"><span class="linenos">5186</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="maybe_parse-5187"><a href="#maybe_parse-5187"><span class="linenos">5187</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="maybe_parse-5188"><a href="#maybe_parse-5188"><span class="linenos">5188</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="maybe_parse-5189"><a href="#maybe_parse-5189"><span class="linenos">5189</span></a>
+</span><span id="maybe_parse-5190"><a href="#maybe_parse-5190"><span class="linenos">5190</span></a><span class="sd"> Returns:</span>
+</span><span id="maybe_parse-5191"><a href="#maybe_parse-5191"><span class="linenos">5191</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="maybe_parse-5192"><a href="#maybe_parse-5192"><span class="linenos">5192</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="maybe_parse-5193"><a href="#maybe_parse-5193"><span class="linenos">5193</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="maybe_parse-5194"><a href="#maybe_parse-5194"><span class="linenos">5194</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="maybe_parse-5195"><a href="#maybe_parse-5195"><span class="linenos">5195</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="maybe_parse-5196"><a href="#maybe_parse-5196"><span class="linenos">5196</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="maybe_parse-5197"><a href="#maybe_parse-5197"><span class="linenos">5197</span></a>
+</span><span id="maybe_parse-5198"><a href="#maybe_parse-5198"><span class="linenos">5198</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="maybe_parse-5199"><a href="#maybe_parse-5199"><span class="linenos">5199</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
+</span><span id="maybe_parse-5200"><a href="#maybe_parse-5200"><span class="linenos">5200</span></a>
+</span><span id="maybe_parse-5201"><a href="#maybe_parse-5201"><span class="linenos">5201</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="maybe_parse-5202"><a href="#maybe_parse-5202"><span class="linenos">5202</span></a>
+</span><span id="maybe_parse-5203"><a href="#maybe_parse-5203"><span class="linenos">5203</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span>
+</span><span id="maybe_parse-5204"><a href="#maybe_parse-5204"><span class="linenos">5204</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="maybe_parse-5205"><a href="#maybe_parse-5205"><span class="linenos">5205</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&quot;</span>
+</span><span id="maybe_parse-5206"><a href="#maybe_parse-5206"><span class="linenos">5206</span></a>
+</span><span id="maybe_parse-5207"><a href="#maybe_parse-5207"><span class="linenos">5207</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></pre></div>
@@ -75641,8 +76010,8 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#maybe_copy"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-5208"><a href="#maybe_copy-5208"><span class="linenos">5208</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-5209"><a href="#maybe_copy-5209"><span class="linenos">5209</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-5220"><a href="#maybe_copy-5220"><span class="linenos">5220</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-5221"><a href="#maybe_copy-5221"><span class="linenos">5221</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>
@@ -75660,32 +76029,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-5390"><a href="#union-5390"><span class="linenos">5390</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="union-5391"><a href="#union-5391"><span class="linenos">5391</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-5392"><a href="#union-5392"><span class="linenos">5392</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="union-5393"><a href="#union-5393"><span class="linenos">5393</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-5394"><a href="#union-5394"><span class="linenos">5394</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-5395"><a href="#union-5395"><span class="linenos">5395</span></a>
-</span><span id="union-5396"><a href="#union-5396"><span class="linenos">5396</span></a><span class="sd"> Example:</span>
-</span><span id="union-5397"><a href="#union-5397"><span class="linenos">5397</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-5398"><a href="#union-5398"><span class="linenos">5398</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-5399"><a href="#union-5399"><span class="linenos">5399</span></a>
-</span><span id="union-5400"><a href="#union-5400"><span class="linenos">5400</span></a><span class="sd"> Args:</span>
-</span><span id="union-5401"><a href="#union-5401"><span class="linenos">5401</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-5402"><a href="#union-5402"><span class="linenos">5402</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-5403"><a href="#union-5403"><span class="linenos">5403</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-5404"><a href="#union-5404"><span class="linenos">5404</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-5405"><a href="#union-5405"><span class="linenos">5405</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-5406"><a href="#union-5406"><span class="linenos">5406</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="union-5407"><a href="#union-5407"><span class="linenos">5407</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="union-5408"><a href="#union-5408"><span class="linenos">5408</span></a>
-</span><span id="union-5409"><a href="#union-5409"><span class="linenos">5409</span></a><span class="sd"> Returns:</span>
-</span><span id="union-5410"><a href="#union-5410"><span class="linenos">5410</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="union-5411"><a href="#union-5411"><span class="linenos">5411</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-5412"><a href="#union-5412"><span class="linenos">5412</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-5413"><a href="#union-5413"><span class="linenos">5413</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-5414"><a href="#union-5414"><span class="linenos">5414</span></a>
-</span><span id="union-5415"><a href="#union-5415"><span class="linenos">5415</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-5402"><a href="#union-5402"><span class="linenos">5402</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="union-5403"><a href="#union-5403"><span class="linenos">5403</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-5404"><a href="#union-5404"><span class="linenos">5404</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="union-5405"><a href="#union-5405"><span class="linenos">5405</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-5406"><a href="#union-5406"><span class="linenos">5406</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-5407"><a href="#union-5407"><span class="linenos">5407</span></a>
+</span><span id="union-5408"><a href="#union-5408"><span class="linenos">5408</span></a><span class="sd"> Example:</span>
+</span><span id="union-5409"><a href="#union-5409"><span class="linenos">5409</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-5410"><a href="#union-5410"><span class="linenos">5410</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="union-5411"><a href="#union-5411"><span class="linenos">5411</span></a>
+</span><span id="union-5412"><a href="#union-5412"><span class="linenos">5412</span></a><span class="sd"> Args:</span>
+</span><span id="union-5413"><a href="#union-5413"><span class="linenos">5413</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-5414"><a href="#union-5414"><span class="linenos">5414</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-5415"><a href="#union-5415"><span class="linenos">5415</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-5416"><a href="#union-5416"><span class="linenos">5416</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-5417"><a href="#union-5417"><span class="linenos">5417</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-5418"><a href="#union-5418"><span class="linenos">5418</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="union-5419"><a href="#union-5419"><span class="linenos">5419</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="union-5420"><a href="#union-5420"><span class="linenos">5420</span></a>
+</span><span id="union-5421"><a href="#union-5421"><span class="linenos">5421</span></a><span class="sd"> Returns:</span>
+</span><span id="union-5422"><a href="#union-5422"><span class="linenos">5422</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="union-5423"><a href="#union-5423"><span class="linenos">5423</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-5424"><a href="#union-5424"><span class="linenos">5424</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-5425"><a href="#union-5425"><span class="linenos">5425</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-5426"><a href="#union-5426"><span class="linenos">5426</span></a>
+</span><span id="union-5427"><a href="#union-5427"><span class="linenos">5427</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>
@@ -75733,32 +76102,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-5418"><a href="#intersect-5418"><span class="linenos">5418</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="intersect-5419"><a href="#intersect-5419"><span class="linenos">5419</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-5420"><a href="#intersect-5420"><span class="linenos">5420</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="intersect-5421"><a href="#intersect-5421"><span class="linenos">5421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-5422"><a href="#intersect-5422"><span class="linenos">5422</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-5423"><a href="#intersect-5423"><span class="linenos">5423</span></a>
-</span><span id="intersect-5424"><a href="#intersect-5424"><span class="linenos">5424</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-5425"><a href="#intersect-5425"><span class="linenos">5425</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-5426"><a href="#intersect-5426"><span class="linenos">5426</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-5427"><a href="#intersect-5427"><span class="linenos">5427</span></a>
-</span><span id="intersect-5428"><a href="#intersect-5428"><span class="linenos">5428</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-5429"><a href="#intersect-5429"><span class="linenos">5429</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-5430"><a href="#intersect-5430"><span class="linenos">5430</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-5431"><a href="#intersect-5431"><span class="linenos">5431</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-5432"><a href="#intersect-5432"><span class="linenos">5432</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-5433"><a href="#intersect-5433"><span class="linenos">5433</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-5434"><a href="#intersect-5434"><span class="linenos">5434</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="intersect-5435"><a href="#intersect-5435"><span class="linenos">5435</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="intersect-5436"><a href="#intersect-5436"><span class="linenos">5436</span></a>
-</span><span id="intersect-5437"><a href="#intersect-5437"><span class="linenos">5437</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-5438"><a href="#intersect-5438"><span class="linenos">5438</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="intersect-5439"><a href="#intersect-5439"><span class="linenos">5439</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-5440"><a href="#intersect-5440"><span class="linenos">5440</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-5441"><a href="#intersect-5441"><span class="linenos">5441</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-5442"><a href="#intersect-5442"><span class="linenos">5442</span></a>
-</span><span id="intersect-5443"><a href="#intersect-5443"><span class="linenos">5443</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-5430"><a href="#intersect-5430"><span class="linenos">5430</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="intersect-5431"><a href="#intersect-5431"><span class="linenos">5431</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-5432"><a href="#intersect-5432"><span class="linenos">5432</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="intersect-5433"><a href="#intersect-5433"><span class="linenos">5433</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-5434"><a href="#intersect-5434"><span class="linenos">5434</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-5435"><a href="#intersect-5435"><span class="linenos">5435</span></a>
+</span><span id="intersect-5436"><a href="#intersect-5436"><span class="linenos">5436</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-5437"><a href="#intersect-5437"><span class="linenos">5437</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-5438"><a href="#intersect-5438"><span class="linenos">5438</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="intersect-5439"><a href="#intersect-5439"><span class="linenos">5439</span></a>
+</span><span id="intersect-5440"><a href="#intersect-5440"><span class="linenos">5440</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-5441"><a href="#intersect-5441"><span class="linenos">5441</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-5442"><a href="#intersect-5442"><span class="linenos">5442</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-5443"><a href="#intersect-5443"><span class="linenos">5443</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-5444"><a href="#intersect-5444"><span class="linenos">5444</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-5445"><a href="#intersect-5445"><span class="linenos">5445</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-5446"><a href="#intersect-5446"><span class="linenos">5446</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="intersect-5447"><a href="#intersect-5447"><span class="linenos">5447</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="intersect-5448"><a href="#intersect-5448"><span class="linenos">5448</span></a>
+</span><span id="intersect-5449"><a href="#intersect-5449"><span class="linenos">5449</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-5450"><a href="#intersect-5450"><span class="linenos">5450</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="intersect-5451"><a href="#intersect-5451"><span class="linenos">5451</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-5452"><a href="#intersect-5452"><span class="linenos">5452</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-5453"><a href="#intersect-5453"><span class="linenos">5453</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-5454"><a href="#intersect-5454"><span class="linenos">5454</span></a>
+</span><span id="intersect-5455"><a href="#intersect-5455"><span class="linenos">5455</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>
@@ -75806,32 +76175,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_-5446"><a href="#except_-5446"><span class="linenos">5446</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="except_-5447"><a href="#except_-5447"><span class="linenos">5447</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_-5448"><a href="#except_-5448"><span class="linenos">5448</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="except_-5449"><a href="#except_-5449"><span class="linenos">5449</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-5450"><a href="#except_-5450"><span class="linenos">5450</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-5451"><a href="#except_-5451"><span class="linenos">5451</span></a>
-</span><span id="except_-5452"><a href="#except_-5452"><span class="linenos">5452</span></a><span class="sd"> Example:</span>
-</span><span id="except_-5453"><a href="#except_-5453"><span class="linenos">5453</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_-5454"><a href="#except_-5454"><span class="linenos">5454</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-5455"><a href="#except_-5455"><span class="linenos">5455</span></a>
-</span><span id="except_-5456"><a href="#except_-5456"><span class="linenos">5456</span></a><span class="sd"> Args:</span>
-</span><span id="except_-5457"><a href="#except_-5457"><span class="linenos">5457</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-5458"><a href="#except_-5458"><span class="linenos">5458</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-5459"><a href="#except_-5459"><span class="linenos">5459</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-5460"><a href="#except_-5460"><span class="linenos">5460</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-5461"><a href="#except_-5461"><span class="linenos">5461</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-5462"><a href="#except_-5462"><span class="linenos">5462</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="except_-5463"><a href="#except_-5463"><span class="linenos">5463</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="except_-5464"><a href="#except_-5464"><span class="linenos">5464</span></a>
-</span><span id="except_-5465"><a href="#except_-5465"><span class="linenos">5465</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-5466"><a href="#except_-5466"><span class="linenos">5466</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="except_-5467"><a href="#except_-5467"><span class="linenos">5467</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-5468"><a href="#except_-5468"><span class="linenos">5468</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_-5469"><a href="#except_-5469"><span class="linenos">5469</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_-5470"><a href="#except_-5470"><span class="linenos">5470</span></a>
-</span><span id="except_-5471"><a href="#except_-5471"><span class="linenos">5471</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_-5458"><a href="#except_-5458"><span class="linenos">5458</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="except_-5459"><a href="#except_-5459"><span class="linenos">5459</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_-5460"><a href="#except_-5460"><span class="linenos">5460</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="except_-5461"><a href="#except_-5461"><span class="linenos">5461</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-5462"><a href="#except_-5462"><span class="linenos">5462</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-5463"><a href="#except_-5463"><span class="linenos">5463</span></a>
+</span><span id="except_-5464"><a href="#except_-5464"><span class="linenos">5464</span></a><span class="sd"> Example:</span>
+</span><span id="except_-5465"><a href="#except_-5465"><span class="linenos">5465</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_-5466"><a href="#except_-5466"><span class="linenos">5466</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="except_-5467"><a href="#except_-5467"><span class="linenos">5467</span></a>
+</span><span id="except_-5468"><a href="#except_-5468"><span class="linenos">5468</span></a><span class="sd"> Args:</span>
+</span><span id="except_-5469"><a href="#except_-5469"><span class="linenos">5469</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-5470"><a href="#except_-5470"><span class="linenos">5470</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-5471"><a href="#except_-5471"><span class="linenos">5471</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-5472"><a href="#except_-5472"><span class="linenos">5472</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-5473"><a href="#except_-5473"><span class="linenos">5473</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-5474"><a href="#except_-5474"><span class="linenos">5474</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="except_-5475"><a href="#except_-5475"><span class="linenos">5475</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="except_-5476"><a href="#except_-5476"><span class="linenos">5476</span></a>
+</span><span id="except_-5477"><a href="#except_-5477"><span class="linenos">5477</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-5478"><a href="#except_-5478"><span class="linenos">5478</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="except_-5479"><a href="#except_-5479"><span class="linenos">5479</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-5480"><a href="#except_-5480"><span class="linenos">5480</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_-5481"><a href="#except_-5481"><span class="linenos">5481</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_-5482"><a href="#except_-5482"><span class="linenos">5482</span></a>
+</span><span id="except_-5483"><a href="#except_-5483"><span class="linenos">5483</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>
@@ -75879,26 +76248,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-5474"><a href="#select-5474"><span class="linenos">5474</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-5475"><a href="#select-5475"><span class="linenos">5475</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-5476"><a href="#select-5476"><span class="linenos">5476</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-5477"><a href="#select-5477"><span class="linenos">5477</span></a>
-</span><span id="select-5478"><a href="#select-5478"><span class="linenos">5478</span></a><span class="sd"> Example:</span>
-</span><span id="select-5479"><a href="#select-5479"><span class="linenos">5479</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-5480"><a href="#select-5480"><span class="linenos">5480</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-5481"><a href="#select-5481"><span class="linenos">5481</span></a>
-</span><span id="select-5482"><a href="#select-5482"><span class="linenos">5482</span></a><span class="sd"> Args:</span>
-</span><span id="select-5483"><a href="#select-5483"><span class="linenos">5483</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-5484"><a href="#select-5484"><span class="linenos">5484</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-5485"><a href="#select-5485"><span class="linenos">5485</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-5486"><a href="#select-5486"><span class="linenos">5486</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-5487"><a href="#select-5487"><span class="linenos">5487</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-5488"><a href="#select-5488"><span class="linenos">5488</span></a><span class="sd"> that an input expression is a SQL string).</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="select-5486"><a href="#select-5486"><span class="linenos">5486</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-5487"><a href="#select-5487"><span class="linenos">5487</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-5488"><a href="#select-5488"><span class="linenos">5488</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
</span><span id="select-5489"><a href="#select-5489"><span class="linenos">5489</span></a>
-</span><span id="select-5490"><a href="#select-5490"><span class="linenos">5490</span></a><span class="sd"> Returns:</span>
-</span><span id="select-5491"><a href="#select-5491"><span class="linenos">5491</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-5492"><a href="#select-5492"><span class="linenos">5492</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-5493"><a href="#select-5493"><span class="linenos">5493</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="select-5490"><a href="#select-5490"><span class="linenos">5490</span></a><span class="sd"> Example:</span>
+</span><span id="select-5491"><a href="#select-5491"><span class="linenos">5491</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-5492"><a href="#select-5492"><span class="linenos">5492</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-5493"><a href="#select-5493"><span class="linenos">5493</span></a>
+</span><span id="select-5494"><a href="#select-5494"><span class="linenos">5494</span></a><span class="sd"> Args:</span>
+</span><span id="select-5495"><a href="#select-5495"><span class="linenos">5495</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-5496"><a href="#select-5496"><span class="linenos">5496</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-5497"><a href="#select-5497"><span class="linenos">5497</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-5498"><a href="#select-5498"><span class="linenos">5498</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-5499"><a href="#select-5499"><span class="linenos">5499</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-5500"><a href="#select-5500"><span class="linenos">5500</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-5501"><a href="#select-5501"><span class="linenos">5501</span></a>
+</span><span id="select-5502"><a href="#select-5502"><span class="linenos">5502</span></a><span class="sd"> Returns:</span>
+</span><span id="select-5503"><a href="#select-5503"><span class="linenos">5503</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-5504"><a href="#select-5504"><span class="linenos">5504</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-5505"><a href="#select-5505"><span class="linenos">5505</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>
@@ -75945,26 +76314,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_-5496"><a href="#from_-5496"><span class="linenos">5496</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_-5497"><a href="#from_-5497"><span class="linenos">5497</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-5498"><a href="#from_-5498"><span class="linenos">5498</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-5499"><a href="#from_-5499"><span class="linenos">5499</span></a>
-</span><span id="from_-5500"><a href="#from_-5500"><span class="linenos">5500</span></a><span class="sd"> Example:</span>
-</span><span id="from_-5501"><a href="#from_-5501"><span class="linenos">5501</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_-5502"><a href="#from_-5502"><span class="linenos">5502</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-5503"><a href="#from_-5503"><span class="linenos">5503</span></a>
-</span><span id="from_-5504"><a href="#from_-5504"><span class="linenos">5504</span></a><span class="sd"> Args:</span>
-</span><span id="from_-5505"><a href="#from_-5505"><span class="linenos">5505</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-5506"><a href="#from_-5506"><span class="linenos">5506</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-5507"><a href="#from_-5507"><span class="linenos">5507</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-5508"><a href="#from_-5508"><span class="linenos">5508</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-5509"><a href="#from_-5509"><span class="linenos">5509</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-5510"><a href="#from_-5510"><span class="linenos">5510</span></a><span class="sd"> that the input expression is a SQL string).</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-5508"><a href="#from_-5508"><span class="linenos">5508</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_-5509"><a href="#from_-5509"><span class="linenos">5509</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-5510"><a href="#from_-5510"><span class="linenos">5510</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
</span><span id="from_-5511"><a href="#from_-5511"><span class="linenos">5511</span></a>
-</span><span id="from_-5512"><a href="#from_-5512"><span class="linenos">5512</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-5513"><a href="#from_-5513"><span class="linenos">5513</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-5514"><a href="#from_-5514"><span class="linenos">5514</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-5515"><a href="#from_-5515"><span class="linenos">5515</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="from_-5512"><a href="#from_-5512"><span class="linenos">5512</span></a><span class="sd"> Example:</span>
+</span><span id="from_-5513"><a href="#from_-5513"><span class="linenos">5513</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_-5514"><a href="#from_-5514"><span class="linenos">5514</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-5515"><a href="#from_-5515"><span class="linenos">5515</span></a>
+</span><span id="from_-5516"><a href="#from_-5516"><span class="linenos">5516</span></a><span class="sd"> Args:</span>
+</span><span id="from_-5517"><a href="#from_-5517"><span class="linenos">5517</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-5518"><a href="#from_-5518"><span class="linenos">5518</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-5519"><a href="#from_-5519"><span class="linenos">5519</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-5520"><a href="#from_-5520"><span class="linenos">5520</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-5521"><a href="#from_-5521"><span class="linenos">5521</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-5522"><a href="#from_-5522"><span class="linenos">5522</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-5523"><a href="#from_-5523"><span class="linenos">5523</span></a>
+</span><span id="from_-5524"><a href="#from_-5524"><span class="linenos">5524</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-5525"><a href="#from_-5525"><span class="linenos">5525</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-5526"><a href="#from_-5526"><span class="linenos">5526</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-5527"><a href="#from_-5527"><span class="linenos">5527</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>
@@ -76011,53 +76380,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-5518"><a href="#update-5518"><span class="linenos">5518</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="update-5519"><a href="#update-5519"><span class="linenos">5519</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-5520"><a href="#update-5520"><span class="linenos">5520</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="update-5521"><a href="#update-5521"><span class="linenos">5521</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-5522"><a href="#update-5522"><span class="linenos">5522</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-5523"><a href="#update-5523"><span class="linenos">5523</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-5524"><a href="#update-5524"><span class="linenos">5524</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="update-5525"><a href="#update-5525"><span class="linenos">5525</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="update-5526"><a href="#update-5526"><span class="linenos">5526</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-5527"><a href="#update-5527"><span class="linenos">5527</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-5528"><a href="#update-5528"><span class="linenos">5528</span></a>
-</span><span id="update-5529"><a href="#update-5529"><span class="linenos">5529</span></a><span class="sd"> Example:</span>
-</span><span id="update-5530"><a href="#update-5530"><span class="linenos">5530</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-5531"><a href="#update-5531"><span class="linenos">5531</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-5532"><a href="#update-5532"><span class="linenos">5532</span></a>
-</span><span id="update-5533"><a href="#update-5533"><span class="linenos">5533</span></a><span class="sd"> Args:</span>
-</span><span id="update-5534"><a href="#update-5534"><span class="linenos">5534</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="update-5535"><a href="#update-5535"><span class="linenos">5535</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-5536"><a href="#update-5536"><span class="linenos">5536</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="update-5537"><a href="#update-5537"><span class="linenos">5537</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="update-5538"><a href="#update-5538"><span class="linenos">5538</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="update-5539"><a href="#update-5539"><span class="linenos">5539</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="update-5530"><a href="#update-5530"><span class="linenos">5530</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="update-5531"><a href="#update-5531"><span class="linenos">5531</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-5532"><a href="#update-5532"><span class="linenos">5532</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="update-5533"><a href="#update-5533"><span class="linenos">5533</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-5534"><a href="#update-5534"><span class="linenos">5534</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-5535"><a href="#update-5535"><span class="linenos">5535</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-5536"><a href="#update-5536"><span class="linenos">5536</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="update-5537"><a href="#update-5537"><span class="linenos">5537</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="update-5538"><a href="#update-5538"><span class="linenos">5538</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-5539"><a href="#update-5539"><span class="linenos">5539</span></a><span class="sd"> Creates an update statement.</span>
</span><span id="update-5540"><a href="#update-5540"><span class="linenos">5540</span></a>
-</span><span id="update-5541"><a href="#update-5541"><span class="linenos">5541</span></a><span class="sd"> Returns:</span>
-</span><span id="update-5542"><a href="#update-5542"><span class="linenos">5542</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-5543"><a href="#update-5543"><span class="linenos">5543</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-5544"><a href="#update-5544"><span class="linenos">5544</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-5545"><a href="#update-5545"><span class="linenos">5545</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-5546"><a href="#update-5546"><span class="linenos">5546</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-5547"><a href="#update-5547"><span class="linenos">5547</span></a> <span class="p">[</span>
-</span><span id="update-5548"><a href="#update-5548"><span class="linenos">5548</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-5549"><a href="#update-5549"><span class="linenos">5549</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-5550"><a href="#update-5550"><span class="linenos">5550</span></a> <span class="p">],</span>
-</span><span id="update-5551"><a href="#update-5551"><span class="linenos">5551</span></a> <span class="p">)</span>
-</span><span id="update-5552"><a href="#update-5552"><span class="linenos">5552</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-5553"><a href="#update-5553"><span class="linenos">5553</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-5554"><a href="#update-5554"><span class="linenos">5554</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-5555"><a href="#update-5555"><span class="linenos">5555</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-5556"><a href="#update-5556"><span class="linenos">5556</span></a> <span class="p">)</span>
-</span><span id="update-5557"><a href="#update-5557"><span class="linenos">5557</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-5558"><a href="#update-5558"><span class="linenos">5558</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-5559"><a href="#update-5559"><span class="linenos">5559</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-5560"><a href="#update-5560"><span class="linenos">5560</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-5561"><a href="#update-5561"><span class="linenos">5561</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-5562"><a href="#update-5562"><span class="linenos">5562</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-5563"><a href="#update-5563"><span class="linenos">5563</span></a> <span class="p">)</span>
-</span><span id="update-5564"><a href="#update-5564"><span class="linenos">5564</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+</span><span id="update-5541"><a href="#update-5541"><span class="linenos">5541</span></a><span class="sd"> Example:</span>
+</span><span id="update-5542"><a href="#update-5542"><span class="linenos">5542</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-5543"><a href="#update-5543"><span class="linenos">5543</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-5544"><a href="#update-5544"><span class="linenos">5544</span></a>
+</span><span id="update-5545"><a href="#update-5545"><span class="linenos">5545</span></a><span class="sd"> Args:</span>
+</span><span id="update-5546"><a href="#update-5546"><span class="linenos">5546</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="update-5547"><a href="#update-5547"><span class="linenos">5547</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-5548"><a href="#update-5548"><span class="linenos">5548</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="update-5549"><a href="#update-5549"><span class="linenos">5549</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="update-5550"><a href="#update-5550"><span class="linenos">5550</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="update-5551"><a href="#update-5551"><span class="linenos">5551</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-5552"><a href="#update-5552"><span class="linenos">5552</span></a>
+</span><span id="update-5553"><a href="#update-5553"><span class="linenos">5553</span></a><span class="sd"> Returns:</span>
+</span><span id="update-5554"><a href="#update-5554"><span class="linenos">5554</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-5555"><a href="#update-5555"><span class="linenos">5555</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-5556"><a href="#update-5556"><span class="linenos">5556</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-5557"><a href="#update-5557"><span class="linenos">5557</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-5558"><a href="#update-5558"><span class="linenos">5558</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-5559"><a href="#update-5559"><span class="linenos">5559</span></a> <span class="p">[</span>
+</span><span id="update-5560"><a href="#update-5560"><span class="linenos">5560</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-5561"><a href="#update-5561"><span class="linenos">5561</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-5562"><a href="#update-5562"><span class="linenos">5562</span></a> <span class="p">],</span>
+</span><span id="update-5563"><a href="#update-5563"><span class="linenos">5563</span></a> <span class="p">)</span>
+</span><span id="update-5564"><a href="#update-5564"><span class="linenos">5564</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-5565"><a href="#update-5565"><span class="linenos">5565</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-5566"><a href="#update-5566"><span class="linenos">5566</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-5567"><a href="#update-5567"><span class="linenos">5567</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-5568"><a href="#update-5568"><span class="linenos">5568</span></a> <span class="p">)</span>
+</span><span id="update-5569"><a href="#update-5569"><span class="linenos">5569</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-5570"><a href="#update-5570"><span class="linenos">5570</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-5571"><a href="#update-5571"><span class="linenos">5571</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-5572"><a href="#update-5572"><span class="linenos">5572</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-5573"><a href="#update-5573"><span class="linenos">5573</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-5574"><a href="#update-5574"><span class="linenos">5574</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-5575"><a href="#update-5575"><span class="linenos">5575</span></a> <span class="p">)</span>
+</span><span id="update-5576"><a href="#update-5576"><span class="linenos">5576</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
@@ -76104,35 +76473,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-5567"><a href="#delete-5567"><span class="linenos">5567</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="delete-5568"><a href="#delete-5568"><span class="linenos">5568</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="delete-5569"><a href="#delete-5569"><span class="linenos">5569</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-5570"><a href="#delete-5570"><span class="linenos">5570</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-5571"><a href="#delete-5571"><span class="linenos">5571</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-5572"><a href="#delete-5572"><span class="linenos">5572</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="delete-5573"><a href="#delete-5573"><span class="linenos">5573</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="delete-5574"><a href="#delete-5574"><span class="linenos">5574</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-5575"><a href="#delete-5575"><span class="linenos">5575</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-5576"><a href="#delete-5576"><span class="linenos">5576</span></a>
-</span><span id="delete-5577"><a href="#delete-5577"><span class="linenos">5577</span></a><span class="sd"> Example:</span>
-</span><span id="delete-5578"><a href="#delete-5578"><span class="linenos">5578</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-5579"><a href="#delete-5579"><span class="linenos">5579</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-5580"><a href="#delete-5580"><span class="linenos">5580</span></a>
-</span><span id="delete-5581"><a href="#delete-5581"><span class="linenos">5581</span></a><span class="sd"> Args:</span>
-</span><span id="delete-5582"><a href="#delete-5582"><span class="linenos">5582</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-5583"><a href="#delete-5583"><span class="linenos">5583</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="delete-5584"><a href="#delete-5584"><span class="linenos">5584</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="delete-5585"><a href="#delete-5585"><span class="linenos">5585</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="delete-5586"><a href="#delete-5586"><span class="linenos">5586</span></a>
-</span><span id="delete-5587"><a href="#delete-5587"><span class="linenos">5587</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-5588"><a href="#delete-5588"><span class="linenos">5588</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-5589"><a href="#delete-5589"><span class="linenos">5589</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-5590"><a href="#delete-5590"><span class="linenos">5590</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-5591"><a href="#delete-5591"><span class="linenos">5591</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="delete-5592"><a href="#delete-5592"><span class="linenos">5592</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-5593"><a href="#delete-5593"><span class="linenos">5593</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="delete-5594"><a href="#delete-5594"><span class="linenos">5594</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-5595"><a href="#delete-5595"><span class="linenos">5595</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-5579"><a href="#delete-5579"><span class="linenos">5579</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="delete-5580"><a href="#delete-5580"><span class="linenos">5580</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="delete-5581"><a href="#delete-5581"><span class="linenos">5581</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-5582"><a href="#delete-5582"><span class="linenos">5582</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-5583"><a href="#delete-5583"><span class="linenos">5583</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-5584"><a href="#delete-5584"><span class="linenos">5584</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="delete-5585"><a href="#delete-5585"><span class="linenos">5585</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="delete-5586"><a href="#delete-5586"><span class="linenos">5586</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-5587"><a href="#delete-5587"><span class="linenos">5587</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="delete-5588"><a href="#delete-5588"><span class="linenos">5588</span></a>
+</span><span id="delete-5589"><a href="#delete-5589"><span class="linenos">5589</span></a><span class="sd"> Example:</span>
+</span><span id="delete-5590"><a href="#delete-5590"><span class="linenos">5590</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-5591"><a href="#delete-5591"><span class="linenos">5591</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-5592"><a href="#delete-5592"><span class="linenos">5592</span></a>
+</span><span id="delete-5593"><a href="#delete-5593"><span class="linenos">5593</span></a><span class="sd"> Args:</span>
+</span><span id="delete-5594"><a href="#delete-5594"><span class="linenos">5594</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-5595"><a href="#delete-5595"><span class="linenos">5595</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="delete-5596"><a href="#delete-5596"><span class="linenos">5596</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="delete-5597"><a href="#delete-5597"><span class="linenos">5597</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-5598"><a href="#delete-5598"><span class="linenos">5598</span></a>
+</span><span id="delete-5599"><a href="#delete-5599"><span class="linenos">5599</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-5600"><a href="#delete-5600"><span class="linenos">5600</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-5601"><a href="#delete-5601"><span class="linenos">5601</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-5602"><a href="#delete-5602"><span class="linenos">5602</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-5603"><a href="#delete-5603"><span class="linenos">5603</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="delete-5604"><a href="#delete-5604"><span class="linenos">5604</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-5605"><a href="#delete-5605"><span class="linenos">5605</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="delete-5606"><a href="#delete-5606"><span class="linenos">5606</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-5607"><a href="#delete-5607"><span class="linenos">5607</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
@@ -76177,49 +76546,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-5598"><a href="#insert-5598"><span class="linenos">5598</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="insert-5599"><a href="#insert-5599"><span class="linenos">5599</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-5600"><a href="#insert-5600"><span class="linenos">5600</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-5601"><a href="#insert-5601"><span class="linenos">5601</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-5602"><a href="#insert-5602"><span class="linenos">5602</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-5603"><a href="#insert-5603"><span class="linenos">5603</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-5604"><a href="#insert-5604"><span class="linenos">5604</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-5605"><a href="#insert-5605"><span class="linenos">5605</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-5606"><a href="#insert-5606"><span class="linenos">5606</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="insert-5607"><a href="#insert-5607"><span class="linenos">5607</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="insert-5608"><a href="#insert-5608"><span class="linenos">5608</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="insert-5609"><a href="#insert-5609"><span class="linenos">5609</span></a>
-</span><span id="insert-5610"><a href="#insert-5610"><span class="linenos">5610</span></a><span class="sd"> Example:</span>
-</span><span id="insert-5611"><a href="#insert-5611"><span class="linenos">5611</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="insert-5612"><a href="#insert-5612"><span class="linenos">5612</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="insert-5613"><a href="#insert-5613"><span class="linenos">5613</span></a>
-</span><span id="insert-5614"><a href="#insert-5614"><span class="linenos">5614</span></a><span class="sd"> Args:</span>
-</span><span id="insert-5615"><a href="#insert-5615"><span class="linenos">5615</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="insert-5616"><a href="#insert-5616"><span class="linenos">5616</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="insert-5617"><a href="#insert-5617"><span class="linenos">5617</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="insert-5618"><a href="#insert-5618"><span class="linenos">5618</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="insert-5619"><a href="#insert-5619"><span class="linenos">5619</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="insert-5620"><a href="#insert-5620"><span class="linenos">5620</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="insert-5621"><a href="#insert-5621"><span class="linenos">5621</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="insert-5622"><a href="#insert-5622"><span class="linenos">5622</span></a>
-</span><span id="insert-5623"><a href="#insert-5623"><span class="linenos">5623</span></a><span class="sd"> Returns:</span>
-</span><span id="insert-5624"><a href="#insert-5624"><span class="linenos">5624</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="insert-5625"><a href="#insert-5625"><span class="linenos">5625</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="insert-5626"><a href="#insert-5626"><span class="linenos">5626</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-5627"><a href="#insert-5627"><span class="linenos">5627</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-5628"><a href="#insert-5628"><span class="linenos">5628</span></a>
-</span><span id="insert-5629"><a href="#insert-5629"><span class="linenos">5629</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="insert-5630"><a href="#insert-5630"><span class="linenos">5630</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-5631"><a href="#insert-5631"><span class="linenos">5631</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
-</span><span id="insert-5632"><a href="#insert-5632"><span class="linenos">5632</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-5633"><a href="#insert-5633"><span class="linenos">5633</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-5634"><a href="#insert-5634"><span class="linenos">5634</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="insert-5635"><a href="#insert-5635"><span class="linenos">5635</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-</span><span id="insert-5636"><a href="#insert-5636"><span class="linenos">5636</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="insert-5637"><a href="#insert-5637"><span class="linenos">5637</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-5638"><a href="#insert-5638"><span class="linenos">5638</span></a> <span class="p">)</span>
-</span><span id="insert-5639"><a href="#insert-5639"><span class="linenos">5639</span></a>
-</span><span id="insert-5640"><a href="#insert-5640"><span class="linenos">5640</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-5610"><a href="#insert-5610"><span class="linenos">5610</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="insert-5611"><a href="#insert-5611"><span class="linenos">5611</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-5612"><a href="#insert-5612"><span class="linenos">5612</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-5613"><a href="#insert-5613"><span class="linenos">5613</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-5614"><a href="#insert-5614"><span class="linenos">5614</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-5615"><a href="#insert-5615"><span class="linenos">5615</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-5616"><a href="#insert-5616"><span class="linenos">5616</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-5617"><a href="#insert-5617"><span class="linenos">5617</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5618"><a href="#insert-5618"><span class="linenos">5618</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="insert-5619"><a href="#insert-5619"><span class="linenos">5619</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="insert-5620"><a href="#insert-5620"><span class="linenos">5620</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="insert-5621"><a href="#insert-5621"><span class="linenos">5621</span></a>
+</span><span id="insert-5622"><a href="#insert-5622"><span class="linenos">5622</span></a><span class="sd"> Example:</span>
+</span><span id="insert-5623"><a href="#insert-5623"><span class="linenos">5623</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="insert-5624"><a href="#insert-5624"><span class="linenos">5624</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="insert-5625"><a href="#insert-5625"><span class="linenos">5625</span></a>
+</span><span id="insert-5626"><a href="#insert-5626"><span class="linenos">5626</span></a><span class="sd"> Args:</span>
+</span><span id="insert-5627"><a href="#insert-5627"><span class="linenos">5627</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="insert-5628"><a href="#insert-5628"><span class="linenos">5628</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="insert-5629"><a href="#insert-5629"><span class="linenos">5629</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="insert-5630"><a href="#insert-5630"><span class="linenos">5630</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="insert-5631"><a href="#insert-5631"><span class="linenos">5631</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="insert-5632"><a href="#insert-5632"><span class="linenos">5632</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="insert-5633"><a href="#insert-5633"><span class="linenos">5633</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="insert-5634"><a href="#insert-5634"><span class="linenos">5634</span></a>
+</span><span id="insert-5635"><a href="#insert-5635"><span class="linenos">5635</span></a><span class="sd"> Returns:</span>
+</span><span id="insert-5636"><a href="#insert-5636"><span class="linenos">5636</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="insert-5637"><a href="#insert-5637"><span class="linenos">5637</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="insert-5638"><a href="#insert-5638"><span class="linenos">5638</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-5639"><a href="#insert-5639"><span class="linenos">5639</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-5640"><a href="#insert-5640"><span class="linenos">5640</span></a>
+</span><span id="insert-5641"><a href="#insert-5641"><span class="linenos">5641</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="insert-5642"><a href="#insert-5642"><span class="linenos">5642</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-5643"><a href="#insert-5643"><span class="linenos">5643</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
+</span><span id="insert-5644"><a href="#insert-5644"><span class="linenos">5644</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-5645"><a href="#insert-5645"><span class="linenos">5645</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-5646"><a href="#insert-5646"><span class="linenos">5646</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="insert-5647"><a href="#insert-5647"><span class="linenos">5647</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+</span><span id="insert-5648"><a href="#insert-5648"><span class="linenos">5648</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="insert-5649"><a href="#insert-5649"><span class="linenos">5649</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-5650"><a href="#insert-5650"><span class="linenos">5650</span></a> <span class="p">)</span>
+</span><span id="insert-5651"><a href="#insert-5651"><span class="linenos">5651</span></a>
+</span><span id="insert-5652"><a href="#insert-5652"><span class="linenos">5652</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>
@@ -76267,41 +76636,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-5643"><a href="#condition-5643"><span class="linenos">5643</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="condition-5644"><a href="#condition-5644"><span class="linenos">5644</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-5645"><a href="#condition-5645"><span class="linenos">5645</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="condition-5646"><a href="#condition-5646"><span class="linenos">5646</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-5647"><a href="#condition-5647"><span class="linenos">5647</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-5648"><a href="#condition-5648"><span class="linenos">5648</span></a>
-</span><span id="condition-5649"><a href="#condition-5649"><span class="linenos">5649</span></a><span class="sd"> Example:</span>
-</span><span id="condition-5650"><a href="#condition-5650"><span class="linenos">5650</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-5651"><a href="#condition-5651"><span class="linenos">5651</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-5652"><a href="#condition-5652"><span class="linenos">5652</span></a>
-</span><span id="condition-5653"><a href="#condition-5653"><span class="linenos">5653</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-5654"><a href="#condition-5654"><span class="linenos">5654</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-5655"><a href="#condition-5655"><span class="linenos">5655</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-5656"><a href="#condition-5656"><span class="linenos">5656</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-5657"><a href="#condition-5657"><span class="linenos">5657</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="condition-5658"><a href="#condition-5658"><span class="linenos">5658</span></a>
-</span><span id="condition-5659"><a href="#condition-5659"><span class="linenos">5659</span></a><span class="sd"> Args:</span>
-</span><span id="condition-5660"><a href="#condition-5660"><span class="linenos">5660</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="condition-5661"><a href="#condition-5661"><span class="linenos">5661</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-5662"><a href="#condition-5662"><span class="linenos">5662</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-5663"><a href="#condition-5663"><span class="linenos">5663</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-5664"><a href="#condition-5664"><span class="linenos">5664</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
-</span><span id="condition-5665"><a href="#condition-5665"><span class="linenos">5665</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-5666"><a href="#condition-5666"><span class="linenos">5666</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="condition-5667"><a href="#condition-5667"><span class="linenos">5667</span></a>
-</span><span id="condition-5668"><a href="#condition-5668"><span class="linenos">5668</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-5669"><a href="#condition-5669"><span class="linenos">5669</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="condition-5670"><a href="#condition-5670"><span class="linenos">5670</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-5671"><a href="#condition-5671"><span class="linenos">5671</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="condition-5672"><a href="#condition-5672"><span class="linenos">5672</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-5673"><a href="#condition-5673"><span class="linenos">5673</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-5674"><a href="#condition-5674"><span class="linenos">5674</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-5675"><a href="#condition-5675"><span class="linenos">5675</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="condition-5676"><a href="#condition-5676"><span class="linenos">5676</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-5677"><a href="#condition-5677"><span class="linenos">5677</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-5655"><a href="#condition-5655"><span class="linenos">5655</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="condition-5656"><a href="#condition-5656"><span class="linenos">5656</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-5657"><a href="#condition-5657"><span class="linenos">5657</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="condition-5658"><a href="#condition-5658"><span class="linenos">5658</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-5659"><a href="#condition-5659"><span class="linenos">5659</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="condition-5660"><a href="#condition-5660"><span class="linenos">5660</span></a>
+</span><span id="condition-5661"><a href="#condition-5661"><span class="linenos">5661</span></a><span class="sd"> Example:</span>
+</span><span id="condition-5662"><a href="#condition-5662"><span class="linenos">5662</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-5663"><a href="#condition-5663"><span class="linenos">5663</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="condition-5664"><a href="#condition-5664"><span class="linenos">5664</span></a>
+</span><span id="condition-5665"><a href="#condition-5665"><span class="linenos">5665</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-5666"><a href="#condition-5666"><span class="linenos">5666</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-5667"><a href="#condition-5667"><span class="linenos">5667</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-5668"><a href="#condition-5668"><span class="linenos">5668</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-5669"><a href="#condition-5669"><span class="linenos">5669</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-5670"><a href="#condition-5670"><span class="linenos">5670</span></a>
+</span><span id="condition-5671"><a href="#condition-5671"><span class="linenos">5671</span></a><span class="sd"> Args:</span>
+</span><span id="condition-5672"><a href="#condition-5672"><span class="linenos">5672</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="condition-5673"><a href="#condition-5673"><span class="linenos">5673</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-5674"><a href="#condition-5674"><span class="linenos">5674</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-5675"><a href="#condition-5675"><span class="linenos">5675</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-5676"><a href="#condition-5676"><span class="linenos">5676</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
+</span><span id="condition-5677"><a href="#condition-5677"><span class="linenos">5677</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-5678"><a href="#condition-5678"><span class="linenos">5678</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-5679"><a href="#condition-5679"><span class="linenos">5679</span></a>
+</span><span id="condition-5680"><a href="#condition-5680"><span class="linenos">5680</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-5681"><a href="#condition-5681"><span class="linenos">5681</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="condition-5682"><a href="#condition-5682"><span class="linenos">5682</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-5683"><a href="#condition-5683"><span class="linenos">5683</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="condition-5684"><a href="#condition-5684"><span class="linenos">5684</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-5685"><a href="#condition-5685"><span class="linenos">5685</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-5686"><a href="#condition-5686"><span class="linenos">5686</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-5687"><a href="#condition-5687"><span class="linenos">5687</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="condition-5688"><a href="#condition-5688"><span class="linenos">5688</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-5689"><a href="#condition-5689"><span class="linenos">5689</span></a> <span class="p">)</span>
</span></pre></div>
@@ -76359,27 +76728,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_-5680"><a href="#and_-5680"><span class="linenos">5680</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="and_-5681"><a href="#and_-5681"><span class="linenos">5681</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_-5682"><a href="#and_-5682"><span class="linenos">5682</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="and_-5683"><a href="#and_-5683"><span class="linenos">5683</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-5684"><a href="#and_-5684"><span class="linenos">5684</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-5685"><a href="#and_-5685"><span class="linenos">5685</span></a>
-</span><span id="and_-5686"><a href="#and_-5686"><span class="linenos">5686</span></a><span class="sd"> Example:</span>
-</span><span id="and_-5687"><a href="#and_-5687"><span class="linenos">5687</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_-5688"><a href="#and_-5688"><span class="linenos">5688</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-5689"><a href="#and_-5689"><span class="linenos">5689</span></a>
-</span><span id="and_-5690"><a href="#and_-5690"><span class="linenos">5690</span></a><span class="sd"> Args:</span>
-</span><span id="and_-5691"><a href="#and_-5691"><span class="linenos">5691</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="and_-5692"><a href="#and_-5692"><span class="linenos">5692</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-5693"><a href="#and_-5693"><span class="linenos">5693</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="and_-5694"><a href="#and_-5694"><span class="linenos">5694</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="and_-5695"><a href="#and_-5695"><span class="linenos">5695</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-5696"><a href="#and_-5696"><span class="linenos">5696</span></a>
-</span><span id="and_-5697"><a href="#and_-5697"><span class="linenos">5697</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-5698"><a href="#and_-5698"><span class="linenos">5698</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-5699"><a href="#and_-5699"><span class="linenos">5699</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-5700"><a href="#and_-5700"><span class="linenos">5700</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_-5692"><a href="#and_-5692"><span class="linenos">5692</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="and_-5693"><a href="#and_-5693"><span class="linenos">5693</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_-5694"><a href="#and_-5694"><span class="linenos">5694</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="and_-5695"><a href="#and_-5695"><span class="linenos">5695</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-5696"><a href="#and_-5696"><span class="linenos">5696</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-5697"><a href="#and_-5697"><span class="linenos">5697</span></a>
+</span><span id="and_-5698"><a href="#and_-5698"><span class="linenos">5698</span></a><span class="sd"> Example:</span>
+</span><span id="and_-5699"><a href="#and_-5699"><span class="linenos">5699</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_-5700"><a href="#and_-5700"><span class="linenos">5700</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-5701"><a href="#and_-5701"><span class="linenos">5701</span></a>
+</span><span id="and_-5702"><a href="#and_-5702"><span class="linenos">5702</span></a><span class="sd"> Args:</span>
+</span><span id="and_-5703"><a href="#and_-5703"><span class="linenos">5703</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="and_-5704"><a href="#and_-5704"><span class="linenos">5704</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-5705"><a href="#and_-5705"><span class="linenos">5705</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="and_-5706"><a href="#and_-5706"><span class="linenos">5706</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="and_-5707"><a href="#and_-5707"><span class="linenos">5707</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-5708"><a href="#and_-5708"><span class="linenos">5708</span></a>
+</span><span id="and_-5709"><a href="#and_-5709"><span class="linenos">5709</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-5710"><a href="#and_-5710"><span class="linenos">5710</span></a><span class="sd"> And: the new condition</span>
+</span><span id="and_-5711"><a href="#and_-5711"><span class="linenos">5711</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-5712"><a href="#and_-5712"><span class="linenos">5712</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>
@@ -76425,27 +76794,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_-5703"><a href="#or_-5703"><span class="linenos">5703</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="or_-5704"><a href="#or_-5704"><span class="linenos">5704</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_-5705"><a href="#or_-5705"><span class="linenos">5705</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="or_-5706"><a href="#or_-5706"><span class="linenos">5706</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-5707"><a href="#or_-5707"><span class="linenos">5707</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-5708"><a href="#or_-5708"><span class="linenos">5708</span></a>
-</span><span id="or_-5709"><a href="#or_-5709"><span class="linenos">5709</span></a><span class="sd"> Example:</span>
-</span><span id="or_-5710"><a href="#or_-5710"><span class="linenos">5710</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_-5711"><a href="#or_-5711"><span class="linenos">5711</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-5712"><a href="#or_-5712"><span class="linenos">5712</span></a>
-</span><span id="or_-5713"><a href="#or_-5713"><span class="linenos">5713</span></a><span class="sd"> Args:</span>
-</span><span id="or_-5714"><a href="#or_-5714"><span class="linenos">5714</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="or_-5715"><a href="#or_-5715"><span class="linenos">5715</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-5716"><a href="#or_-5716"><span class="linenos">5716</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="or_-5717"><a href="#or_-5717"><span class="linenos">5717</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
-</span><span id="or_-5718"><a href="#or_-5718"><span class="linenos">5718</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-5719"><a href="#or_-5719"><span class="linenos">5719</span></a>
-</span><span id="or_-5720"><a href="#or_-5720"><span class="linenos">5720</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-5721"><a href="#or_-5721"><span class="linenos">5721</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-5722"><a href="#or_-5722"><span class="linenos">5722</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-5723"><a href="#or_-5723"><span class="linenos">5723</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_-5715"><a href="#or_-5715"><span class="linenos">5715</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="or_-5716"><a href="#or_-5716"><span class="linenos">5716</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_-5717"><a href="#or_-5717"><span class="linenos">5717</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="or_-5718"><a href="#or_-5718"><span class="linenos">5718</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-5719"><a href="#or_-5719"><span class="linenos">5719</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-5720"><a href="#or_-5720"><span class="linenos">5720</span></a>
+</span><span id="or_-5721"><a href="#or_-5721"><span class="linenos">5721</span></a><span class="sd"> Example:</span>
+</span><span id="or_-5722"><a href="#or_-5722"><span class="linenos">5722</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_-5723"><a href="#or_-5723"><span class="linenos">5723</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-5724"><a href="#or_-5724"><span class="linenos">5724</span></a>
+</span><span id="or_-5725"><a href="#or_-5725"><span class="linenos">5725</span></a><span class="sd"> Args:</span>
+</span><span id="or_-5726"><a href="#or_-5726"><span class="linenos">5726</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="or_-5727"><a href="#or_-5727"><span class="linenos">5727</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-5728"><a href="#or_-5728"><span class="linenos">5728</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="or_-5729"><a href="#or_-5729"><span class="linenos">5729</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
+</span><span id="or_-5730"><a href="#or_-5730"><span class="linenos">5730</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-5731"><a href="#or_-5731"><span class="linenos">5731</span></a>
+</span><span id="or_-5732"><a href="#or_-5732"><span class="linenos">5732</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-5733"><a href="#or_-5733"><span class="linenos">5733</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="or_-5734"><a href="#or_-5734"><span class="linenos">5734</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-5735"><a href="#or_-5735"><span class="linenos">5735</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>
@@ -76491,31 +76860,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_-5726"><a href="#not_-5726"><span class="linenos">5726</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_-5727"><a href="#not_-5727"><span class="linenos">5727</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-5728"><a href="#not_-5728"><span class="linenos">5728</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-5729"><a href="#not_-5729"><span class="linenos">5729</span></a>
-</span><span id="not_-5730"><a href="#not_-5730"><span class="linenos">5730</span></a><span class="sd"> Example:</span>
-</span><span id="not_-5731"><a href="#not_-5731"><span class="linenos">5731</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-5732"><a href="#not_-5732"><span class="linenos">5732</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-5733"><a href="#not_-5733"><span class="linenos">5733</span></a>
-</span><span id="not_-5734"><a href="#not_-5734"><span class="linenos">5734</span></a><span class="sd"> Args:</span>
-</span><span id="not_-5735"><a href="#not_-5735"><span class="linenos">5735</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="not_-5736"><a href="#not_-5736"><span class="linenos">5736</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-5737"><a href="#not_-5737"><span class="linenos">5737</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="not_-5738"><a href="#not_-5738"><span class="linenos">5738</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="not_-5739"><a href="#not_-5739"><span class="linenos">5739</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-5740"><a href="#not_-5740"><span class="linenos">5740</span></a>
-</span><span id="not_-5741"><a href="#not_-5741"><span class="linenos">5741</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-5742"><a href="#not_-5742"><span class="linenos">5742</span></a><span class="sd"> The new condition.</span>
-</span><span id="not_-5743"><a href="#not_-5743"><span class="linenos">5743</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-5744"><a href="#not_-5744"><span class="linenos">5744</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-5745"><a href="#not_-5745"><span class="linenos">5745</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-5746"><a href="#not_-5746"><span class="linenos">5746</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-5747"><a href="#not_-5747"><span class="linenos">5747</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="not_-5748"><a href="#not_-5748"><span class="linenos">5748</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-5749"><a href="#not_-5749"><span class="linenos">5749</span></a> <span class="p">)</span>
-</span><span id="not_-5750"><a href="#not_-5750"><span class="linenos">5750</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_-5738"><a href="#not_-5738"><span class="linenos">5738</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_-5739"><a href="#not_-5739"><span class="linenos">5739</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-5740"><a href="#not_-5740"><span class="linenos">5740</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-5741"><a href="#not_-5741"><span class="linenos">5741</span></a>
+</span><span id="not_-5742"><a href="#not_-5742"><span class="linenos">5742</span></a><span class="sd"> Example:</span>
+</span><span id="not_-5743"><a href="#not_-5743"><span class="linenos">5743</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-5744"><a href="#not_-5744"><span class="linenos">5744</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-5745"><a href="#not_-5745"><span class="linenos">5745</span></a>
+</span><span id="not_-5746"><a href="#not_-5746"><span class="linenos">5746</span></a><span class="sd"> Args:</span>
+</span><span id="not_-5747"><a href="#not_-5747"><span class="linenos">5747</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="not_-5748"><a href="#not_-5748"><span class="linenos">5748</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-5749"><a href="#not_-5749"><span class="linenos">5749</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="not_-5750"><a href="#not_-5750"><span class="linenos">5750</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="not_-5751"><a href="#not_-5751"><span class="linenos">5751</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-5752"><a href="#not_-5752"><span class="linenos">5752</span></a>
+</span><span id="not_-5753"><a href="#not_-5753"><span class="linenos">5753</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-5754"><a href="#not_-5754"><span class="linenos">5754</span></a><span class="sd"> The new condition.</span>
+</span><span id="not_-5755"><a href="#not_-5755"><span class="linenos">5755</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-5756"><a href="#not_-5756"><span class="linenos">5756</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-5757"><a href="#not_-5757"><span class="linenos">5757</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-5758"><a href="#not_-5758"><span class="linenos">5758</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-5759"><a href="#not_-5759"><span class="linenos">5759</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="not_-5760"><a href="#not_-5760"><span class="linenos">5760</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-5761"><a href="#not_-5761"><span class="linenos">5761</span></a> <span class="p">)</span>
+</span><span id="not_-5762"><a href="#not_-5762"><span class="linenos">5762</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>
@@ -76561,23 +76930,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-5753"><a href="#paren-5753"><span class="linenos">5753</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-5754"><a href="#paren-5754"><span class="linenos">5754</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="paren-5755"><a href="#paren-5755"><span class="linenos">5755</span></a><span class="sd"> Wrap an expression in parentheses.</span>
-</span><span id="paren-5756"><a href="#paren-5756"><span class="linenos">5756</span></a>
-</span><span id="paren-5757"><a href="#paren-5757"><span class="linenos">5757</span></a><span class="sd"> Example:</span>
-</span><span id="paren-5758"><a href="#paren-5758"><span class="linenos">5758</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="paren-5759"><a href="#paren-5759"><span class="linenos">5759</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="paren-5760"><a href="#paren-5760"><span class="linenos">5760</span></a>
-</span><span id="paren-5761"><a href="#paren-5761"><span class="linenos">5761</span></a><span class="sd"> Args:</span>
-</span><span id="paren-5762"><a href="#paren-5762"><span class="linenos">5762</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="paren-5763"><a href="#paren-5763"><span class="linenos">5763</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="paren-5764"><a href="#paren-5764"><span class="linenos">5764</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="paren-5765"><a href="#paren-5765"><span class="linenos">5765</span></a>
-</span><span id="paren-5766"><a href="#paren-5766"><span class="linenos">5766</span></a><span class="sd"> Returns:</span>
-</span><span id="paren-5767"><a href="#paren-5767"><span class="linenos">5767</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="paren-5768"><a href="#paren-5768"><span class="linenos">5768</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="paren-5769"><a href="#paren-5769"><span class="linenos">5769</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-5765"><a href="#paren-5765"><span class="linenos">5765</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-5766"><a href="#paren-5766"><span class="linenos">5766</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="paren-5767"><a href="#paren-5767"><span class="linenos">5767</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="paren-5768"><a href="#paren-5768"><span class="linenos">5768</span></a>
+</span><span id="paren-5769"><a href="#paren-5769"><span class="linenos">5769</span></a><span class="sd"> Example:</span>
+</span><span id="paren-5770"><a href="#paren-5770"><span class="linenos">5770</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="paren-5771"><a href="#paren-5771"><span class="linenos">5771</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="paren-5772"><a href="#paren-5772"><span class="linenos">5772</span></a>
+</span><span id="paren-5773"><a href="#paren-5773"><span class="linenos">5773</span></a><span class="sd"> Args:</span>
+</span><span id="paren-5774"><a href="#paren-5774"><span class="linenos">5774</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="paren-5775"><a href="#paren-5775"><span class="linenos">5775</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="paren-5776"><a href="#paren-5776"><span class="linenos">5776</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="paren-5777"><a href="#paren-5777"><span class="linenos">5777</span></a>
+</span><span id="paren-5778"><a href="#paren-5778"><span class="linenos">5778</span></a><span class="sd"> Returns:</span>
+</span><span id="paren-5779"><a href="#paren-5779"><span class="linenos">5779</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="paren-5780"><a href="#paren-5780"><span class="linenos">5780</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="paren-5781"><a href="#paren-5781"><span class="linenos">5781</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>
@@ -76633,31 +77002,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-5787"><a href="#to_identifier-5787"><span class="linenos">5787</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-5788"><a href="#to_identifier-5788"><span class="linenos">5788</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-5789"><a href="#to_identifier-5789"><span class="linenos">5789</span></a>
-</span><span id="to_identifier-5790"><a href="#to_identifier-5790"><span class="linenos">5790</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-5791"><a href="#to_identifier-5791"><span class="linenos">5791</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-5792"><a href="#to_identifier-5792"><span class="linenos">5792</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="to_identifier-5793"><a href="#to_identifier-5793"><span class="linenos">5793</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
-</span><span id="to_identifier-5794"><a href="#to_identifier-5794"><span class="linenos">5794</span></a>
-</span><span id="to_identifier-5795"><a href="#to_identifier-5795"><span class="linenos">5795</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-5796"><a href="#to_identifier-5796"><span class="linenos">5796</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-5797"><a href="#to_identifier-5797"><span class="linenos">5797</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-5798"><a href="#to_identifier-5798"><span class="linenos">5798</span></a>
-</span><span id="to_identifier-5799"><a href="#to_identifier-5799"><span class="linenos">5799</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-5800"><a href="#to_identifier-5800"><span class="linenos">5800</span></a> <span class="k">return</span> <span class="kc">None</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-5799"><a href="#to_identifier-5799"><span class="linenos">5799</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-5800"><a href="#to_identifier-5800"><span class="linenos">5800</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
</span><span id="to_identifier-5801"><a href="#to_identifier-5801"><span class="linenos">5801</span></a>
-</span><span id="to_identifier-5802"><a href="#to_identifier-5802"><span class="linenos">5802</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-5803"><a href="#to_identifier-5803"><span class="linenos">5803</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-5804"><a href="#to_identifier-5804"><span class="linenos">5804</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-5805"><a href="#to_identifier-5805"><span class="linenos">5805</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-5806"><a href="#to_identifier-5806"><span class="linenos">5806</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-5807"><a href="#to_identifier-5807"><span class="linenos">5807</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-5808"><a href="#to_identifier-5808"><span class="linenos">5808</span></a> <span class="p">)</span>
-</span><span id="to_identifier-5809"><a href="#to_identifier-5809"><span class="linenos">5809</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-5810"><a href="#to_identifier-5810"><span class="linenos">5810</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-5811"><a href="#to_identifier-5811"><span class="linenos">5811</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="to_identifier-5802"><a href="#to_identifier-5802"><span class="linenos">5802</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-5803"><a href="#to_identifier-5803"><span class="linenos">5803</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-5804"><a href="#to_identifier-5804"><span class="linenos">5804</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="to_identifier-5805"><a href="#to_identifier-5805"><span class="linenos">5805</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
+</span><span id="to_identifier-5806"><a href="#to_identifier-5806"><span class="linenos">5806</span></a>
+</span><span id="to_identifier-5807"><a href="#to_identifier-5807"><span class="linenos">5807</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-5808"><a href="#to_identifier-5808"><span class="linenos">5808</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-5809"><a href="#to_identifier-5809"><span class="linenos">5809</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-5810"><a href="#to_identifier-5810"><span class="linenos">5810</span></a>
+</span><span id="to_identifier-5811"><a href="#to_identifier-5811"><span class="linenos">5811</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-5812"><a href="#to_identifier-5812"><span class="linenos">5812</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-5813"><a href="#to_identifier-5813"><span class="linenos">5813</span></a>
+</span><span id="to_identifier-5814"><a href="#to_identifier-5814"><span class="linenos">5814</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-5815"><a href="#to_identifier-5815"><span class="linenos">5815</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-5816"><a href="#to_identifier-5816"><span class="linenos">5816</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-5817"><a href="#to_identifier-5817"><span class="linenos">5817</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-5818"><a href="#to_identifier-5818"><span class="linenos">5818</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-5819"><a href="#to_identifier-5819"><span class="linenos">5819</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-5820"><a href="#to_identifier-5820"><span class="linenos">5820</span></a> <span class="p">)</span>
+</span><span id="to_identifier-5821"><a href="#to_identifier-5821"><span class="linenos">5821</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-5822"><a href="#to_identifier-5822"><span class="linenos">5822</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-5823"><a href="#to_identifier-5823"><span class="linenos">5823</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -76703,23 +77072,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-5817"><a href="#to_interval-5817"><span class="linenos">5817</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-5818"><a href="#to_interval-5818"><span class="linenos">5818</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-5819"><a href="#to_interval-5819"><span class="linenos">5819</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-5820"><a href="#to_interval-5820"><span class="linenos">5820</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-5821"><a href="#to_interval-5821"><span class="linenos">5821</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-5822"><a href="#to_interval-5822"><span class="linenos">5822</span></a>
-</span><span id="to_interval-5823"><a href="#to_interval-5823"><span class="linenos">5823</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-5824"><a href="#to_interval-5824"><span class="linenos">5824</span></a>
-</span><span id="to_interval-5825"><a href="#to_interval-5825"><span class="linenos">5825</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-5826"><a href="#to_interval-5826"><span class="linenos">5826</span></a>
-</span><span id="to_interval-5827"><a href="#to_interval-5827"><span class="linenos">5827</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-5828"><a href="#to_interval-5828"><span class="linenos">5828</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-5829"><a href="#to_interval-5829"><span class="linenos">5829</span></a>
-</span><span id="to_interval-5830"><a href="#to_interval-5830"><span class="linenos">5830</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-5831"><a href="#to_interval-5831"><span class="linenos">5831</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-5832"><a href="#to_interval-5832"><span class="linenos">5832</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-5833"><a href="#to_interval-5833"><span class="linenos">5833</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-5829"><a href="#to_interval-5829"><span class="linenos">5829</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-5830"><a href="#to_interval-5830"><span class="linenos">5830</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-5831"><a href="#to_interval-5831"><span class="linenos">5831</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-5832"><a href="#to_interval-5832"><span class="linenos">5832</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-5833"><a href="#to_interval-5833"><span class="linenos">5833</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-5834"><a href="#to_interval-5834"><span class="linenos">5834</span></a>
+</span><span id="to_interval-5835"><a href="#to_interval-5835"><span class="linenos">5835</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-5836"><a href="#to_interval-5836"><span class="linenos">5836</span></a>
+</span><span id="to_interval-5837"><a href="#to_interval-5837"><span class="linenos">5837</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-5838"><a href="#to_interval-5838"><span class="linenos">5838</span></a>
+</span><span id="to_interval-5839"><a href="#to_interval-5839"><span class="linenos">5839</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-5840"><a href="#to_interval-5840"><span class="linenos">5840</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-5841"><a href="#to_interval-5841"><span class="linenos">5841</span></a>
+</span><span id="to_interval-5842"><a href="#to_interval-5842"><span class="linenos">5842</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-5843"><a href="#to_interval-5843"><span class="linenos">5843</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-5844"><a href="#to_interval-5844"><span class="linenos">5844</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-5845"><a href="#to_interval-5845"><span class="linenos">5845</span></a> <span class="p">)</span>
</span></pre></div>
@@ -76739,32 +77108,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-5846"><a href="#to_table-5846"><span class="linenos">5846</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="to_table-5847"><a href="#to_table-5847"><span class="linenos">5847</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-5848"><a href="#to_table-5848"><span class="linenos">5848</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-5849"><a href="#to_table-5849"><span class="linenos">5849</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-5850"><a href="#to_table-5850"><span class="linenos">5850</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-5851"><a href="#to_table-5851"><span class="linenos">5851</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-5852"><a href="#to_table-5852"><span class="linenos">5852</span></a>
-</span><span id="to_table-5853"><a href="#to_table-5853"><span class="linenos">5853</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-5854"><a href="#to_table-5854"><span class="linenos">5854</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-5855"><a href="#to_table-5855"><span class="linenos">5855</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="to_table-5856"><a href="#to_table-5856"><span class="linenos">5856</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
-</span><span id="to_table-5857"><a href="#to_table-5857"><span class="linenos">5857</span></a>
-</span><span id="to_table-5858"><a href="#to_table-5858"><span class="linenos">5858</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-5859"><a href="#to_table-5859"><span class="linenos">5859</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-5860"><a href="#to_table-5860"><span class="linenos">5860</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-5861"><a href="#to_table-5861"><span class="linenos">5861</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-5862"><a href="#to_table-5862"><span class="linenos">5862</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_table-5863"><a href="#to_table-5863"><span class="linenos">5863</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-5864"><a href="#to_table-5864"><span class="linenos">5864</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-5865"><a href="#to_table-5865"><span class="linenos">5865</span></a>
-</span><span id="to_table-5866"><a href="#to_table-5866"><span class="linenos">5866</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-5867"><a href="#to_table-5867"><span class="linenos">5867</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="to_table-5868"><a href="#to_table-5868"><span class="linenos">5868</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-5869"><a href="#to_table-5869"><span class="linenos">5869</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-5870"><a href="#to_table-5870"><span class="linenos">5870</span></a>
-</span><span id="to_table-5871"><a href="#to_table-5871"><span class="linenos">5871</span></a> <span class="k">return</span> <span class="n">table</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-5858"><a href="#to_table-5858"><span class="linenos">5858</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="to_table-5859"><a href="#to_table-5859"><span class="linenos">5859</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-5860"><a href="#to_table-5860"><span class="linenos">5860</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-5861"><a href="#to_table-5861"><span class="linenos">5861</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-5862"><a href="#to_table-5862"><span class="linenos">5862</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-5863"><a href="#to_table-5863"><span class="linenos">5863</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-5864"><a href="#to_table-5864"><span class="linenos">5864</span></a>
+</span><span id="to_table-5865"><a href="#to_table-5865"><span class="linenos">5865</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-5866"><a href="#to_table-5866"><span class="linenos">5866</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-5867"><a href="#to_table-5867"><span class="linenos">5867</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="to_table-5868"><a href="#to_table-5868"><span class="linenos">5868</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="to_table-5869"><a href="#to_table-5869"><span class="linenos">5869</span></a>
+</span><span id="to_table-5870"><a href="#to_table-5870"><span class="linenos">5870</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-5871"><a href="#to_table-5871"><span class="linenos">5871</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-5872"><a href="#to_table-5872"><span class="linenos">5872</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-5873"><a href="#to_table-5873"><span class="linenos">5873</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-5874"><a href="#to_table-5874"><span class="linenos">5874</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_table-5875"><a href="#to_table-5875"><span class="linenos">5875</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-5876"><a href="#to_table-5876"><span class="linenos">5876</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-5877"><a href="#to_table-5877"><span class="linenos">5877</span></a>
+</span><span id="to_table-5878"><a href="#to_table-5878"><span class="linenos">5878</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-5879"><a href="#to_table-5879"><span class="linenos">5879</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="to_table-5880"><a href="#to_table-5880"><span class="linenos">5880</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-5881"><a href="#to_table-5881"><span class="linenos">5881</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-5882"><a href="#to_table-5882"><span class="linenos">5882</span></a>
+</span><span id="to_table-5883"><a href="#to_table-5883"><span class="linenos">5883</span></a> <span class="k">return</span> <span class="n">table</span>
</span></pre></div>
@@ -76799,22 +77168,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-5874"><a href="#to_column-5874"><span class="linenos">5874</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-5875"><a href="#to_column-5875"><span class="linenos">5875</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-5876"><a href="#to_column-5876"><span class="linenos">5876</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="to_column-5877"><a href="#to_column-5877"><span class="linenos">5877</span></a>
-</span><span id="to_column-5878"><a href="#to_column-5878"><span class="linenos">5878</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-5879"><a href="#to_column-5879"><span class="linenos">5879</span></a>
-</span><span id="to_column-5880"><a href="#to_column-5880"><span class="linenos">5880</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-5881"><a href="#to_column-5881"><span class="linenos">5881</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="to_column-5882"><a href="#to_column-5882"><span class="linenos">5882</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-5883"><a href="#to_column-5883"><span class="linenos">5883</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="to_column-5884"><a href="#to_column-5884"><span class="linenos">5884</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-5885"><a href="#to_column-5885"><span class="linenos">5885</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-5886"><a href="#to_column-5886"><span class="linenos">5886</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_column-5887"><a href="#to_column-5887"><span class="linenos">5887</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-5888"><a href="#to_column-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;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-5889"><a href="#to_column-5889"><span class="linenos">5889</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-5886"><a href="#to_column-5886"><span class="linenos">5886</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-5887"><a href="#to_column-5887"><span class="linenos">5887</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-5888"><a href="#to_column-5888"><span class="linenos">5888</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="to_column-5889"><a href="#to_column-5889"><span class="linenos">5889</span></a>
+</span><span id="to_column-5890"><a href="#to_column-5890"><span class="linenos">5890</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-5891"><a href="#to_column-5891"><span class="linenos">5891</span></a>
+</span><span id="to_column-5892"><a href="#to_column-5892"><span class="linenos">5892</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-5893"><a href="#to_column-5893"><span class="linenos">5893</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="to_column-5894"><a href="#to_column-5894"><span class="linenos">5894</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-5895"><a href="#to_column-5895"><span class="linenos">5895</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="to_column-5896"><a href="#to_column-5896"><span class="linenos">5896</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-5897"><a href="#to_column-5897"><span class="linenos">5897</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-5898"><a href="#to_column-5898"><span class="linenos">5898</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_column-5899"><a href="#to_column-5899"><span class="linenos">5899</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-5900"><a href="#to_column-5900"><span class="linenos">5900</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-5901"><a href="#to_column-5901"><span class="linenos">5901</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>
@@ -76848,61 +77217,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_-5892"><a href="#alias_-5892"><span class="linenos">5892</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-5893"><a href="#alias_-5893"><span class="linenos">5893</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="alias_-5894"><a href="#alias_-5894"><span class="linenos">5894</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_-5895"><a href="#alias_-5895"><span class="linenos">5895</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_-5896"><a href="#alias_-5896"><span class="linenos">5896</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_-5897"><a href="#alias_-5897"><span class="linenos">5897</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_-5898"><a href="#alias_-5898"><span class="linenos">5898</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_-5899"><a href="#alias_-5899"><span class="linenos">5899</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-5900"><a href="#alias_-5900"><span class="linenos">5900</span></a><span class="p">):</span>
-</span><span id="alias_-5901"><a href="#alias_-5901"><span class="linenos">5901</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-5902"><a href="#alias_-5902"><span class="linenos">5902</span></a>
-</span><span id="alias_-5903"><a href="#alias_-5903"><span class="linenos">5903</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-5904"><a href="#alias_-5904"><span class="linenos">5904</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-5905"><a href="#alias_-5905"><span class="linenos">5905</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-5906"><a href="#alias_-5906"><span class="linenos">5906</span></a>
-</span><span id="alias_-5907"><a href="#alias_-5907"><span class="linenos">5907</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_-5908"><a href="#alias_-5908"><span class="linenos">5908</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-5909"><a href="#alias_-5909"><span class="linenos">5909</span></a>
-</span><span id="alias_-5910"><a href="#alias_-5910"><span class="linenos">5910</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-5911"><a href="#alias_-5911"><span class="linenos">5911</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-5912"><a href="#alias_-5912"><span class="linenos">5912</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-5913"><a href="#alias_-5913"><span class="linenos">5913</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-5914"><a href="#alias_-5914"><span class="linenos">5914</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-5915"><a href="#alias_-5915"><span class="linenos">5915</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_-5916"><a href="#alias_-5916"><span class="linenos">5916</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="alias_-5917"><a href="#alias_-5917"><span class="linenos">5917</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-5918"><a href="#alias_-5918"><span class="linenos">5918</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
-</span><span id="alias_-5919"><a href="#alias_-5919"><span class="linenos">5919</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-5920"><a href="#alias_-5920"><span class="linenos">5920</span></a>
-</span><span id="alias_-5921"><a href="#alias_-5921"><span class="linenos">5921</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-5922"><a href="#alias_-5922"><span class="linenos">5922</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-5923"><a href="#alias_-5923"><span class="linenos">5923</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-5924"><a href="#alias_-5924"><span class="linenos">5924</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_-5925"><a href="#alias_-5925"><span class="linenos">5925</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_-5926"><a href="#alias_-5926"><span class="linenos">5926</span></a>
-</span><span id="alias_-5927"><a href="#alias_-5927"><span class="linenos">5927</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-5928"><a href="#alias_-5928"><span class="linenos">5928</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_-5929"><a href="#alias_-5929"><span class="linenos">5929</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_-5930"><a href="#alias_-5930"><span class="linenos">5930</span></a>
-</span><span id="alias_-5931"><a href="#alias_-5931"><span class="linenos">5931</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_-5932"><a href="#alias_-5932"><span class="linenos">5932</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_-5933"><a href="#alias_-5933"><span class="linenos">5933</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_-5934"><a href="#alias_-5934"><span class="linenos">5934</span></a>
-</span><span id="alias_-5935"><a href="#alias_-5935"><span class="linenos">5935</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-5936"><a href="#alias_-5936"><span class="linenos">5936</span></a>
-</span><span id="alias_-5937"><a href="#alias_-5937"><span class="linenos">5937</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_-5938"><a href="#alias_-5938"><span class="linenos">5938</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_-5939"><a href="#alias_-5939"><span class="linenos">5939</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-5940"><a href="#alias_-5940"><span class="linenos">5940</span></a> <span class="c1">#</span>
-</span><span id="alias_-5941"><a href="#alias_-5941"><span class="linenos">5941</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-5904"><a href="#alias_-5904"><span class="linenos">5904</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-5905"><a href="#alias_-5905"><span class="linenos">5905</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="alias_-5906"><a href="#alias_-5906"><span class="linenos">5906</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_-5907"><a href="#alias_-5907"><span class="linenos">5907</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_-5908"><a href="#alias_-5908"><span class="linenos">5908</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_-5909"><a href="#alias_-5909"><span class="linenos">5909</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_-5910"><a href="#alias_-5910"><span class="linenos">5910</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_-5911"><a href="#alias_-5911"><span class="linenos">5911</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-5912"><a href="#alias_-5912"><span class="linenos">5912</span></a><span class="p">):</span>
+</span><span id="alias_-5913"><a href="#alias_-5913"><span class="linenos">5913</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-5914"><a href="#alias_-5914"><span class="linenos">5914</span></a>
+</span><span id="alias_-5915"><a href="#alias_-5915"><span class="linenos">5915</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-5916"><a href="#alias_-5916"><span class="linenos">5916</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-5917"><a href="#alias_-5917"><span class="linenos">5917</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-5918"><a href="#alias_-5918"><span class="linenos">5918</span></a>
+</span><span id="alias_-5919"><a href="#alias_-5919"><span class="linenos">5919</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_-5920"><a href="#alias_-5920"><span class="linenos">5920</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-5921"><a href="#alias_-5921"><span class="linenos">5921</span></a>
+</span><span id="alias_-5922"><a href="#alias_-5922"><span class="linenos">5922</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-5923"><a href="#alias_-5923"><span class="linenos">5923</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-5924"><a href="#alias_-5924"><span class="linenos">5924</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-5925"><a href="#alias_-5925"><span class="linenos">5925</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-5926"><a href="#alias_-5926"><span class="linenos">5926</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-5927"><a href="#alias_-5927"><span class="linenos">5927</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_-5928"><a href="#alias_-5928"><span class="linenos">5928</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="alias_-5929"><a href="#alias_-5929"><span class="linenos">5929</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-5930"><a href="#alias_-5930"><span class="linenos">5930</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
+</span><span id="alias_-5931"><a href="#alias_-5931"><span class="linenos">5931</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="alias_-5932"><a href="#alias_-5932"><span class="linenos">5932</span></a>
+</span><span id="alias_-5933"><a href="#alias_-5933"><span class="linenos">5933</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-5934"><a href="#alias_-5934"><span class="linenos">5934</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-5935"><a href="#alias_-5935"><span class="linenos">5935</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-5936"><a href="#alias_-5936"><span class="linenos">5936</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_-5937"><a href="#alias_-5937"><span class="linenos">5937</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_-5938"><a href="#alias_-5938"><span class="linenos">5938</span></a>
+</span><span id="alias_-5939"><a href="#alias_-5939"><span class="linenos">5939</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-5940"><a href="#alias_-5940"><span class="linenos">5940</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_-5941"><a href="#alias_-5941"><span class="linenos">5941</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_-5942"><a href="#alias_-5942"><span class="linenos">5942</span></a>
-</span><span id="alias_-5943"><a href="#alias_-5943"><span class="linenos">5943</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_-5944"><a href="#alias_-5944"><span class="linenos">5944</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_-5945"><a href="#alias_-5945"><span class="linenos">5945</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-5946"><a href="#alias_-5946"><span class="linenos">5946</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_-5943"><a href="#alias_-5943"><span class="linenos">5943</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_-5944"><a href="#alias_-5944"><span class="linenos">5944</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_-5945"><a href="#alias_-5945"><span class="linenos">5945</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_-5946"><a href="#alias_-5946"><span class="linenos">5946</span></a>
+</span><span id="alias_-5947"><a href="#alias_-5947"><span class="linenos">5947</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-5948"><a href="#alias_-5948"><span class="linenos">5948</span></a>
+</span><span id="alias_-5949"><a href="#alias_-5949"><span class="linenos">5949</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_-5950"><a href="#alias_-5950"><span class="linenos">5950</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_-5951"><a href="#alias_-5951"><span class="linenos">5951</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-5952"><a href="#alias_-5952"><span class="linenos">5952</span></a> <span class="c1">#</span>
+</span><span id="alias_-5953"><a href="#alias_-5953"><span class="linenos">5953</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-5954"><a href="#alias_-5954"><span class="linenos">5954</span></a>
+</span><span id="alias_-5955"><a href="#alias_-5955"><span class="linenos">5955</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_-5956"><a href="#alias_-5956"><span class="linenos">5956</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_-5957"><a href="#alias_-5957"><span class="linenos">5957</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-5958"><a href="#alias_-5958"><span class="linenos">5958</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>
@@ -76958,32 +77327,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-5949"><a href="#subquery-5949"><span class="linenos">5949</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="subquery-5950"><a href="#subquery-5950"><span class="linenos">5950</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="subquery-5951"><a href="#subquery-5951"><span class="linenos">5951</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-5952"><a href="#subquery-5952"><span class="linenos">5952</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-5953"><a href="#subquery-5953"><span class="linenos">5953</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="subquery-5954"><a href="#subquery-5954"><span class="linenos">5954</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="subquery-5955"><a href="#subquery-5955"><span class="linenos">5955</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-5956"><a href="#subquery-5956"><span class="linenos">5956</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="subquery-5957"><a href="#subquery-5957"><span class="linenos">5957</span></a>
-</span><span id="subquery-5958"><a href="#subquery-5958"><span class="linenos">5958</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-5959"><a href="#subquery-5959"><span class="linenos">5959</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-5960"><a href="#subquery-5960"><span class="linenos">5960</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-5961"><a href="#subquery-5961"><span class="linenos">5961</span></a>
-</span><span id="subquery-5962"><a href="#subquery-5962"><span class="linenos">5962</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-5963"><a href="#subquery-5963"><span class="linenos">5963</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="subquery-5964"><a href="#subquery-5964"><span class="linenos">5964</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-5965"><a href="#subquery-5965"><span class="linenos">5965</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="subquery-5966"><a href="#subquery-5966"><span class="linenos">5966</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="subquery-5967"><a href="#subquery-5967"><span class="linenos">5967</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-5968"><a href="#subquery-5968"><span class="linenos">5968</span></a>
-</span><span id="subquery-5969"><a href="#subquery-5969"><span class="linenos">5969</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-5970"><a href="#subquery-5970"><span class="linenos">5970</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="subquery-5971"><a href="#subquery-5971"><span class="linenos">5971</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-5972"><a href="#subquery-5972"><span class="linenos">5972</span></a>
-</span><span id="subquery-5973"><a href="#subquery-5973"><span class="linenos">5973</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-5974"><a href="#subquery-5974"><span class="linenos">5974</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-5961"><a href="#subquery-5961"><span class="linenos">5961</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="subquery-5962"><a href="#subquery-5962"><span class="linenos">5962</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="subquery-5963"><a href="#subquery-5963"><span class="linenos">5963</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-5964"><a href="#subquery-5964"><span class="linenos">5964</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-5965"><a href="#subquery-5965"><span class="linenos">5965</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="subquery-5966"><a href="#subquery-5966"><span class="linenos">5966</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="subquery-5967"><a href="#subquery-5967"><span class="linenos">5967</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-5968"><a href="#subquery-5968"><span class="linenos">5968</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="subquery-5969"><a href="#subquery-5969"><span class="linenos">5969</span></a>
+</span><span id="subquery-5970"><a href="#subquery-5970"><span class="linenos">5970</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-5971"><a href="#subquery-5971"><span class="linenos">5971</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-5972"><a href="#subquery-5972"><span class="linenos">5972</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-5973"><a href="#subquery-5973"><span class="linenos">5973</span></a>
+</span><span id="subquery-5974"><a href="#subquery-5974"><span class="linenos">5974</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-5975"><a href="#subquery-5975"><span class="linenos">5975</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="subquery-5976"><a href="#subquery-5976"><span class="linenos">5976</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-5977"><a href="#subquery-5977"><span class="linenos">5977</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="subquery-5978"><a href="#subquery-5978"><span class="linenos">5978</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="subquery-5979"><a href="#subquery-5979"><span class="linenos">5979</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-5980"><a href="#subquery-5980"><span class="linenos">5980</span></a>
+</span><span id="subquery-5981"><a href="#subquery-5981"><span class="linenos">5981</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-5982"><a href="#subquery-5982"><span class="linenos">5982</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="subquery-5983"><a href="#subquery-5983"><span class="linenos">5983</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-5984"><a href="#subquery-5984"><span class="linenos">5984</span></a>
+</span><span id="subquery-5985"><a href="#subquery-5985"><span class="linenos">5985</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-5986"><a href="#subquery-5986"><span class="linenos">5986</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>
@@ -77029,32 +77398,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-5977"><a href="#column-5977"><span class="linenos">5977</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-5978"><a href="#column-5978"><span class="linenos">5978</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-5979"><a href="#column-5979"><span class="linenos">5979</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-5980"><a href="#column-5980"><span class="linenos">5980</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-5981"><a href="#column-5981"><span class="linenos">5981</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-5982"><a href="#column-5982"><span class="linenos">5982</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-5983"><a href="#column-5983"><span class="linenos">5983</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="column-5984"><a href="#column-5984"><span class="linenos">5984</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-5985"><a href="#column-5985"><span class="linenos">5985</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-5986"><a href="#column-5986"><span class="linenos">5986</span></a>
-</span><span id="column-5987"><a href="#column-5987"><span class="linenos">5987</span></a><span class="sd"> Args:</span>
-</span><span id="column-5988"><a href="#column-5988"><span class="linenos">5988</span></a><span class="sd"> col: Column name.</span>
-</span><span id="column-5989"><a href="#column-5989"><span class="linenos">5989</span></a><span class="sd"> table: Table name.</span>
-</span><span id="column-5990"><a href="#column-5990"><span class="linenos">5990</span></a><span class="sd"> db: Database name.</span>
-</span><span id="column-5991"><a href="#column-5991"><span class="linenos">5991</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="column-5992"><a href="#column-5992"><span class="linenos">5992</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="column-5993"><a href="#column-5993"><span class="linenos">5993</span></a>
-</span><span id="column-5994"><a href="#column-5994"><span class="linenos">5994</span></a><span class="sd"> Returns:</span>
-</span><span id="column-5995"><a href="#column-5995"><span class="linenos">5995</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="column-5996"><a href="#column-5996"><span class="linenos">5996</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-5997"><a href="#column-5997"><span class="linenos">5997</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-5998"><a href="#column-5998"><span class="linenos">5998</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-5999"><a href="#column-5999"><span class="linenos">5999</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-6000"><a href="#column-6000"><span class="linenos">6000</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-6001"><a href="#column-6001"><span class="linenos">6001</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-6002"><a href="#column-6002"><span class="linenos">6002</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-5989"><a href="#column-5989"><span class="linenos">5989</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-5990"><a href="#column-5990"><span class="linenos">5990</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-5991"><a href="#column-5991"><span class="linenos">5991</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-5992"><a href="#column-5992"><span class="linenos">5992</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-5993"><a href="#column-5993"><span class="linenos">5993</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-5994"><a href="#column-5994"><span class="linenos">5994</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-5995"><a href="#column-5995"><span class="linenos">5995</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="column-5996"><a href="#column-5996"><span class="linenos">5996</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-5997"><a href="#column-5997"><span class="linenos">5997</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-5998"><a href="#column-5998"><span class="linenos">5998</span></a>
+</span><span id="column-5999"><a href="#column-5999"><span class="linenos">5999</span></a><span class="sd"> Args:</span>
+</span><span id="column-6000"><a href="#column-6000"><span class="linenos">6000</span></a><span class="sd"> col: Column name.</span>
+</span><span id="column-6001"><a href="#column-6001"><span class="linenos">6001</span></a><span class="sd"> table: Table name.</span>
+</span><span id="column-6002"><a href="#column-6002"><span class="linenos">6002</span></a><span class="sd"> db: Database name.</span>
+</span><span id="column-6003"><a href="#column-6003"><span class="linenos">6003</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="column-6004"><a href="#column-6004"><span class="linenos">6004</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="column-6005"><a href="#column-6005"><span class="linenos">6005</span></a>
+</span><span id="column-6006"><a href="#column-6006"><span class="linenos">6006</span></a><span class="sd"> Returns:</span>
+</span><span id="column-6007"><a href="#column-6007"><span class="linenos">6007</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="column-6008"><a href="#column-6008"><span class="linenos">6008</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-6009"><a href="#column-6009"><span class="linenos">6009</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-6010"><a href="#column-6010"><span class="linenos">6010</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-6011"><a href="#column-6011"><span class="linenos">6011</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-6012"><a href="#column-6012"><span class="linenos">6012</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-6013"><a href="#column-6013"><span class="linenos">6013</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-6014"><a href="#column-6014"><span class="linenos">6014</span></a> <span class="p">)</span>
</span></pre></div>
@@ -77090,25 +77459,25 @@ 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-6005"><a href="#cast-6005"><span class="linenos">6005</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-6006"><a href="#cast-6006"><span class="linenos">6006</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-6007"><a href="#cast-6007"><span class="linenos">6007</span></a>
-</span><span id="cast-6008"><a href="#cast-6008"><span class="linenos">6008</span></a><span class="sd"> Example:</span>
-</span><span id="cast-6009"><a href="#cast-6009"><span class="linenos">6009</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-6010"><a href="#cast-6010"><span class="linenos">6010</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-6011"><a href="#cast-6011"><span class="linenos">6011</span></a>
-</span><span id="cast-6012"><a href="#cast-6012"><span class="linenos">6012</span></a><span class="sd"> Args:</span>
-</span><span id="cast-6013"><a href="#cast-6013"><span class="linenos">6013</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-6014"><a href="#cast-6014"><span class="linenos">6014</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-6015"><a href="#cast-6015"><span class="linenos">6015</span></a>
-</span><span id="cast-6016"><a href="#cast-6016"><span class="linenos">6016</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-6017"><a href="#cast-6017"><span class="linenos">6017</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="cast-6018"><a href="#cast-6018"><span class="linenos">6018</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-6019"><a href="#cast-6019"><span class="linenos">6019</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-6020"><a href="#cast-6020"><span class="linenos">6020</span></a> <span class="n">data_type</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="cast-6021"><a href="#cast-6021"><span class="linenos">6021</span></a> <span class="n">expression</span> <span class="o">=</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">data_type</span><span class="p">)</span>
-</span><span id="cast-6022"><a href="#cast-6022"><span class="linenos">6022</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
-</span><span id="cast-6023"><a href="#cast-6023"><span class="linenos">6023</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-6017"><a href="#cast-6017"><span class="linenos">6017</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-6018"><a href="#cast-6018"><span class="linenos">6018</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-6019"><a href="#cast-6019"><span class="linenos">6019</span></a>
+</span><span id="cast-6020"><a href="#cast-6020"><span class="linenos">6020</span></a><span class="sd"> Example:</span>
+</span><span id="cast-6021"><a href="#cast-6021"><span class="linenos">6021</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-6022"><a href="#cast-6022"><span class="linenos">6022</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-6023"><a href="#cast-6023"><span class="linenos">6023</span></a>
+</span><span id="cast-6024"><a href="#cast-6024"><span class="linenos">6024</span></a><span class="sd"> Args:</span>
+</span><span id="cast-6025"><a href="#cast-6025"><span class="linenos">6025</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-6026"><a href="#cast-6026"><span class="linenos">6026</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-6027"><a href="#cast-6027"><span class="linenos">6027</span></a>
+</span><span id="cast-6028"><a href="#cast-6028"><span class="linenos">6028</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-6029"><a href="#cast-6029"><span class="linenos">6029</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="cast-6030"><a href="#cast-6030"><span class="linenos">6030</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-6031"><a href="#cast-6031"><span class="linenos">6031</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-6032"><a href="#cast-6032"><span class="linenos">6032</span></a> <span class="n">data_type</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="cast-6033"><a href="#cast-6033"><span class="linenos">6033</span></a> <span class="n">expression</span> <span class="o">=</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">data_type</span><span class="p">)</span>
+</span><span id="cast-6034"><a href="#cast-6034"><span class="linenos">6034</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
+</span><span id="cast-6035"><a href="#cast-6035"><span class="linenos">6035</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -77151,31 +77520,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_-6026"><a href="#table_-6026"><span class="linenos">6026</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="table_-6027"><a href="#table_-6027"><span class="linenos">6027</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_-6028"><a href="#table_-6028"><span class="linenos">6028</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_-6029"><a href="#table_-6029"><span class="linenos">6029</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_-6030"><a href="#table_-6030"><span class="linenos">6030</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_-6031"><a href="#table_-6031"><span class="linenos">6031</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_-6032"><a href="#table_-6032"><span class="linenos">6032</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-6033"><a href="#table_-6033"><span class="linenos">6033</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-6034"><a href="#table_-6034"><span class="linenos">6034</span></a>
-</span><span id="table_-6035"><a href="#table_-6035"><span class="linenos">6035</span></a><span class="sd"> Args:</span>
-</span><span id="table_-6036"><a href="#table_-6036"><span class="linenos">6036</span></a><span class="sd"> table: Table name.</span>
-</span><span id="table_-6037"><a href="#table_-6037"><span class="linenos">6037</span></a><span class="sd"> db: Database name.</span>
-</span><span id="table_-6038"><a href="#table_-6038"><span class="linenos">6038</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="table_-6039"><a href="#table_-6039"><span class="linenos">6039</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="table_-6040"><a href="#table_-6040"><span class="linenos">6040</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="table_-6041"><a href="#table_-6041"><span class="linenos">6041</span></a>
-</span><span id="table_-6042"><a href="#table_-6042"><span class="linenos">6042</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-6043"><a href="#table_-6043"><span class="linenos">6043</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="table_-6044"><a href="#table_-6044"><span class="linenos">6044</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-6045"><a href="#table_-6045"><span class="linenos">6045</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-6046"><a href="#table_-6046"><span class="linenos">6046</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 class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6047"><a href="#table_-6047"><span class="linenos">6047</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 class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6048"><a href="#table_-6048"><span class="linenos">6048</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 class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6049"><a href="#table_-6049"><span class="linenos">6049</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_-6050"><a href="#table_-6050"><span class="linenos">6050</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-6038"><a href="#table_-6038"><span class="linenos">6038</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="table_-6039"><a href="#table_-6039"><span class="linenos">6039</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_-6040"><a href="#table_-6040"><span class="linenos">6040</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_-6041"><a href="#table_-6041"><span class="linenos">6041</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_-6042"><a href="#table_-6042"><span class="linenos">6042</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_-6043"><a href="#table_-6043"><span class="linenos">6043</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_-6044"><a href="#table_-6044"><span class="linenos">6044</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-6045"><a href="#table_-6045"><span class="linenos">6045</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-6046"><a href="#table_-6046"><span class="linenos">6046</span></a>
+</span><span id="table_-6047"><a href="#table_-6047"><span class="linenos">6047</span></a><span class="sd"> Args:</span>
+</span><span id="table_-6048"><a href="#table_-6048"><span class="linenos">6048</span></a><span class="sd"> table: Table name.</span>
+</span><span id="table_-6049"><a href="#table_-6049"><span class="linenos">6049</span></a><span class="sd"> db: Database name.</span>
+</span><span id="table_-6050"><a href="#table_-6050"><span class="linenos">6050</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="table_-6051"><a href="#table_-6051"><span class="linenos">6051</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="table_-6052"><a href="#table_-6052"><span class="linenos">6052</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="table_-6053"><a href="#table_-6053"><span class="linenos">6053</span></a>
+</span><span id="table_-6054"><a href="#table_-6054"><span class="linenos">6054</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-6055"><a href="#table_-6055"><span class="linenos">6055</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="table_-6056"><a href="#table_-6056"><span class="linenos">6056</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-6057"><a href="#table_-6057"><span class="linenos">6057</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-6058"><a href="#table_-6058"><span class="linenos">6058</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 class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6059"><a href="#table_-6059"><span class="linenos">6059</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 class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6060"><a href="#table_-6060"><span class="linenos">6060</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 class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6061"><a href="#table_-6061"><span class="linenos">6061</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_-6062"><a href="#table_-6062"><span class="linenos">6062</span></a> <span class="p">)</span>
</span></pre></div>
@@ -77211,37 +77580,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-6053"><a href="#values-6053"><span class="linenos">6053</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-6054"><a href="#values-6054"><span class="linenos">6054</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-6055"><a href="#values-6055"><span class="linenos">6055</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-6056"><a href="#values-6056"><span class="linenos">6056</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-6057"><a href="#values-6057"><span class="linenos">6057</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-6058"><a href="#values-6058"><span class="linenos">6058</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-6059"><a href="#values-6059"><span class="linenos">6059</span></a>
-</span><span id="values-6060"><a href="#values-6060"><span class="linenos">6060</span></a><span class="sd"> Example:</span>
-</span><span id="values-6061"><a href="#values-6061"><span class="linenos">6061</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-6062"><a href="#values-6062"><span class="linenos">6062</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-6063"><a href="#values-6063"><span class="linenos">6063</span></a>
-</span><span id="values-6064"><a href="#values-6064"><span class="linenos">6064</span></a><span class="sd"> Args:</span>
-</span><span id="values-6065"><a href="#values-6065"><span class="linenos">6065</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-6066"><a href="#values-6066"><span class="linenos">6066</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-6067"><a href="#values-6067"><span class="linenos">6067</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-6068"><a href="#values-6068"><span class="linenos">6068</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="values-6069"><a href="#values-6069"><span class="linenos">6069</span></a>
-</span><span id="values-6070"><a href="#values-6070"><span class="linenos">6070</span></a><span class="sd"> Returns:</span>
-</span><span id="values-6071"><a href="#values-6071"><span class="linenos">6071</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-6072"><a href="#values-6072"><span class="linenos">6072</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-6073"><a href="#values-6073"><span class="linenos">6073</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-6074"><a href="#values-6074"><span class="linenos">6074</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-6065"><a href="#values-6065"><span class="linenos">6065</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-6066"><a href="#values-6066"><span class="linenos">6066</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-6067"><a href="#values-6067"><span class="linenos">6067</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-6068"><a href="#values-6068"><span class="linenos">6068</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-6069"><a href="#values-6069"><span class="linenos">6069</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-6070"><a href="#values-6070"><span class="linenos">6070</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="values-6071"><a href="#values-6071"><span class="linenos">6071</span></a>
+</span><span id="values-6072"><a href="#values-6072"><span class="linenos">6072</span></a><span class="sd"> Example:</span>
+</span><span id="values-6073"><a href="#values-6073"><span class="linenos">6073</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-6074"><a href="#values-6074"><span class="linenos">6074</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
</span><span id="values-6075"><a href="#values-6075"><span class="linenos">6075</span></a>
-</span><span id="values-6076"><a href="#values-6076"><span class="linenos">6076</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-6077"><a href="#values-6077"><span class="linenos">6077</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-6078"><a href="#values-6078"><span class="linenos">6078</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="values-6079"><a href="#values-6079"><span class="linenos">6079</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-6080"><a href="#values-6080"><span class="linenos">6080</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-6081"><a href="#values-6081"><span class="linenos">6081</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-6082"><a href="#values-6082"><span class="linenos">6082</span></a> <span class="p">),</span>
-</span><span id="values-6083"><a href="#values-6083"><span class="linenos">6083</span></a> <span class="p">)</span>
+</span><span id="values-6076"><a href="#values-6076"><span class="linenos">6076</span></a><span class="sd"> Args:</span>
+</span><span id="values-6077"><a href="#values-6077"><span class="linenos">6077</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-6078"><a href="#values-6078"><span class="linenos">6078</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-6079"><a href="#values-6079"><span class="linenos">6079</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-6080"><a href="#values-6080"><span class="linenos">6080</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-6081"><a href="#values-6081"><span class="linenos">6081</span></a>
+</span><span id="values-6082"><a href="#values-6082"><span class="linenos">6082</span></a><span class="sd"> Returns:</span>
+</span><span id="values-6083"><a href="#values-6083"><span class="linenos">6083</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-6084"><a href="#values-6084"><span class="linenos">6084</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-6085"><a href="#values-6085"><span class="linenos">6085</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-6086"><a href="#values-6086"><span class="linenos">6086</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-6087"><a href="#values-6087"><span class="linenos">6087</span></a>
+</span><span id="values-6088"><a href="#values-6088"><span class="linenos">6088</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-6089"><a href="#values-6089"><span class="linenos">6089</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-6090"><a href="#values-6090"><span class="linenos">6090</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="values-6091"><a href="#values-6091"><span class="linenos">6091</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-6092"><a href="#values-6092"><span class="linenos">6092</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-6093"><a href="#values-6093"><span class="linenos">6093</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-6094"><a href="#values-6094"><span class="linenos">6094</span></a> <span class="p">),</span>
+</span><span id="values-6095"><a href="#values-6095"><span class="linenos">6095</span></a> <span class="p">)</span>
</span></pre></div>
@@ -77286,28 +77655,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-6086"><a href="#var-6086"><span class="linenos">6086</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-6087"><a href="#var-6087"><span class="linenos">6087</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-6088"><a href="#var-6088"><span class="linenos">6088</span></a>
-</span><span id="var-6089"><a href="#var-6089"><span class="linenos">6089</span></a><span class="sd"> Example:</span>
-</span><span id="var-6090"><a href="#var-6090"><span class="linenos">6090</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-6091"><a href="#var-6091"><span class="linenos">6091</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-6092"><a href="#var-6092"><span class="linenos">6092</span></a>
-</span><span id="var-6093"><a href="#var-6093"><span class="linenos">6093</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-6094"><a href="#var-6094"><span class="linenos">6094</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-6095"><a href="#var-6095"><span class="linenos">6095</span></a>
-</span><span id="var-6096"><a href="#var-6096"><span class="linenos">6096</span></a><span class="sd"> Args:</span>
-</span><span id="var-6097"><a href="#var-6097"><span class="linenos">6097</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-6098"><a href="#var-6098"><span class="linenos">6098</span></a>
-</span><span id="var-6099"><a href="#var-6099"><span class="linenos">6099</span></a><span class="sd"> Returns:</span>
-</span><span id="var-6100"><a href="#var-6100"><span class="linenos">6100</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-6101"><a href="#var-6101"><span class="linenos">6101</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-6102"><a href="#var-6102"><span class="linenos">6102</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-6103"><a href="#var-6103"><span class="linenos">6103</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="var-6098"><a href="#var-6098"><span class="linenos">6098</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-6099"><a href="#var-6099"><span class="linenos">6099</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="var-6100"><a href="#var-6100"><span class="linenos">6100</span></a>
+</span><span id="var-6101"><a href="#var-6101"><span class="linenos">6101</span></a><span class="sd"> Example:</span>
+</span><span id="var-6102"><a href="#var-6102"><span class="linenos">6102</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-6103"><a href="#var-6103"><span class="linenos">6103</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="var-6104"><a href="#var-6104"><span class="linenos">6104</span></a>
-</span><span id="var-6105"><a href="#var-6105"><span class="linenos">6105</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-6106"><a href="#var-6106"><span class="linenos">6106</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-6107"><a href="#var-6107"><span class="linenos">6107</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-6105"><a href="#var-6105"><span class="linenos">6105</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-6106"><a href="#var-6106"><span class="linenos">6106</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-6107"><a href="#var-6107"><span class="linenos">6107</span></a>
+</span><span id="var-6108"><a href="#var-6108"><span class="linenos">6108</span></a><span class="sd"> Args:</span>
+</span><span id="var-6109"><a href="#var-6109"><span class="linenos">6109</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-6110"><a href="#var-6110"><span class="linenos">6110</span></a>
+</span><span id="var-6111"><a href="#var-6111"><span class="linenos">6111</span></a><span class="sd"> Returns:</span>
+</span><span id="var-6112"><a href="#var-6112"><span class="linenos">6112</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-6113"><a href="#var-6113"><span class="linenos">6113</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-6114"><a href="#var-6114"><span class="linenos">6114</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-6115"><a href="#var-6115"><span class="linenos">6115</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-6116"><a href="#var-6116"><span class="linenos">6116</span></a>
+</span><span id="var-6117"><a href="#var-6117"><span class="linenos">6117</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-6118"><a href="#var-6118"><span class="linenos">6118</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-6119"><a href="#var-6119"><span class="linenos">6119</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>
@@ -77355,24 +77724,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-6110"><a href="#rename_table-6110"><span class="linenos">6110</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-6111"><a href="#rename_table-6111"><span class="linenos">6111</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-6112"><a href="#rename_table-6112"><span class="linenos">6112</span></a>
-</span><span id="rename_table-6113"><a href="#rename_table-6113"><span class="linenos">6113</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-6114"><a href="#rename_table-6114"><span class="linenos">6114</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-6115"><a href="#rename_table-6115"><span class="linenos">6115</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-6116"><a href="#rename_table-6116"><span class="linenos">6116</span></a>
-</span><span id="rename_table-6117"><a href="#rename_table-6117"><span class="linenos">6117</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-6118"><a href="#rename_table-6118"><span class="linenos">6118</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-6119"><a href="#rename_table-6119"><span class="linenos">6119</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-6120"><a href="#rename_table-6120"><span class="linenos">6120</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-6121"><a href="#rename_table-6121"><span class="linenos">6121</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-6122"><a href="#rename_table-6122"><span class="linenos">6122</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-6123"><a href="#rename_table-6123"><span class="linenos">6123</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-6124"><a href="#rename_table-6124"><span class="linenos">6124</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-6125"><a href="#rename_table-6125"><span class="linenos">6125</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-6126"><a href="#rename_table-6126"><span class="linenos">6126</span></a> <span class="p">],</span>
-</span><span id="rename_table-6127"><a href="#rename_table-6127"><span class="linenos">6127</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-6122"><a href="#rename_table-6122"><span class="linenos">6122</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-6123"><a href="#rename_table-6123"><span class="linenos">6123</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-6124"><a href="#rename_table-6124"><span class="linenos">6124</span></a>
+</span><span id="rename_table-6125"><a href="#rename_table-6125"><span class="linenos">6125</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-6126"><a href="#rename_table-6126"><span class="linenos">6126</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-6127"><a href="#rename_table-6127"><span class="linenos">6127</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-6128"><a href="#rename_table-6128"><span class="linenos">6128</span></a>
+</span><span id="rename_table-6129"><a href="#rename_table-6129"><span class="linenos">6129</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-6130"><a href="#rename_table-6130"><span class="linenos">6130</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-6131"><a href="#rename_table-6131"><span class="linenos">6131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-6132"><a href="#rename_table-6132"><span class="linenos">6132</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-6133"><a href="#rename_table-6133"><span class="linenos">6133</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-6134"><a href="#rename_table-6134"><span class="linenos">6134</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-6135"><a href="#rename_table-6135"><span class="linenos">6135</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-6136"><a href="#rename_table-6136"><span class="linenos">6136</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-6137"><a href="#rename_table-6137"><span class="linenos">6137</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-6138"><a href="#rename_table-6138"><span class="linenos">6138</span></a> <span class="p">],</span>
+</span><span id="rename_table-6139"><a href="#rename_table-6139"><span class="linenos">6139</span></a> <span class="p">)</span>
</span></pre></div>
@@ -77405,46 +77774,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-6130"><a href="#convert-6130"><span class="linenos">6130</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-6131"><a href="#convert-6131"><span class="linenos">6131</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-6132"><a href="#convert-6132"><span class="linenos">6132</span></a>
-</span><span id="convert-6133"><a href="#convert-6133"><span class="linenos">6133</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-6134"><a href="#convert-6134"><span class="linenos">6134</span></a>
-</span><span id="convert-6135"><a href="#convert-6135"><span class="linenos">6135</span></a><span class="sd"> Args:</span>
-</span><span id="convert-6136"><a href="#convert-6136"><span class="linenos">6136</span></a><span class="sd"> value: A python object.</span>
-</span><span id="convert-6137"><a href="#convert-6137"><span class="linenos">6137</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="convert-6138"><a href="#convert-6138"><span class="linenos">6138</span></a>
-</span><span id="convert-6139"><a href="#convert-6139"><span class="linenos">6139</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-6140"><a href="#convert-6140"><span class="linenos">6140</span></a><span class="sd"> Expression: the equivalent expression object.</span>
-</span><span id="convert-6141"><a href="#convert-6141"><span class="linenos">6141</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-6142"><a href="#convert-6142"><span class="linenos">6142</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-6143"><a href="#convert-6143"><span class="linenos">6143</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-6144"><a href="#convert-6144"><span class="linenos">6144</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-6145"><a href="#convert-6145"><span class="linenos">6145</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-6146"><a href="#convert-6146"><span class="linenos">6146</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-6147"><a href="#convert-6147"><span class="linenos">6147</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-6148"><a href="#convert-6148"><span class="linenos">6148</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-6149"><a href="#convert-6149"><span class="linenos">6149</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-6150"><a href="#convert-6150"><span class="linenos">6150</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-6151"><a href="#convert-6151"><span class="linenos">6151</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-6152"><a href="#convert-6152"><span class="linenos">6152</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-6153"><a href="#convert-6153"><span class="linenos">6153</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-6154"><a href="#convert-6154"><span class="linenos">6154</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-6155"><a href="#convert-6155"><span class="linenos">6155</span></a> <span class="p">)</span>
-</span><span id="convert-6156"><a href="#convert-6156"><span class="linenos">6156</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-6157"><a href="#convert-6157"><span class="linenos">6157</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-6158"><a href="#convert-6158"><span class="linenos">6158</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-6159"><a href="#convert-6159"><span class="linenos">6159</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-6160"><a href="#convert-6160"><span class="linenos">6160</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-6161"><a href="#convert-6161"><span class="linenos">6161</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-6162"><a href="#convert-6162"><span class="linenos">6162</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-6163"><a href="#convert-6163"><span class="linenos">6163</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-6164"><a href="#convert-6164"><span class="linenos">6164</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-6165"><a href="#convert-6165"><span class="linenos">6165</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-6166"><a href="#convert-6166"><span class="linenos">6166</span></a> <span class="n">keys</span><span class="o">=</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">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-6167"><a href="#convert-6167"><span class="linenos">6167</span></a> <span class="n">values</span><span class="o">=</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="o">.</span><span class="n">values</span><span class="p">()]),</span>
-</span><span id="convert-6168"><a href="#convert-6168"><span class="linenos">6168</span></a> <span class="p">)</span>
-</span><span id="convert-6169"><a href="#convert-6169"><span class="linenos">6169</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-6142"><a href="#convert-6142"><span class="linenos">6142</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-6143"><a href="#convert-6143"><span class="linenos">6143</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-6144"><a href="#convert-6144"><span class="linenos">6144</span></a>
+</span><span id="convert-6145"><a href="#convert-6145"><span class="linenos">6145</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-6146"><a href="#convert-6146"><span class="linenos">6146</span></a>
+</span><span id="convert-6147"><a href="#convert-6147"><span class="linenos">6147</span></a><span class="sd"> Args:</span>
+</span><span id="convert-6148"><a href="#convert-6148"><span class="linenos">6148</span></a><span class="sd"> value: A python object.</span>
+</span><span id="convert-6149"><a href="#convert-6149"><span class="linenos">6149</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="convert-6150"><a href="#convert-6150"><span class="linenos">6150</span></a>
+</span><span id="convert-6151"><a href="#convert-6151"><span class="linenos">6151</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-6152"><a href="#convert-6152"><span class="linenos">6152</span></a><span class="sd"> Expression: the equivalent expression object.</span>
+</span><span id="convert-6153"><a href="#convert-6153"><span class="linenos">6153</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-6154"><a href="#convert-6154"><span class="linenos">6154</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-6155"><a href="#convert-6155"><span class="linenos">6155</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-6156"><a href="#convert-6156"><span class="linenos">6156</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-6157"><a href="#convert-6157"><span class="linenos">6157</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-6158"><a href="#convert-6158"><span class="linenos">6158</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-6159"><a href="#convert-6159"><span class="linenos">6159</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-6160"><a href="#convert-6160"><span class="linenos">6160</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-6161"><a href="#convert-6161"><span class="linenos">6161</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-6162"><a href="#convert-6162"><span class="linenos">6162</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-6163"><a href="#convert-6163"><span class="linenos">6163</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-6164"><a href="#convert-6164"><span class="linenos">6164</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-6165"><a href="#convert-6165"><span class="linenos">6165</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-6166"><a href="#convert-6166"><span class="linenos">6166</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-6167"><a href="#convert-6167"><span class="linenos">6167</span></a> <span class="p">)</span>
+</span><span id="convert-6168"><a href="#convert-6168"><span class="linenos">6168</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-6169"><a href="#convert-6169"><span class="linenos">6169</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-6170"><a href="#convert-6170"><span class="linenos">6170</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-6171"><a href="#convert-6171"><span class="linenos">6171</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-6172"><a href="#convert-6172"><span class="linenos">6172</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-6173"><a href="#convert-6173"><span class="linenos">6173</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-6174"><a href="#convert-6174"><span class="linenos">6174</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-6175"><a href="#convert-6175"><span class="linenos">6175</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-6176"><a href="#convert-6176"><span class="linenos">6176</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-6177"><a href="#convert-6177"><span class="linenos">6177</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-6178"><a href="#convert-6178"><span class="linenos">6178</span></a> <span class="n">keys</span><span class="o">=</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">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-6179"><a href="#convert-6179"><span class="linenos">6179</span></a> <span class="n">values</span><span class="o">=</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="o">.</span><span class="n">values</span><span class="p">()]),</span>
+</span><span id="convert-6180"><a href="#convert-6180"><span class="linenos">6180</span></a> <span class="p">)</span>
+</span><span id="convert-6181"><a href="#convert-6181"><span class="linenos">6181</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>
@@ -77479,26 +77848,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-6172"><a href="#replace_children-6172"><span class="linenos">6172</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-6173"><a href="#replace_children-6173"><span class="linenos">6173</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-6174"><a href="#replace_children-6174"><span class="linenos">6174</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-6175"><a href="#replace_children-6175"><span class="linenos">6175</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-6176"><a href="#replace_children-6176"><span class="linenos">6176</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-6177"><a href="#replace_children-6177"><span class="linenos">6177</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-6178"><a href="#replace_children-6178"><span class="linenos">6178</span></a>
-</span><span id="replace_children-6179"><a href="#replace_children-6179"><span class="linenos">6179</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-6180"><a href="#replace_children-6180"><span class="linenos">6180</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-6181"><a href="#replace_children-6181"><span class="linenos">6181</span></a>
-</span><span id="replace_children-6182"><a href="#replace_children-6182"><span class="linenos">6182</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-6183"><a href="#replace_children-6183"><span class="linenos">6183</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-6184"><a href="#replace_children-6184"><span class="linenos">6184</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-6185"><a href="#replace_children-6185"><span class="linenos">6185</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-6186"><a href="#replace_children-6186"><span class="linenos">6186</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-6187"><a href="#replace_children-6187"><span class="linenos">6187</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-6188"><a href="#replace_children-6188"><span class="linenos">6188</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-6189"><a href="#replace_children-6189"><span class="linenos">6189</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-6184"><a href="#replace_children-6184"><span class="linenos">6184</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-6185"><a href="#replace_children-6185"><span class="linenos">6185</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-6186"><a href="#replace_children-6186"><span class="linenos">6186</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-6187"><a href="#replace_children-6187"><span class="linenos">6187</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-6188"><a href="#replace_children-6188"><span class="linenos">6188</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-6189"><a href="#replace_children-6189"><span class="linenos">6189</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-6190"><a href="#replace_children-6190"><span class="linenos">6190</span></a>
-</span><span id="replace_children-6191"><a href="#replace_children-6191"><span class="linenos">6191</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="replace_children-6191"><a href="#replace_children-6191"><span class="linenos">6191</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-6192"><a href="#replace_children-6192"><span class="linenos">6192</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-6193"><a href="#replace_children-6193"><span class="linenos">6193</span></a>
+</span><span id="replace_children-6194"><a href="#replace_children-6194"><span class="linenos">6194</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-6195"><a href="#replace_children-6195"><span class="linenos">6195</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-6196"><a href="#replace_children-6196"><span class="linenos">6196</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-6197"><a href="#replace_children-6197"><span class="linenos">6197</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-6198"><a href="#replace_children-6198"><span class="linenos">6198</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-6199"><a href="#replace_children-6199"><span class="linenos">6199</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-6200"><a href="#replace_children-6200"><span class="linenos">6200</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-6201"><a href="#replace_children-6201"><span class="linenos">6201</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-6202"><a href="#replace_children-6202"><span class="linenos">6202</span></a>
+</span><span id="replace_children-6203"><a href="#replace_children-6203"><span class="linenos">6203</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>
@@ -77518,27 +77887,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-6194"><a href="#column_table_names-6194"><span class="linenos">6194</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-6195"><a href="#column_table_names-6195"><span class="linenos">6195</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-6196"><a href="#column_table_names-6196"><span class="linenos">6196</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-6197"><a href="#column_table_names-6197"><span class="linenos">6197</span></a>
-</span><span id="column_table_names-6198"><a href="#column_table_names-6198"><span class="linenos">6198</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-6199"><a href="#column_table_names-6199"><span class="linenos">6199</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-6200"><a href="#column_table_names-6200"><span class="linenos">6200</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-6201"><a href="#column_table_names-6201"><span class="linenos">6201</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
-</span><span id="column_table_names-6202"><a href="#column_table_names-6202"><span class="linenos">6202</span></a>
-</span><span id="column_table_names-6203"><a href="#column_table_names-6203"><span class="linenos">6203</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-6204"><a href="#column_table_names-6204"><span class="linenos">6204</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="column_table_names-6205"><a href="#column_table_names-6205"><span class="linenos">6205</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="column_table_names-6206"><a href="#column_table_names-6206"><span class="linenos">6206</span></a>
-</span><span id="column_table_names-6207"><a href="#column_table_names-6207"><span class="linenos">6207</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-6208"><a href="#column_table_names-6208"><span class="linenos">6208</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="column_table_names-6209"><a href="#column_table_names-6209"><span class="linenos">6209</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-6210"><a href="#column_table_names-6210"><span class="linenos">6210</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="column_table_names-6211"><a href="#column_table_names-6211"><span class="linenos">6211</span></a> <span class="n">table</span>
-</span><span id="column_table_names-6212"><a href="#column_table_names-6212"><span class="linenos">6212</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-6213"><a href="#column_table_names-6213"><span class="linenos">6213</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-6214"><a href="#column_table_names-6214"><span class="linenos">6214</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-6206"><a href="#column_table_names-6206"><span class="linenos">6206</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-6207"><a href="#column_table_names-6207"><span class="linenos">6207</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-6208"><a href="#column_table_names-6208"><span class="linenos">6208</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-6209"><a href="#column_table_names-6209"><span class="linenos">6209</span></a>
+</span><span id="column_table_names-6210"><a href="#column_table_names-6210"><span class="linenos">6210</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-6211"><a href="#column_table_names-6211"><span class="linenos">6211</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-6212"><a href="#column_table_names-6212"><span class="linenos">6212</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-6213"><a href="#column_table_names-6213"><span class="linenos">6213</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="column_table_names-6214"><a href="#column_table_names-6214"><span class="linenos">6214</span></a>
+</span><span id="column_table_names-6215"><a href="#column_table_names-6215"><span class="linenos">6215</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-6216"><a href="#column_table_names-6216"><span class="linenos">6216</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="column_table_names-6217"><a href="#column_table_names-6217"><span class="linenos">6217</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="column_table_names-6218"><a href="#column_table_names-6218"><span class="linenos">6218</span></a>
+</span><span id="column_table_names-6219"><a href="#column_table_names-6219"><span class="linenos">6219</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-6220"><a href="#column_table_names-6220"><span class="linenos">6220</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="column_table_names-6221"><a href="#column_table_names-6221"><span class="linenos">6221</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-6222"><a href="#column_table_names-6222"><span class="linenos">6222</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="column_table_names-6223"><a href="#column_table_names-6223"><span class="linenos">6223</span></a> <span class="n">table</span>
+</span><span id="column_table_names-6224"><a href="#column_table_names-6224"><span class="linenos">6224</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-6225"><a href="#column_table_names-6225"><span class="linenos">6225</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-6226"><a href="#column_table_names-6226"><span class="linenos">6226</span></a> <span class="p">}</span>
</span></pre></div>
@@ -77582,33 +77951,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-6217"><a href="#table_name-6217"><span class="linenos">6217</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-6218"><a href="#table_name-6218"><span class="linenos">6218</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-6219"><a href="#table_name-6219"><span class="linenos">6219</span></a>
-</span><span id="table_name-6220"><a href="#table_name-6220"><span class="linenos">6220</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-6221"><a href="#table_name-6221"><span class="linenos">6221</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="table_name-6222"><a href="#table_name-6222"><span class="linenos">6222</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="table_name-6223"><a href="#table_name-6223"><span class="linenos">6223</span></a>
-</span><span id="table_name-6224"><a href="#table_name-6224"><span class="linenos">6224</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-6225"><a href="#table_name-6225"><span class="linenos">6225</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-6226"><a href="#table_name-6226"><span class="linenos">6226</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-6227"><a href="#table_name-6227"><span class="linenos">6227</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-6228"><a href="#table_name-6228"><span class="linenos">6228</span></a>
-</span><span id="table_name-6229"><a href="#table_name-6229"><span class="linenos">6229</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-6230"><a href="#table_name-6230"><span class="linenos">6230</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-6231"><a href="#table_name-6231"><span class="linenos">6231</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-6232"><a href="#table_name-6232"><span class="linenos">6232</span></a>
-</span><span id="table_name-6233"><a href="#table_name-6233"><span class="linenos">6233</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="table_name-6234"><a href="#table_name-6234"><span class="linenos">6234</span></a>
-</span><span id="table_name-6235"><a href="#table_name-6235"><span class="linenos">6235</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-6236"><a href="#table_name-6236"><span class="linenos">6236</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-6237"><a href="#table_name-6237"><span class="linenos">6237</span></a>
-</span><span id="table_name-6238"><a href="#table_name-6238"><span class="linenos">6238</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-6239"><a href="#table_name-6239"><span class="linenos">6239</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-6240"><a href="#table_name-6240"><span class="linenos">6240</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-6241"><a href="#table_name-6241"><span class="linenos">6241</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-6242"><a href="#table_name-6242"><span class="linenos">6242</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-6243"><a href="#table_name-6243"><span class="linenos">6243</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-6229"><a href="#table_name-6229"><span class="linenos">6229</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-6230"><a href="#table_name-6230"><span class="linenos">6230</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-6231"><a href="#table_name-6231"><span class="linenos">6231</span></a>
+</span><span id="table_name-6232"><a href="#table_name-6232"><span class="linenos">6232</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-6233"><a href="#table_name-6233"><span class="linenos">6233</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="table_name-6234"><a href="#table_name-6234"><span class="linenos">6234</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="table_name-6235"><a href="#table_name-6235"><span class="linenos">6235</span></a>
+</span><span id="table_name-6236"><a href="#table_name-6236"><span class="linenos">6236</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-6237"><a href="#table_name-6237"><span class="linenos">6237</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-6238"><a href="#table_name-6238"><span class="linenos">6238</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-6239"><a href="#table_name-6239"><span class="linenos">6239</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-6240"><a href="#table_name-6240"><span class="linenos">6240</span></a>
+</span><span id="table_name-6241"><a href="#table_name-6241"><span class="linenos">6241</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-6242"><a href="#table_name-6242"><span class="linenos">6242</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-6243"><a href="#table_name-6243"><span class="linenos">6243</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-6244"><a href="#table_name-6244"><span class="linenos">6244</span></a>
+</span><span id="table_name-6245"><a href="#table_name-6245"><span class="linenos">6245</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="table_name-6246"><a href="#table_name-6246"><span class="linenos">6246</span></a>
+</span><span id="table_name-6247"><a href="#table_name-6247"><span class="linenos">6247</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-6248"><a href="#table_name-6248"><span class="linenos">6248</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-6249"><a href="#table_name-6249"><span class="linenos">6249</span></a>
+</span><span id="table_name-6250"><a href="#table_name-6250"><span class="linenos">6250</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-6251"><a href="#table_name-6251"><span class="linenos">6251</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-6252"><a href="#table_name-6252"><span class="linenos">6252</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-6253"><a href="#table_name-6253"><span class="linenos">6253</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-6254"><a href="#table_name-6254"><span class="linenos">6254</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-6255"><a href="#table_name-6255"><span class="linenos">6255</span></a> <span class="p">)</span>
</span></pre></div>
@@ -77652,34 +78021,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-6246"><a href="#replace_tables-6246"><span class="linenos">6246</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-6247"><a href="#replace_tables-6247"><span class="linenos">6247</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-6248"><a href="#replace_tables-6248"><span class="linenos">6248</span></a>
-</span><span id="replace_tables-6249"><a href="#replace_tables-6249"><span class="linenos">6249</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-6250"><a href="#replace_tables-6250"><span class="linenos">6250</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-6251"><a href="#replace_tables-6251"><span class="linenos">6251</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="replace_tables-6252"><a href="#replace_tables-6252"><span class="linenos">6252</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="replace_tables-6253"><a href="#replace_tables-6253"><span class="linenos">6253</span></a>
-</span><span id="replace_tables-6254"><a href="#replace_tables-6254"><span class="linenos">6254</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-6255"><a href="#replace_tables-6255"><span class="linenos">6255</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-6256"><a href="#replace_tables-6256"><span class="linenos">6256</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-6257"><a href="#replace_tables-6257"><span class="linenos">6257</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="replace_tables-6258"><a href="#replace_tables-6258"><span class="linenos">6258</span></a>
-</span><span id="replace_tables-6259"><a href="#replace_tables-6259"><span class="linenos">6259</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-6260"><a href="#replace_tables-6260"><span class="linenos">6260</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-6261"><a href="#replace_tables-6261"><span class="linenos">6261</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-6262"><a href="#replace_tables-6262"><span class="linenos">6262</span></a>
-</span><span id="replace_tables-6263"><a href="#replace_tables-6263"><span class="linenos">6263</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-6264"><a href="#replace_tables-6264"><span class="linenos">6264</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-6265"><a href="#replace_tables-6265"><span class="linenos">6265</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-6266"><a href="#replace_tables-6266"><span class="linenos">6266</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-6267"><a href="#replace_tables-6267"><span class="linenos">6267</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-6268"><a href="#replace_tables-6268"><span class="linenos">6268</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-6269"><a href="#replace_tables-6269"><span class="linenos">6269</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-6270"><a href="#replace_tables-6270"><span class="linenos">6270</span></a> <span class="p">)</span>
-</span><span id="replace_tables-6271"><a href="#replace_tables-6271"><span class="linenos">6271</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_tables-6272"><a href="#replace_tables-6272"><span class="linenos">6272</span></a>
-</span><span id="replace_tables-6273"><a href="#replace_tables-6273"><span class="linenos">6273</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-6258"><a href="#replace_tables-6258"><span class="linenos">6258</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-6259"><a href="#replace_tables-6259"><span class="linenos">6259</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-6260"><a href="#replace_tables-6260"><span class="linenos">6260</span></a>
+</span><span id="replace_tables-6261"><a href="#replace_tables-6261"><span class="linenos">6261</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-6262"><a href="#replace_tables-6262"><span class="linenos">6262</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-6263"><a href="#replace_tables-6263"><span class="linenos">6263</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="replace_tables-6264"><a href="#replace_tables-6264"><span class="linenos">6264</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="replace_tables-6265"><a href="#replace_tables-6265"><span class="linenos">6265</span></a>
+</span><span id="replace_tables-6266"><a href="#replace_tables-6266"><span class="linenos">6266</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-6267"><a href="#replace_tables-6267"><span class="linenos">6267</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-6268"><a href="#replace_tables-6268"><span class="linenos">6268</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-6269"><a href="#replace_tables-6269"><span class="linenos">6269</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
+</span><span id="replace_tables-6270"><a href="#replace_tables-6270"><span class="linenos">6270</span></a>
+</span><span id="replace_tables-6271"><a href="#replace_tables-6271"><span class="linenos">6271</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-6272"><a href="#replace_tables-6272"><span class="linenos">6272</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-6273"><a href="#replace_tables-6273"><span class="linenos">6273</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tables-6274"><a href="#replace_tables-6274"><span class="linenos">6274</span></a>
+</span><span id="replace_tables-6275"><a href="#replace_tables-6275"><span class="linenos">6275</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-6276"><a href="#replace_tables-6276"><span class="linenos">6276</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-6277"><a href="#replace_tables-6277"><span class="linenos">6277</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-6278"><a href="#replace_tables-6278"><span class="linenos">6278</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-6279"><a href="#replace_tables-6279"><span class="linenos">6279</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-6280"><a href="#replace_tables-6280"><span class="linenos">6280</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-6281"><a href="#replace_tables-6281"><span class="linenos">6281</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-6282"><a href="#replace_tables-6282"><span class="linenos">6282</span></a> <span class="p">)</span>
+</span><span id="replace_tables-6283"><a href="#replace_tables-6283"><span class="linenos">6283</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-6284"><a href="#replace_tables-6284"><span class="linenos">6284</span></a>
+</span><span id="replace_tables-6285"><a href="#replace_tables-6285"><span class="linenos">6285</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>
@@ -77724,40 +78093,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-6276"><a href="#replace_placeholders-6276"><span class="linenos">6276</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-6277"><a href="#replace_placeholders-6277"><span class="linenos">6277</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-6278"><a href="#replace_placeholders-6278"><span class="linenos">6278</span></a>
-</span><span id="replace_placeholders-6279"><a href="#replace_placeholders-6279"><span class="linenos">6279</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-6280"><a href="#replace_placeholders-6280"><span class="linenos">6280</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-6281"><a href="#replace_placeholders-6281"><span class="linenos">6281</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-6282"><a href="#replace_placeholders-6282"><span class="linenos">6282</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-6283"><a href="#replace_placeholders-6283"><span class="linenos">6283</span></a>
-</span><span id="replace_placeholders-6284"><a href="#replace_placeholders-6284"><span class="linenos">6284</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-6285"><a href="#replace_placeholders-6285"><span class="linenos">6285</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-6286"><a href="#replace_placeholders-6286"><span class="linenos">6286</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-6287"><a href="#replace_placeholders-6287"><span class="linenos">6287</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="replace_placeholders-6288"><a href="#replace_placeholders-6288"><span class="linenos">6288</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-6289"><a href="#replace_placeholders-6289"><span class="linenos">6289</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-6290"><a href="#replace_placeholders-6290"><span class="linenos">6290</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="replace_placeholders-6291"><a href="#replace_placeholders-6291"><span class="linenos">6291</span></a>
-</span><span id="replace_placeholders-6292"><a href="#replace_placeholders-6292"><span class="linenos">6292</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-6293"><a href="#replace_placeholders-6293"><span class="linenos">6293</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-6294"><a href="#replace_placeholders-6294"><span class="linenos">6294</span></a><span class="sd"> &quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-6288"><a href="#replace_placeholders-6288"><span class="linenos">6288</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-6289"><a href="#replace_placeholders-6289"><span class="linenos">6289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-6290"><a href="#replace_placeholders-6290"><span class="linenos">6290</span></a>
+</span><span id="replace_placeholders-6291"><a href="#replace_placeholders-6291"><span class="linenos">6291</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-6292"><a href="#replace_placeholders-6292"><span class="linenos">6292</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-6293"><a href="#replace_placeholders-6293"><span class="linenos">6293</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-6294"><a href="#replace_placeholders-6294"><span class="linenos">6294</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
</span><span id="replace_placeholders-6295"><a href="#replace_placeholders-6295"><span class="linenos">6295</span></a>
-</span><span id="replace_placeholders-6296"><a href="#replace_placeholders-6296"><span class="linenos">6296</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-6297"><a href="#replace_placeholders-6297"><span class="linenos">6297</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-6298"><a href="#replace_placeholders-6298"><span class="linenos">6298</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-6299"><a href="#replace_placeholders-6299"><span class="linenos">6299</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-6300"><a href="#replace_placeholders-6300"><span class="linenos">6300</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_placeholders-6301"><a href="#replace_placeholders-6301"><span class="linenos">6301</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-6302"><a href="#replace_placeholders-6302"><span class="linenos">6302</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-6303"><a href="#replace_placeholders-6303"><span class="linenos">6303</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-6304"><a href="#replace_placeholders-6304"><span class="linenos">6304</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-6305"><a href="#replace_placeholders-6305"><span class="linenos">6305</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-6306"><a href="#replace_placeholders-6306"><span class="linenos">6306</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-6307"><a href="#replace_placeholders-6307"><span class="linenos">6307</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-6308"><a href="#replace_placeholders-6308"><span class="linenos">6308</span></a>
-</span><span id="replace_placeholders-6309"><a href="#replace_placeholders-6309"><span class="linenos">6309</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="replace_placeholders-6296"><a href="#replace_placeholders-6296"><span class="linenos">6296</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-6297"><a href="#replace_placeholders-6297"><span class="linenos">6297</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-6298"><a href="#replace_placeholders-6298"><span class="linenos">6298</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-6299"><a href="#replace_placeholders-6299"><span class="linenos">6299</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="replace_placeholders-6300"><a href="#replace_placeholders-6300"><span class="linenos">6300</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-6301"><a href="#replace_placeholders-6301"><span class="linenos">6301</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-6302"><a href="#replace_placeholders-6302"><span class="linenos">6302</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="replace_placeholders-6303"><a href="#replace_placeholders-6303"><span class="linenos">6303</span></a>
+</span><span id="replace_placeholders-6304"><a href="#replace_placeholders-6304"><span class="linenos">6304</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-6305"><a href="#replace_placeholders-6305"><span class="linenos">6305</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-6306"><a href="#replace_placeholders-6306"><span class="linenos">6306</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-6307"><a href="#replace_placeholders-6307"><span class="linenos">6307</span></a>
+</span><span id="replace_placeholders-6308"><a href="#replace_placeholders-6308"><span class="linenos">6308</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-6309"><a href="#replace_placeholders-6309"><span class="linenos">6309</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-6310"><a href="#replace_placeholders-6310"><span class="linenos">6310</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-6311"><a href="#replace_placeholders-6311"><span class="linenos">6311</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-6312"><a href="#replace_placeholders-6312"><span class="linenos">6312</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_placeholders-6313"><a href="#replace_placeholders-6313"><span class="linenos">6313</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-6314"><a href="#replace_placeholders-6314"><span class="linenos">6314</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-6315"><a href="#replace_placeholders-6315"><span class="linenos">6315</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-6316"><a href="#replace_placeholders-6316"><span class="linenos">6316</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-6317"><a href="#replace_placeholders-6317"><span class="linenos">6317</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-6318"><a href="#replace_placeholders-6318"><span class="linenos">6318</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-6319"><a href="#replace_placeholders-6319"><span class="linenos">6319</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-6320"><a href="#replace_placeholders-6320"><span class="linenos">6320</span></a>
+</span><span id="replace_placeholders-6321"><a href="#replace_placeholders-6321"><span class="linenos">6321</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>
@@ -77805,39 +78174,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-6312"><a href="#expand-6312"><span class="linenos">6312</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="expand-6313"><a href="#expand-6313"><span class="linenos">6313</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-6314"><a href="#expand-6314"><span class="linenos">6314</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-6315"><a href="#expand-6315"><span class="linenos">6315</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-6316"><a href="#expand-6316"><span class="linenos">6316</span></a>
-</span><span id="expand-6317"><a href="#expand-6317"><span class="linenos">6317</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-6318"><a href="#expand-6318"><span class="linenos">6318</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-6319"><a href="#expand-6319"><span class="linenos">6319</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-6320"><a href="#expand-6320"><span class="linenos">6320</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-6321"><a href="#expand-6321"><span class="linenos">6321</span></a>
-</span><span id="expand-6322"><a href="#expand-6322"><span class="linenos">6322</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-6323"><a href="#expand-6323"><span class="linenos">6323</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-6324"><a href="#expand-6324"><span class="linenos">6324</span></a>
-</span><span id="expand-6325"><a href="#expand-6325"><span class="linenos">6325</span></a><span class="sd"> Args:</span>
-</span><span id="expand-6326"><a href="#expand-6326"><span class="linenos">6326</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-6327"><a href="#expand-6327"><span class="linenos">6327</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="expand-6328"><a href="#expand-6328"><span class="linenos">6328</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-6329"><a href="#expand-6329"><span class="linenos">6329</span></a>
-</span><span id="expand-6330"><a href="#expand-6330"><span class="linenos">6330</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-6331"><a href="#expand-6331"><span class="linenos">6331</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-6332"><a href="#expand-6332"><span class="linenos">6332</span></a><span class="sd"> &quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="expand-6324"><a href="#expand-6324"><span class="linenos">6324</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="expand-6325"><a href="#expand-6325"><span class="linenos">6325</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-6326"><a href="#expand-6326"><span class="linenos">6326</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-6327"><a href="#expand-6327"><span class="linenos">6327</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-6328"><a href="#expand-6328"><span class="linenos">6328</span></a>
+</span><span id="expand-6329"><a href="#expand-6329"><span class="linenos">6329</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-6330"><a href="#expand-6330"><span class="linenos">6330</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-6331"><a href="#expand-6331"><span class="linenos">6331</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-6332"><a href="#expand-6332"><span class="linenos">6332</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
</span><span id="expand-6333"><a href="#expand-6333"><span class="linenos">6333</span></a>
-</span><span id="expand-6334"><a href="#expand-6334"><span class="linenos">6334</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-6335"><a href="#expand-6335"><span class="linenos">6335</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-6336"><a href="#expand-6336"><span class="linenos">6336</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-6337"><a href="#expand-6337"><span class="linenos">6337</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-6338"><a href="#expand-6338"><span class="linenos">6338</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-6339"><a href="#expand-6339"><span class="linenos">6339</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-6340"><a href="#expand-6340"><span class="linenos">6340</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-6341"><a href="#expand-6341"><span class="linenos">6341</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-6342"><a href="#expand-6342"><span class="linenos">6342</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="expand-6343"><a href="#expand-6343"><span class="linenos">6343</span></a>
-</span><span id="expand-6344"><a href="#expand-6344"><span class="linenos">6344</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-6334"><a href="#expand-6334"><span class="linenos">6334</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-6335"><a href="#expand-6335"><span class="linenos">6335</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-6336"><a href="#expand-6336"><span class="linenos">6336</span></a>
+</span><span id="expand-6337"><a href="#expand-6337"><span class="linenos">6337</span></a><span class="sd"> Args:</span>
+</span><span id="expand-6338"><a href="#expand-6338"><span class="linenos">6338</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-6339"><a href="#expand-6339"><span class="linenos">6339</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="expand-6340"><a href="#expand-6340"><span class="linenos">6340</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="expand-6341"><a href="#expand-6341"><span class="linenos">6341</span></a>
+</span><span id="expand-6342"><a href="#expand-6342"><span class="linenos">6342</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-6343"><a href="#expand-6343"><span class="linenos">6343</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-6344"><a href="#expand-6344"><span class="linenos">6344</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="expand-6345"><a href="#expand-6345"><span class="linenos">6345</span></a>
+</span><span id="expand-6346"><a href="#expand-6346"><span class="linenos">6346</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-6347"><a href="#expand-6347"><span class="linenos">6347</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-6348"><a href="#expand-6348"><span class="linenos">6348</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-6349"><a href="#expand-6349"><span class="linenos">6349</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-6350"><a href="#expand-6350"><span class="linenos">6350</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-6351"><a href="#expand-6351"><span class="linenos">6351</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-6352"><a href="#expand-6352"><span class="linenos">6352</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-6353"><a href="#expand-6353"><span class="linenos">6353</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-6354"><a href="#expand-6354"><span class="linenos">6354</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-6355"><a href="#expand-6355"><span class="linenos">6355</span></a>
+</span><span id="expand-6356"><a href="#expand-6356"><span class="linenos">6356</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>
@@ -77888,51 +78257,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-6347"><a href="#func-6347"><span class="linenos">6347</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-6348"><a href="#func-6348"><span class="linenos">6348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-6349"><a href="#func-6349"><span class="linenos">6349</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-6350"><a href="#func-6350"><span class="linenos">6350</span></a>
-</span><span id="func-6351"><a href="#func-6351"><span class="linenos">6351</span></a><span class="sd"> Examples:</span>
-</span><span id="func-6352"><a href="#func-6352"><span class="linenos">6352</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-6353"><a href="#func-6353"><span class="linenos">6353</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-6354"><a href="#func-6354"><span class="linenos">6354</span></a>
-</span><span id="func-6355"><a href="#func-6355"><span class="linenos">6355</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-6356"><a href="#func-6356"><span class="linenos">6356</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-6357"><a href="#func-6357"><span class="linenos">6357</span></a>
-</span><span id="func-6358"><a href="#func-6358"><span class="linenos">6358</span></a><span class="sd"> Args:</span>
-</span><span id="func-6359"><a href="#func-6359"><span class="linenos">6359</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-6360"><a href="#func-6360"><span class="linenos">6360</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-6361"><a href="#func-6361"><span class="linenos">6361</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-6362"><a href="#func-6362"><span class="linenos">6362</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-6363"><a href="#func-6363"><span class="linenos">6363</span></a>
-</span><span id="func-6364"><a href="#func-6364"><span class="linenos">6364</span></a><span class="sd"> Note:</span>
-</span><span id="func-6365"><a href="#func-6365"><span class="linenos">6365</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-6359"><a href="#func-6359"><span class="linenos">6359</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-6360"><a href="#func-6360"><span class="linenos">6360</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-6361"><a href="#func-6361"><span class="linenos">6361</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-6362"><a href="#func-6362"><span class="linenos">6362</span></a>
+</span><span id="func-6363"><a href="#func-6363"><span class="linenos">6363</span></a><span class="sd"> Examples:</span>
+</span><span id="func-6364"><a href="#func-6364"><span class="linenos">6364</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-6365"><a href="#func-6365"><span class="linenos">6365</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
</span><span id="func-6366"><a href="#func-6366"><span class="linenos">6366</span></a>
-</span><span id="func-6367"><a href="#func-6367"><span class="linenos">6367</span></a><span class="sd"> Returns:</span>
-</span><span id="func-6368"><a href="#func-6368"><span class="linenos">6368</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-6369"><a href="#func-6369"><span class="linenos">6369</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-6370"><a href="#func-6370"><span class="linenos">6370</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-6371"><a href="#func-6371"><span class="linenos">6371</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-6372"><a href="#func-6372"><span class="linenos">6372</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-6373"><a href="#func-6373"><span class="linenos">6373</span></a>
-</span><span id="func-6374"><a href="#func-6374"><span class="linenos">6374</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-6367"><a href="#func-6367"><span class="linenos">6367</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-6368"><a href="#func-6368"><span class="linenos">6368</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-6369"><a href="#func-6369"><span class="linenos">6369</span></a>
+</span><span id="func-6370"><a href="#func-6370"><span class="linenos">6370</span></a><span class="sd"> Args:</span>
+</span><span id="func-6371"><a href="#func-6371"><span class="linenos">6371</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-6372"><a href="#func-6372"><span class="linenos">6372</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-6373"><a href="#func-6373"><span class="linenos">6373</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-6374"><a href="#func-6374"><span class="linenos">6374</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
</span><span id="func-6375"><a href="#func-6375"><span class="linenos">6375</span></a>
-</span><span id="func-6376"><a href="#func-6376"><span class="linenos">6376</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-6377"><a href="#func-6377"><span class="linenos">6377</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-6376"><a href="#func-6376"><span class="linenos">6376</span></a><span class="sd"> Note:</span>
+</span><span id="func-6377"><a href="#func-6377"><span class="linenos">6377</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
</span><span id="func-6378"><a href="#func-6378"><span class="linenos">6378</span></a>
-</span><span id="func-6379"><a href="#func-6379"><span class="linenos">6379</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-6380"><a href="#func-6380"><span class="linenos">6380</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-6381"><a href="#func-6381"><span class="linenos">6381</span></a>
-</span><span id="func-6382"><a href="#func-6382"><span class="linenos">6382</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="func-6383"><a href="#func-6383"><span class="linenos">6383</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-6384"><a href="#func-6384"><span class="linenos">6384</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-6385"><a href="#func-6385"><span class="linenos">6385</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-6386"><a href="#func-6386"><span class="linenos">6386</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-6379"><a href="#func-6379"><span class="linenos">6379</span></a><span class="sd"> Returns:</span>
+</span><span id="func-6380"><a href="#func-6380"><span class="linenos">6380</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-6381"><a href="#func-6381"><span class="linenos">6381</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-6382"><a href="#func-6382"><span class="linenos">6382</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-6383"><a href="#func-6383"><span class="linenos">6383</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-6384"><a href="#func-6384"><span class="linenos">6384</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-6385"><a href="#func-6385"><span class="linenos">6385</span></a>
+</span><span id="func-6386"><a href="#func-6386"><span class="linenos">6386</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-6387"><a href="#func-6387"><span class="linenos">6387</span></a>
-</span><span id="func-6388"><a href="#func-6388"><span class="linenos">6388</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-6389"><a href="#func-6389"><span class="linenos">6389</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-6388"><a href="#func-6388"><span class="linenos">6388</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-6389"><a href="#func-6389"><span class="linenos">6389</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-6390"><a href="#func-6390"><span class="linenos">6390</span></a>
-</span><span id="func-6391"><a href="#func-6391"><span class="linenos">6391</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="func-6391"><a href="#func-6391"><span class="linenos">6391</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-6392"><a href="#func-6392"><span class="linenos">6392</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-6393"><a href="#func-6393"><span class="linenos">6393</span></a>
+</span><span id="func-6394"><a href="#func-6394"><span class="linenos">6394</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="func-6395"><a href="#func-6395"><span class="linenos">6395</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-6396"><a href="#func-6396"><span class="linenos">6396</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-6397"><a href="#func-6397"><span class="linenos">6397</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-6398"><a href="#func-6398"><span class="linenos">6398</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-6399"><a href="#func-6399"><span class="linenos">6399</span></a>
+</span><span id="func-6400"><a href="#func-6400"><span class="linenos">6400</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-6401"><a href="#func-6401"><span class="linenos">6401</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-6402"><a href="#func-6402"><span class="linenos">6402</span></a>
+</span><span id="func-6403"><a href="#func-6403"><span class="linenos">6403</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -77990,11 +78359,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-6394"><a href="#true-6394"><span class="linenos">6394</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-6395"><a href="#true-6395"><span class="linenos">6395</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-6396"><a href="#true-6396"><span class="linenos">6396</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-6397"><a href="#true-6397"><span class="linenos">6397</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-6398"><a href="#true-6398"><span class="linenos">6398</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-6406"><a href="#true-6406"><span class="linenos">6406</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-6407"><a href="#true-6407"><span class="linenos">6407</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-6408"><a href="#true-6408"><span class="linenos">6408</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-6409"><a href="#true-6409"><span class="linenos">6409</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-6410"><a href="#true-6410"><span class="linenos">6410</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>
@@ -78014,11 +78383,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-6401"><a href="#false-6401"><span class="linenos">6401</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-6402"><a href="#false-6402"><span class="linenos">6402</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-6403"><a href="#false-6403"><span class="linenos">6403</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-6404"><a href="#false-6404"><span class="linenos">6404</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-6405"><a href="#false-6405"><span class="linenos">6405</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-6413"><a href="#false-6413"><span class="linenos">6413</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-6414"><a href="#false-6414"><span class="linenos">6414</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-6415"><a href="#false-6415"><span class="linenos">6415</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-6416"><a href="#false-6416"><span class="linenos">6416</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-6417"><a href="#false-6417"><span class="linenos">6417</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>
@@ -78038,11 +78407,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-6408"><a href="#null-6408"><span class="linenos">6408</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-6409"><a href="#null-6409"><span class="linenos">6409</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-6410"><a href="#null-6410"><span class="linenos">6410</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-6411"><a href="#null-6411"><span class="linenos">6411</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-6412"><a href="#null-6412"><span class="linenos">6412</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-6420"><a href="#null-6420"><span class="linenos">6420</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-6421"><a href="#null-6421"><span class="linenos">6421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-6422"><a href="#null-6422"><span class="linenos">6422</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-6423"><a href="#null-6423"><span class="linenos">6423</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-6424"><a href="#null-6424"><span class="linenos">6424</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>