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.html7466
1 files changed, 3851 insertions, 3615 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index a920e22..de9d437 100644
--- a/docs/sqlglot/expressions.html
+++ b/docs/sqlglot/expressions.html
@@ -1299,15 +1299,27 @@
<a class="variable" href="#DataType.Type.INT">INT</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.UINT">UINT</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.TINYINT">TINYINT</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.UTINYINT">UTINYINT</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.SMALLINT">SMALLINT</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.USMALLINT">USMALLINT</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.BIGINT">BIGINT</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.UBIGINT">UBIGINT</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.FLOAT">FLOAT</a>
</li>
<li>
@@ -1317,6 +1329,9 @@
<a class="variable" href="#DataType.Type.DECIMAL">DECIMAL</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.BIT">BIT</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.BOOLEAN">BOOLEAN</a>
</li>
<li>
@@ -1737,6 +1752,12 @@
</li>
<li>
+ <a class="class" href="#ArrayOverlaps">ArrayOverlaps</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Unary">Unary</a>
<ul class="memberlist">
</ul>
@@ -1923,6 +1944,12 @@
</li>
<li>
+ <a class="class" href="#ArrayContained">ArrayContained</a>
+ <ul class="memberlist">
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#ArrayFilter">ArrayFilter</a>
<ul class="memberlist">
</ul>
@@ -5565,2254 +5592,2268 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a><
</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
-</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a>
-</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="p">}</span>
-</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a>
-</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="p">}</span>
-</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a>
-</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
+</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a>
+</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="p">}</span>
+</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a>
+</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="p">}</span>
</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a>
-</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
-</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a>
-</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="p">}</span>
-</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a>
-</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</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="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-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
-</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a>
-</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="n">data_type_exp</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">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</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="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</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">DataType</span><span class="p">)</span>
-</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</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;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
-</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</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 data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
-</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</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-2750"><a href="#L-2750"><span class="linenos">2750</span></a>
-</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
-</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a>
-</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a>
-</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
-</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="k">pass</span>
+</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="p">}</span>
+</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a>
+</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
+</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a>
+</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="p">}</span>
+</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a>
+</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</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="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-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
+</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a>
+</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a> <span class="n">data_type_exp</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">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</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="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</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">DataType</span><span class="p">)</span>
+</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</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;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
+</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</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 data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
+</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</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-2755"><a href="#L-2755"><span class="linenos">2755</span></a>
+</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a>
</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a>
-</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</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-2762"><a href="#L-2762"><span class="linenos">2762</span></a>
+</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
+</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="k">pass</span>
</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a>
-</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
-</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="k">pass</span>
+</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a>
+</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</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-2767"><a href="#L-2767"><span class="linenos">2767</span></a>
</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a>
-</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="k">pass</span>
-</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a>
+</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
+</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="k">pass</span>
</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a>
-</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a> <span class="k">pass</span>
-</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a>
+</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a>
+</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="k">pass</span>
</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a>
-</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="k">pass</span>
-</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a>
+</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a>
+</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="k">pass</span>
</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a>
-</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
-</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
-</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</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-2781"><a href="#L-2781"><span class="linenos">2781</span></a>
+</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="k">pass</span>
+</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a>
</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a>
-</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a>
-</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</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;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a>
+</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
+</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
+</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</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-2790"><a href="#L-2790"><span class="linenos">2790</span></a>
-</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a>
+</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a>
+</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</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;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a>
-</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a>
+</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a>
+</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a>
-</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</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;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a>
+</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a>
+</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a>
-</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</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;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a>
+</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a>
+</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</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;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a>
-</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</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 class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a>
+</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a>
+</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</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;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a>
-</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
-</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</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-2811"><a href="#L-2811"><span class="linenos">2811</span></a>
+</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</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 class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a>
-</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> <span class="nd">@property</span>
-</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a>
-</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="nd">@property</span>
-</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
-</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a>
+</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a>
+</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
+</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</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-2819"><a href="#L-2819"><span class="linenos">2819</span></a>
+</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="nd">@property</span>
+</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a>
-</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">pass</span>
-</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a>
+</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="nd">@property</span>
+</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a>
-</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="k">pass</span>
-</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a>
+</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a>
+</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="k">pass</span>
</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a>
-</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
-</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a> <span class="k">pass</span>
-</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a>
+</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a>
+</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="k">pass</span>
</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a>
-</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
-</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="k">pass</span>
-</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a>
+</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a>
+</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="k">pass</span>
</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a>
-</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="k">pass</span>
-</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a>
+</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a>
+</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="k">pass</span>
</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a>
-</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="k">pass</span>
-</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a>
+</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a>
+</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="k">pass</span>
</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a>
-</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="k">pass</span>
-</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a>
+</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a>
+</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="k">pass</span>
</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a>
-</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="k">pass</span>
-</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a>
+</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a>
+</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="k">pass</span>
</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a>
-</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="k">pass</span>
-</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a>
+</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a>
+</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="k">pass</span>
</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a>
-</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="k">pass</span>
-</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a>
+</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a>
+</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="k">pass</span>
</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a>
-</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a><span class="k">class</span> <span class="nc">FloatDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="k">pass</span>
-</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a>
+</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a>
+</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="k">pass</span>
</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a>
-</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="k">pass</span>
-</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a>
+</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a>
+</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a><span class="k">class</span> <span class="nc">FloatDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="k">pass</span>
</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a>
-</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a> <span class="nd">@property</span>
-</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a>
+</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="k">pass</span>
+</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a>
</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a>
-</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a>
-</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="k">pass</span>
-</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a>
+</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="nd">@property</span>
+</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a>
-</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="k">pass</span>
-</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a>
+</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a>
+</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="k">pass</span>
</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a>
-</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="k">pass</span>
-</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a>
+</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a>
+</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="k">pass</span>
</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a>
-</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="k">pass</span>
-</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a>
+</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a>
+</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="k">pass</span>
</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a>
-</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="k">pass</span>
-</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a>
+</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a>
+</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="k">pass</span>
</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</span></a>
-</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="k">pass</span>
-</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a>
+</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a>
+</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="k">pass</span>
</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a>
-</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a> <span class="k">pass</span>
-</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a>
+</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a>
+</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a> <span class="k">pass</span>
</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a>
-</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a> <span class="k">pass</span>
-</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a>
+</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a>
+</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a> <span class="k">pass</span>
</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a>
-</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a> <span class="k">pass</span>
-</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a>
+</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a>
+</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a> <span class="k">pass</span>
</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a>
-</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> <span class="k">pass</span>
-</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a>
+</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a>
+</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="k">pass</span>
</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a>
-</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> <span class="k">pass</span>
-</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a>
+</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a>
+</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="k">pass</span>
</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a>
-</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> <span class="k">pass</span>
-</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a>
+</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a>
+</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="k">pass</span>
</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a>
-</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> <span class="k">pass</span>
-</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a>
+</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a>
+</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="k">pass</span>
</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a>
-</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Kwarg in special functions like func(kwarg =&gt; y).&quot;&quot;&quot;</span>
-</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a>
+</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a>
+</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="k">pass</span>
</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a>
-</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="k">pass</span>
-</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a>
+</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a>
+</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Kwarg in special functions like func(kwarg =&gt; y).&quot;&quot;&quot;</span>
</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a>
-</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="k">pass</span>
-</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a>
+</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a>
+</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="k">pass</span>
</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a>
-</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="k">pass</span>
-</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a>
+</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a>
+</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="k">pass</span>
</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a>
-</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a> <span class="k">pass</span>
-</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a>
+</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a>
+</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="k">pass</span>
</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a>
-</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="k">pass</span>
-</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a>
+</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a>
+</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a> <span class="k">pass</span>
</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a>
-</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="k">pass</span>
-</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a>
+</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a>
+</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="k">pass</span>
</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a>
-</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="k">pass</span>
-</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a>
+</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a>
+</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="k">pass</span>
</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a>
-</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="k">pass</span>
-</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a>
+</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a>
+</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="k">pass</span>
</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a>
-</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</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><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a>
+</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a>
+</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="k">pass</span>
</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a>
-</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="k">pass</span>
-</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a>
+</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a>
+</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</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><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a>
-</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a><span class="c1"># Unary Expressions</span>
-</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a><span class="c1"># (NOT a)</span>
-</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a> <span class="k">pass</span>
+</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a>
+</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> <span class="k">pass</span>
+</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a>
</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a>
-</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a>
-</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="k">pass</span>
+</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="k">pass</span>
+</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a>
</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a>
-</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a>
-</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a> <span class="k">pass</span>
-</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a>
+</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a><span class="c1"># Unary Expressions</span>
+</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="c1"># (NOT a)</span>
+</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="k">pass</span>
</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a>
-</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</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;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a>
+</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a>
+</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="k">pass</span>
</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a>
-</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="k">pass</span>
-</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a>
+</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a>
+</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="k">pass</span>
</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a>
-</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a><span class="c1"># Special Functions</span>
-</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</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;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a>
+</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</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;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a>
-</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="nd">@property</span>
-</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
+</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a>
+</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="k">pass</span>
</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a>
</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a>
-</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</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><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a>
-</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a> <span class="nd">@property</span>
-</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a>
+</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a><span class="c1"># Special Functions</span>
+</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</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;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a>
+</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a> <span class="nd">@property</span>
+</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a>
-</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</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;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a>
+</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a>
+</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</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><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a>
-</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</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;low&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;high&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a>
+</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="nd">@property</span>
+</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a>
-</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</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><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a>
+</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a>
+</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</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;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a>
-</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</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">False</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a>
+</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a>
+</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</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;low&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;high&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a>
-</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
-</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</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-3032"><a href="#L-3032"><span class="linenos">3032</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-3033"><a href="#L-3033"><span class="linenos">3033</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="s2">&quot;unnest&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="s2">&quot;is_global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span class="p">}</span>
-</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a>
-</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a>
-</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Automatically converts unit arg into a var.&quot;&quot;&quot;</span>
-</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a>
-</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a> <span class="n">arg_types</span> <span class="o">=</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-3044"><a href="#L-3044"><span class="linenos">3044</span></a>
-</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
-</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
-</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</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">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
-</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
-</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
-</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a>
+</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a>
+</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</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><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a>
+</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a>
+</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</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">False</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a>
+</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a>
+</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</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-3041"><a href="#L-3041"><span class="linenos">3041</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-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a> <span class="s2">&quot;unnest&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="s2">&quot;is_global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a> <span class="p">}</span>
+</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a>
+</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a>
+</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Automatically converts unit arg into a var.&quot;&quot;&quot;</span>
+</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a>
+</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="n">arg_types</span> <span class="o">=</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-3053"><a href="#L-3053"><span class="linenos">3053</span></a>
-</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</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;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a>
-</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a>
-</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="k">pass</span>
-</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a>
+</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
+</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</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">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
+</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a>
-</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a> <span class="k">pass</span>
-</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a>
+</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a>
+</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</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;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a>
-</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a><span class="c1"># Functions</span>
-</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a><span class="sd"> The base class for all function expressions.</span>
+</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a>
+</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="k">pass</span>
+</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a>
</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a>
-</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a><span class="sd"> Attributes:</span>
-</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span>
-</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a><span class="sd"> treated as a variable length argument and the argument&#39;s value will be stored as a list.</span>
-</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
-</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
-</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
-</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="k">pass</span>
+</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a>
+</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a>
+</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a><span class="c1"># Functions</span>
+</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a>
-</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a>
-</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
-</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
-</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
-</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
-</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a>
-</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
-</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
-</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
-</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a>
-</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
-</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a>
-</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="p">)</span>
-</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
-</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
-</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
-</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a>
-</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
-</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a>
-</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
-</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a>
+</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a><span class="sd"> Attributes:</span>
+</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span>
+</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a><span class="sd"> treated as a variable length argument and the argument&#39;s value will be stored as a list.</span>
+</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
+</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
+</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
+</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a>
+</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a>
+</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
+</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
+</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
+</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
+</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a>
+</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
+</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
+</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
+</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a>
+</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
+</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a>
+</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="p">)</span>
+</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
+</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
+</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a>
-</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="k">pass</span>
-</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a>
+</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a>
-</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="k">pass</span>
-</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a>
+</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a>
-</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</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-3126"><a href="#L-3126"><span class="linenos">3126</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a>
+</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a> <span class="k">pass</span>
</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a>
</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a>
-</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</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;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="k">pass</span>
</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a>
</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a>
-</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</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">False</span><span class="p">}</span>
+</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</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-3135"><a href="#L-3135"><span class="linenos">3135</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a>
</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a>
-</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="n">arg_types</span> <span class="o">=</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;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</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;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a>
</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a>
-</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="k">pass</span>
-</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a>
+</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</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">False</span><span class="p">}</span>
+</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a>
-</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</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-3148"><a href="#L-3148"><span class="linenos">3148</span></a>
+</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a>
+</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a> <span class="n">arg_types</span> <span class="o">=</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;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a>
-</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</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-3152"><a href="#L-3152"><span class="linenos">3152</span></a>
+</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a>
+</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="k">pass</span>
</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a>
-</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</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-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a>
+</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</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-3157"><a href="#L-3157"><span class="linenos">3157</span></a>
</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a>
-</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</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-3161"><a href="#L-3161"><span class="linenos">3161</span></a>
</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a>
-</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</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-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
+</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</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-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a>
</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a>
-</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</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;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a><span class="k">class</span> <span class="nc">ArrayContains</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-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="k">pass</span>
</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a>
</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a>
-</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</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-3172"><a href="#L-3172"><span class="linenos">3172</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a> <span class="k">pass</span>
</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a>
</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a>
-</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</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-3178"><a href="#L-3178"><span class="linenos">3178</span></a>
+</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</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-3178"><a href="#L-3178"><span class="linenos">3178</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a>
-</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a> <span class="k">pass</span>
-</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a>
+</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a>
+</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</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;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a>
-</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a> <span class="k">pass</span>
-</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a>
+</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a>
+</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</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-3187"><a href="#L-3187"><span class="linenos">3187</span></a>
-</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a> <span class="k">pass</span>
-</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a>
+</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a>
+</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</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-3191"><a href="#L-3191"><span class="linenos">3191</span></a>
-</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a> <span class="k">pass</span>
-</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a>
+</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a>
+</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a> <span class="k">pass</span>
</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a>
-</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</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;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a>
+</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a>
+</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a> <span class="k">pass</span>
</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a>
-</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</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-3201"><a href="#L-3201"><span class="linenos">3201</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><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a>
-</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> <span class="nd">@property</span>
-</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a>
-</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="nd">@property</span>
-</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</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;to&quot;</span><span class="p">]</span>
-</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a>
-</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a> <span class="nd">@property</span>
-</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a>
-</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a>
-</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a>
-</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="k">pass</span>
-</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a>
-</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a>
-</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
-</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="k">pass</span>
-</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a>
-</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a>
-</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</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-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
+</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a>
+</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="k">pass</span>
+</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a>
+</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a>
+</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> <span class="k">pass</span>
+</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a>
+</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a>
+</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</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;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a>
+</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a>
+</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</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-3214"><a href="#L-3214"><span class="linenos">3214</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><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a>
+</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="nd">@property</span>
+</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a>
+</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="nd">@property</span>
+</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</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;to&quot;</span><span class="p">]</span>
+</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a>
+</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="nd">@property</span>
+</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a>
+</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a>
</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a>
-</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</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-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="k">pass</span>
+</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a>
</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a>
-</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a>
-</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</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-3239"><a href="#L-3239"><span class="linenos">3239</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a>
-</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a>
-</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
-</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CONCAT_WS&quot;</span><span class="p">]</span>
+</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
+</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="k">pass</span>
+</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a>
+</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a>
+</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</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-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
+</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a>
</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a>
-</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a>
-</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</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><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</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-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a>
</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a>
-</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</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><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a>
+</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</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-3252"><a href="#L-3252"><span class="linenos">3252</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a>
-</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</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><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a>
+</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a>
+</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
+</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CONCAT_WS&quot;</span><span class="p">]</span>
</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a>
-</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</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><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a>
+</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a>
+</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</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><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a>
-</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</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><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a>
+</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a>
+</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</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><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a>
-</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a><span class="k">class</span> <span class="nc">DateAdd</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-3267"><a href="#L-3267"><span class="linenos">3267</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-3268"><a href="#L-3268"><span class="linenos">3268</span></a>
+</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a>
+</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</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><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a>
-</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a><span class="k">class</span> <span class="nc">DateSub</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-3271"><a href="#L-3271"><span class="linenos">3271</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-3272"><a href="#L-3272"><span class="linenos">3272</span></a>
+</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a>
+</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</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><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a>
-</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a><span class="k">class</span> <span class="nc">DateDiff</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-3275"><a href="#L-3275"><span class="linenos">3275</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-3276"><a href="#L-3276"><span class="linenos">3276</span></a>
+</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a>
+</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</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><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a>
-</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a>
+</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a>
+</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a><span class="k">class</span> <span class="nc">DateAdd</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-3280"><a href="#L-3280"><span class="linenos">3280</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-3281"><a href="#L-3281"><span class="linenos">3281</span></a>
-</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</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-3283"><a href="#L-3283"><span class="linenos">3283</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-3284"><a href="#L-3284"><span class="linenos">3284</span></a>
+</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a>
+</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a><span class="k">class</span> <span class="nc">DateSub</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-3284"><a href="#L-3284"><span class="linenos">3284</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-3285"><a href="#L-3285"><span class="linenos">3285</span></a>
-</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a><span class="k">class</span> <span class="nc">DatetimeSub</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-3287"><a href="#L-3287"><span class="linenos">3287</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-3288"><a href="#L-3288"><span class="linenos">3288</span></a>
-</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a>
-</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</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-3291"><a href="#L-3291"><span class="linenos">3291</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-3292"><a href="#L-3292"><span class="linenos">3292</span></a>
-</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a>
-</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</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-3295"><a href="#L-3295"><span class="linenos">3295</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;unit&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-3296"><a href="#L-3296"><span class="linenos">3296</span></a>
-</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a>
-</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_WEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFWEEK&quot;</span><span class="p">]</span>
-</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a>
-</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a>
-</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_MONTH&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFMONTH&quot;</span><span class="p">]</span>
-</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a>
-</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a>
-</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
-</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a>
-</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a>
-</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
-</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a>
-</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a>
-</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="k">pass</span>
-</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a>
-</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a>
-</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</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-3320"><a href="#L-3320"><span class="linenos">3320</span></a>
-</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a>
-</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a><span class="k">class</span> <span class="nc">TimestampAdd</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-3323"><a href="#L-3323"><span class="linenos">3323</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-3324"><a href="#L-3324"><span class="linenos">3324</span></a>
-</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a>
-</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a><span class="k">class</span> <span class="nc">TimestampSub</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-3327"><a href="#L-3327"><span class="linenos">3327</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-3328"><a href="#L-3328"><span class="linenos">3328</span></a>
-</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a>
-</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a><span class="k">class</span> <span class="nc">TimestampDiff</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-3331"><a href="#L-3331"><span class="linenos">3331</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-3332"><a href="#L-3332"><span class="linenos">3332</span></a>
-</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a>
-</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</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-3335"><a href="#L-3335"><span class="linenos">3335</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;unit&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-3336"><a href="#L-3336"><span class="linenos">3336</span></a>
-</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a>
-</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a><span class="k">class</span> <span class="nc">TimeAdd</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-3339"><a href="#L-3339"><span class="linenos">3339</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-3340"><a href="#L-3340"><span class="linenos">3340</span></a>
-</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a>
-</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a><span class="k">class</span> <span class="nc">TimeSub</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-3343"><a href="#L-3343"><span class="linenos">3343</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-3344"><a href="#L-3344"><span class="linenos">3344</span></a>
-</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a>
-</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a><span class="k">class</span> <span class="nc">TimeDiff</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-3347"><a href="#L-3347"><span class="linenos">3347</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-3348"><a href="#L-3348"><span class="linenos">3348</span></a>
-</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a>
-</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a><span class="k">class</span> <span class="nc">TimeTrunc</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-3351"><a href="#L-3351"><span class="linenos">3351</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;unit&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-3352"><a href="#L-3352"><span class="linenos">3352</span></a>
-</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a>
-</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a>
+</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a>
+</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a><span class="k">class</span> <span class="nc">DateDiff</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-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
+</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</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-3290"><a href="#L-3290"><span class="linenos">3290</span></a>
+</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a>
+</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a>
+</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a>
+</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</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-3297"><a href="#L-3297"><span class="linenos">3297</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-3298"><a href="#L-3298"><span class="linenos">3298</span></a>
+</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a>
+</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a><span class="k">class</span> <span class="nc">DatetimeSub</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-3301"><a href="#L-3301"><span class="linenos">3301</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-3302"><a href="#L-3302"><span class="linenos">3302</span></a>
+</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a>
+</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</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-3305"><a href="#L-3305"><span class="linenos">3305</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-3306"><a href="#L-3306"><span class="linenos">3306</span></a>
+</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a>
+</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</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-3309"><a href="#L-3309"><span class="linenos">3309</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;unit&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-3310"><a href="#L-3310"><span class="linenos">3310</span></a>
+</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a>
+</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_WEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFWEEK&quot;</span><span class="p">]</span>
+</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a>
+</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a>
+</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_MONTH&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFMONTH&quot;</span><span class="p">]</span>
+</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a>
+</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a>
+</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
+</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a>
+</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a>
+</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
+</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a>
+</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a>
+</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="k">pass</span>
+</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a>
+</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a>
+</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</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-3334"><a href="#L-3334"><span class="linenos">3334</span></a>
+</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a>
+</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a><span class="k">class</span> <span class="nc">TimestampAdd</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-3337"><a href="#L-3337"><span class="linenos">3337</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-3338"><a href="#L-3338"><span class="linenos">3338</span></a>
+</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a>
+</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="k">class</span> <span class="nc">TimestampSub</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-3341"><a href="#L-3341"><span class="linenos">3341</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-3342"><a href="#L-3342"><span class="linenos">3342</span></a>
+</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a>
+</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a><span class="k">class</span> <span class="nc">TimestampDiff</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-3345"><a href="#L-3345"><span class="linenos">3345</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-3346"><a href="#L-3346"><span class="linenos">3346</span></a>
+</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a>
+</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</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-3349"><a href="#L-3349"><span class="linenos">3349</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;unit&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-3350"><a href="#L-3350"><span class="linenos">3350</span></a>
+</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a>
+</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a><span class="k">class</span> <span class="nc">TimeAdd</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-3353"><a href="#L-3353"><span class="linenos">3353</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-3354"><a href="#L-3354"><span class="linenos">3354</span></a>
+</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a>
+</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a><span class="k">class</span> <span class="nc">TimeSub</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-3357"><a href="#L-3357"><span class="linenos">3357</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-3358"><a href="#L-3358"><span class="linenos">3358</span></a>
-</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a> <span class="k">pass</span>
-</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a>
+</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a>
+</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a><span class="k">class</span> <span class="nc">TimeDiff</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-3361"><a href="#L-3361"><span class="linenos">3361</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-3362"><a href="#L-3362"><span class="linenos">3362</span></a>
-</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a> <span class="k">pass</span>
-</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a>
+</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a>
+</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a><span class="k">class</span> <span class="nc">TimeTrunc</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-3365"><a href="#L-3365"><span class="linenos">3365</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;unit&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-3366"><a href="#L-3366"><span class="linenos">3366</span></a>
-</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a> <span class="k">pass</span>
-</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a>
-</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a>
-</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a> <span class="k">pass</span>
-</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a>
-</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a>
-</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a>
-</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a>
-</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> <span class="k">pass</span>
-</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a>
-</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a>
-</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a>
-</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a>
-</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a> <span class="k">pass</span>
-</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a>
-</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a>
-</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a> <span class="k">pass</span>
-</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a>
-</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a>
-</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</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-3396"><a href="#L-3396"><span class="linenos">3396</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-3397"><a href="#L-3397"><span class="linenos">3397</span></a>
-</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a>
-</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</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-3400"><a href="#L-3400"><span class="linenos">3400</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-3401"><a href="#L-3401"><span class="linenos">3401</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a>
+</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a>
+</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a>
+</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a>
+</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="k">pass</span>
+</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a>
+</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a>
+</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="k">pass</span>
+</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a>
+</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a>
+</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="k">pass</span>
+</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a>
+</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a>
+</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="k">pass</span>
+</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a>
+</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a>
+</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a>
+</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a>
+</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> <span class="k">pass</span>
+</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a>
+</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a>
+</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a>
+</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a>
+</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> <span class="k">pass</span>
</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a>
-</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</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-3406"><a href="#L-3406"><span class="linenos">3406</span></a>
+</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a>
+</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> <span class="k">pass</span>
</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a>
-</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</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-3409"><a href="#L-3409"><span class="linenos">3409</span></a> <span class="k">pass</span>
-</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a>
+</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a>
+</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</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-3410"><a href="#L-3410"><span class="linenos">3410</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-3411"><a href="#L-3411"><span class="linenos">3411</span></a>
-</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</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-3413"><a href="#L-3413"><span class="linenos">3413</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-3414"><a href="#L-3414"><span class="linenos">3414</span></a>
-</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a>
-</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</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-3418"><a href="#L-3418"><span class="linenos">3418</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
-</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a>
+</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a>
+</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</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-3414"><a href="#L-3414"><span class="linenos">3414</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-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a>
+</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a>
+</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</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-3420"><a href="#L-3420"><span class="linenos">3420</span></a>
-</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</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-3422"><a href="#L-3422"><span class="linenos">3422</span></a> <span class="k">pass</span>
-</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a>
+</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a>
+</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</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-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="k">pass</span>
</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a>
-</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</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-3426"><a href="#L-3426"><span class="linenos">3426</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-3427"><a href="#L-3427"><span class="linenos">3427</span></a>
+</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a>
+</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</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-3427"><a href="#L-3427"><span class="linenos">3427</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-3428"><a href="#L-3428"><span class="linenos">3428</span></a>
-</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</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-3430"><a href="#L-3430"><span class="linenos">3430</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-3431"><a href="#L-3431"><span class="linenos">3431</span></a>
-</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a>
-</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</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-3434"><a href="#L-3434"><span class="linenos">3434</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-3435"><a href="#L-3435"><span class="linenos">3435</span></a>
-</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a>
-</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</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-3438"><a href="#L-3438"><span class="linenos">3438</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-3439"><a href="#L-3439"><span class="linenos">3439</span></a>
-</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a>
-</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</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-3442"><a href="#L-3442"><span class="linenos">3442</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-3443"><a href="#L-3443"><span class="linenos">3443</span></a>
-</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a>
-</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</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-3446"><a href="#L-3446"><span class="linenos">3446</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">False</span><span class="p">}</span>
-</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a>
+</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a>
+</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</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-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a>
+</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a>
+</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</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-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="k">pass</span>
+</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a>
+</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a>
+</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</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-3440"><a href="#L-3440"><span class="linenos">3440</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-3441"><a href="#L-3441"><span class="linenos">3441</span></a>
+</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a>
+</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</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-3444"><a href="#L-3444"><span class="linenos">3444</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-3445"><a href="#L-3445"><span class="linenos">3445</span></a>
+</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a>
+</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</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-3448"><a href="#L-3448"><span class="linenos">3448</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-3449"><a href="#L-3449"><span class="linenos">3449</span></a>
-</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</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-3451"><a href="#L-3451"><span class="linenos">3451</span></a> <span class="k">pass</span>
-</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a>
+</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a>
+</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</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-3452"><a href="#L-3452"><span class="linenos">3452</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-3453"><a href="#L-3453"><span class="linenos">3453</span></a>
-</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</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-3455"><a href="#L-3455"><span class="linenos">3455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</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-3457"><a href="#L-3457"><span class="linenos">3457</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-3458"><a href="#L-3458"><span class="linenos">3458</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-3459"><a href="#L-3459"><span class="linenos">3459</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-3460"><a href="#L-3460"><span class="linenos">3460</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-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="p">}</span>
+</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a>
+</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</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-3456"><a href="#L-3456"><span class="linenos">3456</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-3457"><a href="#L-3457"><span class="linenos">3457</span></a>
+</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a>
+</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</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-3460"><a href="#L-3460"><span class="linenos">3460</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">False</span><span class="p">}</span>
+</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a>
</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a>
-</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</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-3464"><a href="#L-3464"><span class="linenos">3464</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-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="k">pass</span>
</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a>
</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a>
-</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</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-3469"><a href="#L-3469"><span class="linenos">3469</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-3470"><a href="#L-3470"><span class="linenos">3470</span></a>
-</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a>
-</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</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-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="k">pass</span>
-</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a>
-</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a>
-</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</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-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="k">pass</span>
-</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a>
-</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a>
-</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</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-3481"><a href="#L-3481"><span class="linenos">3481</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><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a>
-</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a>
-</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</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-3485"><a href="#L-3485"><span class="linenos">3485</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-3486"><a href="#L-3486"><span class="linenos">3486</span></a>
-</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a>
-</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</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-3489"><a href="#L-3489"><span class="linenos">3489</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-3490"><a href="#L-3490"><span class="linenos">3490</span></a>
-</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a>
-</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</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-3493"><a href="#L-3493"><span class="linenos">3493</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-3494"><a href="#L-3494"><span class="linenos">3494</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a>
+</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</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-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</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-3471"><a href="#L-3471"><span class="linenos">3471</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-3472"><a href="#L-3472"><span class="linenos">3472</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-3473"><a href="#L-3473"><span class="linenos">3473</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-3474"><a href="#L-3474"><span class="linenos">3474</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-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="p">}</span>
+</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a>
+</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a>
+</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</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-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="k">pass</span>
+</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a>
+</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a>
+</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</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-3483"><a href="#L-3483"><span class="linenos">3483</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-3484"><a href="#L-3484"><span class="linenos">3484</span></a>
+</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a>
+</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</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-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="k">pass</span>
+</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a>
+</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a>
+</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</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-3491"><a href="#L-3491"><span class="linenos">3491</span></a> <span class="k">pass</span>
+</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a>
+</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a>
+</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</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-3495"><a href="#L-3495"><span class="linenos">3495</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><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</span></a>
-</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Oracle/Snowflake decode.</span>
-</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span>
-</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span>
-</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a>
-</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</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><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a>
+</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</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-3499"><a href="#L-3499"><span class="linenos">3499</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-3500"><a href="#L-3500"><span class="linenos">3500</span></a>
+</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a>
+</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</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-3503"><a href="#L-3503"><span class="linenos">3503</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-3504"><a href="#L-3504"><span class="linenos">3504</span></a>
</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a>
-</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a>
-</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</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-3508"><a href="#L-3508"><span class="linenos">3508</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-3509"><a href="#L-3509"><span class="linenos">3509</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</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-3507"><a href="#L-3507"><span class="linenos">3507</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-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</span></a>
</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a>
-</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a>
-</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</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-3513"><a href="#L-3513"><span class="linenos">3513</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-3514"><a href="#L-3514"><span class="linenos">3514</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a>
+</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Oracle/Snowflake decode.</span>
+</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span>
+</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span>
+</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a>
-</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</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-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="k">pass</span>
+</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</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><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a>
</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a>
-</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</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-3522"><a href="#L-3522"><span class="linenos">3522</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-3523"><a href="#L-3523"><span class="linenos">3523</span></a>
+</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</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-3522"><a href="#L-3522"><span class="linenos">3522</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-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a>
-</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</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-3526"><a href="#L-3526"><span class="linenos">3526</span></a> <span class="k">pass</span>
-</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a>
-</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a>
-</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</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-3530"><a href="#L-3530"><span class="linenos">3530</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-3531"><a href="#L-3531"><span class="linenos">3531</span></a>
-</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a>
-</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</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-3534"><a href="#L-3534"><span class="linenos">3534</span></a> <span class="k">pass</span>
-</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a>
-</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a>
-</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</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-3538"><a href="#L-3538"><span class="linenos">3538</span></a> <span class="k">pass</span>
-</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a>
-</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a>
-</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</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-3542"><a href="#L-3542"><span class="linenos">3542</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-3543"><a href="#L-3543"><span class="linenos">3543</span></a>
-</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a>
-</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a><span class="c1"># Clickhouse-specific:</span>
-</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span>
-</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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-3525"><a href="#L-3525"><span class="linenos">3525</span></a>
+</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</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-3527"><a href="#L-3527"><span class="linenos">3527</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-3528"><a href="#L-3528"><span class="linenos">3528</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a>
+</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a>
+</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</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-3532"><a href="#L-3532"><span class="linenos">3532</span></a> <span class="k">pass</span>
+</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a>
+</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a>
+</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</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-3536"><a href="#L-3536"><span class="linenos">3536</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-3537"><a href="#L-3537"><span class="linenos">3537</span></a>
+</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a>
+</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</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-3540"><a href="#L-3540"><span class="linenos">3540</span></a> <span class="k">pass</span>
+</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a>
+</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a>
+</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</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-3544"><a href="#L-3544"><span class="linenos">3544</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-3545"><a href="#L-3545"><span class="linenos">3545</span></a>
+</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a>
+</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</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-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="k">pass</span>
</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a>
</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a>
-</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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-3551"><a href="#L-3551"><span class="linenos">3551</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-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="k">pass</span>
</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a>
</span><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a>
-</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</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-3556"><a href="#L-3556"><span class="linenos">3556</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-3555"><a href="#L-3555"><span class="linenos">3555</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-3556"><a href="#L-3556"><span class="linenos">3556</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-3557"><a href="#L-3557"><span class="linenos">3557</span></a>
</span><span id="L-3558"><a href="#L-3558"><span class="linenos">3558</span></a>
-</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</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-3560"><a href="#L-3560"><span class="linenos">3560</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-3561"><a href="#L-3561"><span class="linenos">3561</span></a>
-</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a>
-</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</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-3564"><a href="#L-3564"><span class="linenos">3564</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-3565"><a href="#L-3565"><span class="linenos">3565</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</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-3559"><a href="#L-3559"><span class="linenos">3559</span></a><span class="c1"># Clickhouse-specific:</span>
+</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span>
+</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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-3563"><a href="#L-3563"><span class="linenos">3563</span></a>
+</span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a>
+</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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-3567"><a href="#L-3567"><span class="linenos">3567</span></a>
</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a>
-</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</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-3570"><a href="#L-3570"><span class="linenos">3570</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-3569"><a href="#L-3569"><span class="linenos">3569</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-3570"><a href="#L-3570"><span class="linenos">3570</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-3571"><a href="#L-3571"><span class="linenos">3571</span></a>
</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a>
-</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</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-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</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-3576"><a href="#L-3576"><span class="linenos">3576</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-3577"><a href="#L-3577"><span class="linenos">3577</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-3578"><a href="#L-3578"><span class="linenos">3578</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-3579"><a href="#L-3579"><span class="linenos">3579</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-3580"><a href="#L-3580"><span class="linenos">3580</span></a> <span class="p">}</span>
+</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</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-3574"><a href="#L-3574"><span class="linenos">3574</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-3575"><a href="#L-3575"><span class="linenos">3575</span></a>
+</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a>
+</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</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-3578"><a href="#L-3578"><span class="linenos">3578</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-3579"><a href="#L-3579"><span class="linenos">3579</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</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-3581"><a href="#L-3581"><span class="linenos">3581</span></a>
</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a>
-</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</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-3583"><a href="#L-3583"><span class="linenos">3583</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-3584"><a href="#L-3584"><span class="linenos">3584</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-3585"><a href="#L-3585"><span class="linenos">3585</span></a>
</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a>
-</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</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-3588"><a href="#L-3588"><span class="linenos">3588</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-3589"><a href="#L-3589"><span class="linenos">3589</span></a>
-</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a>
-</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</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-3592"><a href="#L-3592"><span class="linenos">3592</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-3593"><a href="#L-3593"><span class="linenos">3593</span></a>
-</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a>
-</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</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-3596"><a href="#L-3596"><span class="linenos">3596</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-3597"><a href="#L-3597"><span class="linenos">3597</span></a>
-</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a>
-</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</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-3600"><a href="#L-3600"><span class="linenos">3600</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-3601"><a href="#L-3601"><span class="linenos">3601</span></a>
-</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a>
-</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</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-3604"><a href="#L-3604"><span class="linenos">3604</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-3605"><a href="#L-3605"><span class="linenos">3605</span></a>
-</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a>
-</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</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-3608"><a href="#L-3608"><span class="linenos">3608</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-3609"><a href="#L-3609"><span class="linenos">3609</span></a>
-</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a>
-</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</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-3612"><a href="#L-3612"><span class="linenos">3612</span></a> <span class="k">pass</span>
-</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a>
-</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a>
-</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</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-3616"><a href="#L-3616"><span class="linenos">3616</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-3617"><a href="#L-3617"><span class="linenos">3617</span></a>
-</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a>
-</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</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-3620"><a href="#L-3620"><span class="linenos">3620</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-3621"><a href="#L-3621"><span class="linenos">3621</span></a>
-</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a>
-</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
-</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
-</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</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-3626"><a href="#L-3626"><span class="linenos">3626</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-3587"><a href="#L-3587"><span class="linenos">3587</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-3588"><a href="#L-3588"><span class="linenos">3588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</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-3590"><a href="#L-3590"><span class="linenos">3590</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-3591"><a href="#L-3591"><span class="linenos">3591</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-3592"><a href="#L-3592"><span class="linenos">3592</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-3593"><a href="#L-3593"><span class="linenos">3593</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-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="p">}</span>
+</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a>
+</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a>
+</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</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-3599"><a href="#L-3599"><span class="linenos">3599</span></a>
+</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a>
+</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</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-3602"><a href="#L-3602"><span class="linenos">3602</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-3603"><a href="#L-3603"><span class="linenos">3603</span></a>
+</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a>
+</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</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-3606"><a href="#L-3606"><span class="linenos">3606</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-3607"><a href="#L-3607"><span class="linenos">3607</span></a>
+</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a>
+</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</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-3610"><a href="#L-3610"><span class="linenos">3610</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-3611"><a href="#L-3611"><span class="linenos">3611</span></a>
+</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a>
+</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</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-3614"><a href="#L-3614"><span class="linenos">3614</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-3615"><a href="#L-3615"><span class="linenos">3615</span></a>
+</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a>
+</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</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-3618"><a href="#L-3618"><span class="linenos">3618</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-3619"><a href="#L-3619"><span class="linenos">3619</span></a>
+</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a>
+</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</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-3622"><a href="#L-3622"><span class="linenos">3622</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-3623"><a href="#L-3623"><span class="linenos">3623</span></a>
+</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a>
+</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</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-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="k">pass</span>
</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a>
</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a>
-</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</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-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</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-3632"><a href="#L-3632"><span class="linenos">3632</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-3633"><a href="#L-3633"><span class="linenos">3633</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-3634"><a href="#L-3634"><span class="linenos">3634</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-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="p">}</span>
+</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</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-3630"><a href="#L-3630"><span class="linenos">3630</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-3631"><a href="#L-3631"><span class="linenos">3631</span></a>
+</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a>
+</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</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-3634"><a href="#L-3634"><span class="linenos">3634</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-3635"><a href="#L-3635"><span class="linenos">3635</span></a>
</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a>
-</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a>
-</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</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-3639"><a href="#L-3639"><span class="linenos">3639</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-3640"><a href="#L-3640"><span class="linenos">3640</span></a>
+</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
+</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
+</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</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-3640"><a href="#L-3640"><span class="linenos">3640</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-3641"><a href="#L-3641"><span class="linenos">3641</span></a>
-</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</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-3643"><a href="#L-3643"><span class="linenos">3643</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-3644"><a href="#L-3644"><span class="linenos">3644</span></a>
-</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a>
-</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a><span class="c1"># Spark allows unix_timestamp()</span>
-</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</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-3648"><a href="#L-3648"><span class="linenos">3648</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-3649"><a href="#L-3649"><span class="linenos">3649</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-3642"><a href="#L-3642"><span class="linenos">3642</span></a>
+</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</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-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</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-3646"><a href="#L-3646"><span class="linenos">3646</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-3647"><a href="#L-3647"><span class="linenos">3647</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-3648"><a href="#L-3648"><span class="linenos">3648</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-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="p">}</span>
</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a>
</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a>
-</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</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-3652"><a href="#L-3652"><span class="linenos">3652</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-3653"><a href="#L-3653"><span class="linenos">3653</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-3654"><a href="#L-3654"><span class="linenos">3654</span></a>
</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a>
-</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</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-3657"><a href="#L-3657"><span class="linenos">3657</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-3658"><a href="#L-3658"><span class="linenos">3658</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</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-3657"><a href="#L-3657"><span class="linenos">3657</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-3658"><a href="#L-3658"><span class="linenos">3658</span></a>
</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a>
-</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a>
-</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</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-3662"><a href="#L-3662"><span class="linenos">3662</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-3663"><a href="#L-3663"><span class="linenos">3663</span></a>
+</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a><span class="c1"># Spark allows unix_timestamp()</span>
+</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</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-3662"><a href="#L-3662"><span class="linenos">3662</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-3663"><a href="#L-3663"><span class="linenos">3663</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-3664"><a href="#L-3664"><span class="linenos">3664</span></a>
-</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</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-3666"><a href="#L-3666"><span class="linenos">3666</span></a> <span class="k">pass</span>
-</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a>
+</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a>
+</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</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-3667"><a href="#L-3667"><span class="linenos">3667</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-3668"><a href="#L-3668"><span class="linenos">3668</span></a>
-</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</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-3670"><a href="#L-3670"><span class="linenos">3670</span></a> <span class="k">pass</span>
-</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a>
-</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a>
-</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</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-3674"><a href="#L-3674"><span class="linenos">3674</span></a> <span class="k">pass</span>
-</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a>
-</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a>
-</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</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-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="k">pass</span>
-</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a>
-</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a>
-</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</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-3682"><a href="#L-3682"><span class="linenos">3682</span></a> <span class="k">pass</span>
-</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a>
-</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a>
-</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</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-3686"><a href="#L-3686"><span class="linenos">3686</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-3687"><a href="#L-3687"><span class="linenos">3687</span></a>
-</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a>
-</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</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-3690"><a href="#L-3690"><span class="linenos">3690</span></a> <span class="k">pass</span>
-</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a>
-</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a>
-</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</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-3694"><a href="#L-3694"><span class="linenos">3694</span></a> <span class="k">pass</span>
-</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a>
-</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a>
-</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</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-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="k">pass</span>
-</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a>
-</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a>
-</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</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-3702"><a href="#L-3702"><span class="linenos">3702</span></a> <span class="k">pass</span>
-</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a>
-</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a>
-</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</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-3706"><a href="#L-3706"><span class="linenos">3706</span></a> <span class="k">pass</span>
-</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a>
-</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a>
-</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</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-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</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-3712"><a href="#L-3712"><span class="linenos">3712</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-3713"><a href="#L-3713"><span class="linenos">3713</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-3714"><a href="#L-3714"><span class="linenos">3714</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-3715"><a href="#L-3715"><span class="linenos">3715</span></a> <span class="p">}</span>
-</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a>
+</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a>
+</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</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-3671"><a href="#L-3671"><span class="linenos">3671</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-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a>
+</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a>
+</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</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-3676"><a href="#L-3676"><span class="linenos">3676</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-3677"><a href="#L-3677"><span class="linenos">3677</span></a>
+</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a>
+</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</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-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="k">pass</span>
+</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a>
+</span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a>
+</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</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-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="k">pass</span>
+</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a>
+</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a>
+</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</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-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="k">pass</span>
+</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a>
+</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a>
+</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</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-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="k">pass</span>
+</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a>
+</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a>
+</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</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-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="k">pass</span>
+</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a>
+</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a>
+</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</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-3700"><a href="#L-3700"><span class="linenos">3700</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-3701"><a href="#L-3701"><span class="linenos">3701</span></a>
+</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a>
+</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</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-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="k">pass</span>
+</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a>
+</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a>
+</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</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-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="k">pass</span>
+</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a>
+</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a>
+</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</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-3712"><a href="#L-3712"><span class="linenos">3712</span></a> <span class="k">pass</span>
+</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a>
+</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a>
+</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</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-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="k">pass</span>
</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a>
-</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</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-3719"><a href="#L-3719"><span class="linenos">3719</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-3720"><a href="#L-3720"><span class="linenos">3720</span></a>
+</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a>
+</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</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-3720"><a href="#L-3720"><span class="linenos">3720</span></a> <span class="k">pass</span>
</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a>
-</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</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-3723"><a href="#L-3723"><span class="linenos">3723</span></a> <span class="k">pass</span>
-</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a>
-</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a>
-</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</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-3727"><a href="#L-3727"><span class="linenos">3727</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-3728"><a href="#L-3728"><span class="linenos">3728</span></a>
-</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a>
-</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</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-3731"><a href="#L-3731"><span class="linenos">3731</span></a> <span class="k">pass</span>
-</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a>
-</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a>
-</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</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-3735"><a href="#L-3735"><span class="linenos">3735</span></a> <span class="k">pass</span>
-</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a>
-</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a>
-</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</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-3739"><a href="#L-3739"><span class="linenos">3739</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-3740"><a href="#L-3740"><span class="linenos">3740</span></a>
-</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a>
-</span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
-</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
-</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</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-3745"><a href="#L-3745"><span class="linenos">3745</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-3722"><a href="#L-3722"><span class="linenos">3722</span></a>
+</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</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-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</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-3726"><a href="#L-3726"><span class="linenos">3726</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-3727"><a href="#L-3727"><span class="linenos">3727</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-3728"><a href="#L-3728"><span class="linenos">3728</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-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="p">}</span>
+</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a>
+</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a>
+</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</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-3733"><a href="#L-3733"><span class="linenos">3733</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-3734"><a href="#L-3734"><span class="linenos">3734</span></a>
+</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a>
+</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</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-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="k">pass</span>
+</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a>
+</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a>
+</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</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-3741"><a href="#L-3741"><span class="linenos">3741</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-3742"><a href="#L-3742"><span class="linenos">3742</span></a>
+</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a>
+</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</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-3745"><a href="#L-3745"><span class="linenos">3745</span></a> <span class="k">pass</span>
</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a>
-</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</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-3748"><a href="#L-3748"><span class="linenos">3748</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-3749"><a href="#L-3749"><span class="linenos">3749</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-3747"><a href="#L-3747"><span class="linenos">3747</span></a>
+</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</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-3749"><a href="#L-3749"><span class="linenos">3749</span></a> <span class="k">pass</span>
</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a>
</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a>
-</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</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-3753"><a href="#L-3753"><span class="linenos">3753</span></a> <span class="k">pass</span>
+</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</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-3753"><a href="#L-3753"><span class="linenos">3753</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-3754"><a href="#L-3754"><span class="linenos">3754</span></a>
</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a>
-</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</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-3757"><a href="#L-3757"><span class="linenos">3757</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-3758"><a href="#L-3758"><span class="linenos">3758</span></a>
-</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a>
-</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</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-3761"><a href="#L-3761"><span class="linenos">3761</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-3762"><a href="#L-3762"><span class="linenos">3762</span></a>
-</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a>
-</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</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-3765"><a href="#L-3765"><span class="linenos">3765</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-3766"><a href="#L-3766"><span class="linenos">3766</span></a>
-</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a>
-</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</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-3769"><a href="#L-3769"><span class="linenos">3769</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-3770"><a href="#L-3770"><span class="linenos">3770</span></a>
-</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a>
-</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</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-3773"><a href="#L-3773"><span class="linenos">3773</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-3774"><a href="#L-3774"><span class="linenos">3774</span></a>
-</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a>
-</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</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-3777"><a href="#L-3777"><span class="linenos">3777</span></a> <span class="k">pass</span>
-</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a>
-</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a>
-</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</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-3781"><a href="#L-3781"><span class="linenos">3781</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-3782"><a href="#L-3782"><span class="linenos">3782</span></a>
-</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a>
-</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</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-3785"><a href="#L-3785"><span class="linenos">3785</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-3786"><a href="#L-3786"><span class="linenos">3786</span></a>
-</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a>
-</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</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-3789"><a href="#L-3789"><span class="linenos">3789</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-3790"><a href="#L-3790"><span class="linenos">3790</span></a>
-</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a>
-</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a><span class="k">def</span> <span class="nf">_norm_args</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a>
-</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">arg</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-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="p">[</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">arg</span><span class="p">]</span>
-</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">arg</span><span class="p">:</span>
-</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a>
-</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span><span class="p">:</span>
-</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a> <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">arg</span>
+</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
+</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
+</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</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-3759"><a href="#L-3759"><span class="linenos">3759</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-3760"><a href="#L-3760"><span class="linenos">3760</span></a>
+</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</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-3762"><a href="#L-3762"><span class="linenos">3762</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-3763"><a href="#L-3763"><span class="linenos">3763</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-3764"><a href="#L-3764"><span class="linenos">3764</span></a>
+</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a>
+</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</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-3767"><a href="#L-3767"><span class="linenos">3767</span></a> <span class="k">pass</span>
+</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a>
+</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a>
+</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</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-3771"><a href="#L-3771"><span class="linenos">3771</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-3772"><a href="#L-3772"><span class="linenos">3772</span></a>
+</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a>
+</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</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-3775"><a href="#L-3775"><span class="linenos">3775</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-3776"><a href="#L-3776"><span class="linenos">3776</span></a>
+</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a>
+</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</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-3779"><a href="#L-3779"><span class="linenos">3779</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-3780"><a href="#L-3780"><span class="linenos">3780</span></a>
+</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a>
+</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</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-3783"><a href="#L-3783"><span class="linenos">3783</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-3784"><a href="#L-3784"><span class="linenos">3784</span></a>
+</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a>
+</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</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-3787"><a href="#L-3787"><span class="linenos">3787</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-3788"><a href="#L-3788"><span class="linenos">3788</span></a>
+</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a>
+</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</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-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="k">pass</span>
+</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a>
+</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a>
+</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</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-3795"><a href="#L-3795"><span class="linenos">3795</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-3796"><a href="#L-3796"><span class="linenos">3796</span></a>
+</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a>
+</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</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-3799"><a href="#L-3799"><span class="linenos">3799</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-3800"><a href="#L-3800"><span class="linenos">3800</span></a>
+</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a>
+</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</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-3803"><a href="#L-3803"><span class="linenos">3803</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-3804"><a href="#L-3804"><span class="linenos">3804</span></a>
</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a>
-</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="k">return</span> <span class="n">args</span>
-</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a>
+</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a><span class="k">def</span> <span class="nf">_norm_args</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
+</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a>
-</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</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-3810"><a href="#L-3810"><span class="linenos">3810</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">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="n">arg</span>
-</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a>
-</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a>
-</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</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-3814"><a href="#L-3814"><span class="linenos">3814</span></a>
-</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a>
-</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a><span class="c1"># Helpers</span>
-</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</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">Expression</span><span class="p">,</span>
-</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</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-3821"><a href="#L-3821"><span class="linenos">3821</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-3822"><a href="#L-3822"><span class="linenos">3822</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-3823"><a href="#L-3823"><span class="linenos">3823</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-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
-</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a>
-</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a><span class="sd"> Example:</span>
-</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a>
-</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a><span class="sd"> Args:</span>
-</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a>
-</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</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-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</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-3851"><a href="#L-3851"><span class="linenos">3851</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a>
-</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a>
-</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</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-3856"><a href="#L-3856"><span class="linenos">3856</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</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-3858"><a href="#L-3858"><span class="linenos">3858</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-3859"><a href="#L-3859"><span class="linenos">3859</span></a>
-</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a>
-</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</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-3862"><a href="#L-3862"><span class="linenos">3862</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
-</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a>
-</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a>
-</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</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-3866"><a href="#L-3866"><span class="linenos">3866</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-3867"><a href="#L-3867"><span class="linenos">3867</span></a>
+</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">arg</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-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="p">[</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">arg</span><span class="p">]</span>
+</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">arg</span><span class="p">:</span>
+</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a>
+</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span><span class="p">:</span>
+</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <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">arg</span>
+</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a>
+</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="k">return</span> <span class="n">args</span>
+</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a>
+</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a>
+</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</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-3824"><a href="#L-3824"><span class="linenos">3824</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">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="n">arg</span>
+</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a>
+</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a>
+</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</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-3828"><a href="#L-3828"><span class="linenos">3828</span></a>
+</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a>
+</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a><span class="c1"># Helpers</span>
+</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</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">Expression</span><span class="p">,</span>
+</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</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-3835"><a href="#L-3835"><span class="linenos">3835</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-3836"><a href="#L-3836"><span class="linenos">3836</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-3837"><a href="#L-3837"><span class="linenos">3837</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-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a>
+</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a><span class="sd"> Example:</span>
+</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a>
+</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a><span class="sd"> Args:</span>
+</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a>
+</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</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-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</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-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a>
+</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a>
-</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a><span class="p">):</span>
-</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</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-3880"><a href="#L-3880"><span class="linenos">3880</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
-</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</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-3882"><a href="#L-3882"><span class="linenos">3882</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-3883"><a href="#L-3883"><span class="linenos">3883</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-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="p">)</span>
-</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</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-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a>
-</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a>
-</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a><span class="p">):</span>
-</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</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-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</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-3908"><a href="#L-3908"><span class="linenos">3908</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-3909"><a href="#L-3909"><span class="linenos">3909</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-3910"><a href="#L-3910"><span class="linenos">3910</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-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="p">)</span>
-</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</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-3918"><a href="#L-3918"><span class="linenos">3918</span></a>
-</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</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-3920"><a href="#L-3920"><span class="linenos">3920</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-3921"><a href="#L-3921"><span class="linenos">3921</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-3922"><a href="#L-3922"><span class="linenos">3922</span></a>
-</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</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-3924"><a href="#L-3924"><span class="linenos">3924</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-3925"><a href="#L-3925"><span class="linenos">3925</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-3926"><a href="#L-3926"><span class="linenos">3926</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-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a>
-</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a>
-</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a><span class="p">):</span>
-</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</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-3869"><a href="#L-3869"><span class="linenos">3869</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-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</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-3872"><a href="#L-3872"><span class="linenos">3872</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-3873"><a href="#L-3873"><span class="linenos">3873</span></a>
+</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a>
+</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</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-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a>
+</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a>
+</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</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-3880"><a href="#L-3880"><span class="linenos">3880</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-3881"><a href="#L-3881"><span class="linenos">3881</span></a>
+</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a>
+</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a><span class="p">):</span>
+</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</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-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
+</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</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-3896"><a href="#L-3896"><span class="linenos">3896</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-3897"><a href="#L-3897"><span class="linenos">3897</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-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="p">)</span>
+</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</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-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a>
+</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a>
+</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a><span class="p">):</span>
+</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</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-3920"><a href="#L-3920"><span class="linenos">3920</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</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-3922"><a href="#L-3922"><span class="linenos">3922</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-3923"><a href="#L-3923"><span class="linenos">3923</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-3924"><a href="#L-3924"><span class="linenos">3924</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-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="p">)</span>
+</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</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-3932"><a href="#L-3932"><span class="linenos">3932</span></a>
+</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</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-3934"><a href="#L-3934"><span class="linenos">3934</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-3935"><a href="#L-3935"><span class="linenos">3935</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-3936"><a href="#L-3936"><span class="linenos">3936</span></a>
+</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</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-3938"><a href="#L-3938"><span class="linenos">3938</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-3939"><a href="#L-3939"><span class="linenos">3939</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-3940"><a href="#L-3940"><span class="linenos">3940</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-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a>
-</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</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-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a> <span class="p">)</span>
-</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</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-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="p">]</span>
-</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a>
-</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</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-3955"><a href="#L-3955"><span class="linenos">3955</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-3956"><a href="#L-3956"><span class="linenos">3956</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-3957"><a href="#L-3957"><span class="linenos">3957</span></a>
-</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</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-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a>
-</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a>
-</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a><span class="p">):</span>
-</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</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-3973"><a href="#L-3973"><span class="linenos">3973</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-3974"><a href="#L-3974"><span class="linenos">3974</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a>
+</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a><span class="p">):</span>
+</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</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-3956"><a href="#L-3956"><span class="linenos">3956</span></a>
+</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</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-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="p">)</span>
+</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</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-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="p">]</span>
+</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a>
+</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</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-3969"><a href="#L-3969"><span class="linenos">3969</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-3970"><a href="#L-3970"><span class="linenos">3970</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-3971"><a href="#L-3971"><span class="linenos">3971</span></a>
+</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</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-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a>
</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a>
-</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</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-3977"><a href="#L-3977"><span class="linenos">3977</span></a>
-</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</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-3979"><a href="#L-3979"><span class="linenos">3979</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-3980"><a href="#L-3980"><span class="linenos">3980</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-3981"><a href="#L-3981"><span class="linenos">3981</span></a>
-</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a>
-</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</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-3985"><a href="#L-3985"><span class="linenos">3985</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a>
-</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a>
-</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</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><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><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="o">**</span><span class="n">opts</span><span class="p">)</span> <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-3990"><a href="#L-3990"><span class="linenos">3990</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
-</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
-</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</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 class="mi">1</span><span class="p">:]:</span>
-</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</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_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span>
-</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a>
+</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a><span class="p">):</span>
+</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</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-3987"><a href="#L-3987"><span class="linenos">3987</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-3988"><a href="#L-3988"><span class="linenos">3988</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a>
+</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</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-3991"><a href="#L-3991"><span class="linenos">3991</span></a>
+</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</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-3993"><a href="#L-3993"><span class="linenos">3993</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-3994"><a href="#L-3994"><span class="linenos">3994</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-3995"><a href="#L-3995"><span class="linenos">3995</span></a>
+</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</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="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a>
-</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a><span class="k">def</span> <span class="nf">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">Not</span><span class="p">)):</span>
-</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a> <span class="n">expression</span> <span class="o">=</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><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a>
-</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a>
-</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a>
-</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a><span class="sd"> Example:</span>
-</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</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-4010"><a href="#L-4010"><span class="linenos">4010</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</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-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a>
+</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a>
+</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><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="o">**</span><span class="n">opts</span><span class="p">)</span> <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-4004"><a href="#L-4004"><span class="linenos">4004</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
+</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
+</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</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 class="mi">1</span><span class="p">:]:</span>
+</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</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_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span>
+</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a>
</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a>
-</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a><span class="sd"> Args:</span>
-</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
-</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</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-4024"><a href="#L-4024"><span class="linenos">4024</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-4012"><a href="#L-4012"><span class="linenos">4012</span></a><span class="k">def</span> <span class="nf">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
+</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">Not</span><span class="p">)):</span>
+</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="n">expression</span> <span class="o">=</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><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a>
+</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a>
+</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a>
+</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a><span class="sd"> Example:</span>
+</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</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-4024"><a href="#L-4024"><span class="linenos">4024</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a>
-</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</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-4027"><a href="#L-4027"><span class="linenos">4027</span></a>
-</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a>
-</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a>
-</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a><span class="sd"> Example:</span>
-</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</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-4035"><a href="#L-4035"><span class="linenos">4035</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a>
-</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a><span class="sd"> Args:</span>
-</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
-</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</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-4049"><a href="#L-4049"><span class="linenos">4049</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-4026"><a href="#L-4026"><span class="linenos">4026</span></a><span class="sd"> Args:</span>
+</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
+</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</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-4038"><a href="#L-4038"><span class="linenos">4038</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-4039"><a href="#L-4039"><span class="linenos">4039</span></a>
+</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</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-4041"><a href="#L-4041"><span class="linenos">4041</span></a>
+</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a>
+</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a>
+</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a><span class="sd"> Example:</span>
+</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</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-4049"><a href="#L-4049"><span class="linenos">4049</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a>
-</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</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-4052"><a href="#L-4052"><span class="linenos">4052</span></a>
-</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a>
-</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a>
-</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="sd"> Example:</span>
-</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</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-4060"><a href="#L-4060"><span class="linenos">4060</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a>
-</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a><span class="sd"> Args:</span>
-</span><span id="L-4063"><a href="#L-4063"><span class="linenos">4063</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-4064"><a href="#L-4064"><span class="linenos">4064</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4065"><a href="#L-4065"><span class="linenos">4065</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
-</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</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-4074"><a href="#L-4074"><span class="linenos">4074</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-4051"><a href="#L-4051"><span class="linenos">4051</span></a><span class="sd"> Args:</span>
+</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
+</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</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-4063"><a href="#L-4063"><span class="linenos">4063</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-4064"><a href="#L-4064"><span class="linenos">4064</span></a>
+</span><span id="L-4065"><a href="#L-4065"><span class="linenos">4065</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-4066"><a href="#L-4066"><span class="linenos">4066</span></a>
+</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a>
+</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a>
+</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a><span class="sd"> Example:</span>
+</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</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-4074"><a href="#L-4074"><span class="linenos">4074</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a>
-</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</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-4077"><a href="#L-4077"><span class="linenos">4077</span></a>
-</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a>
-</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4080"><a href="#L-4080"><span class="linenos">4080</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a>
-</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a><span class="sd"> Example:</span>
-</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</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-4085"><a href="#L-4085"><span class="linenos">4085</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a>
-</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a><span class="sd"> Args:</span>
-</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-4089"><a href="#L-4089"><span class="linenos">4089</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</span></a>
-</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</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-4099"><a href="#L-4099"><span class="linenos">4099</span></a>
+</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a><span class="sd"> Args:</span>
+</span><span id="L-4077"><a href="#L-4077"><span class="linenos">4077</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
+</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</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-4088"><a href="#L-4088"><span class="linenos">4088</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-4089"><a href="#L-4089"><span class="linenos">4089</span></a>
+</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</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-4091"><a href="#L-4091"><span class="linenos">4091</span></a>
+</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a>
+</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4094"><a href="#L-4094"><span class="linenos">4094</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a>
+</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a><span class="sd"> Example:</span>
+</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</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-4099"><a href="#L-4099"><span class="linenos">4099</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a>
-</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a><span class="k">def</span> <span class="nf">from_</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="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-4102"><a href="#L-4102"><span class="linenos">4102</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a>
-</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a><span class="sd"> Example:</span>
-</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</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-4107"><a href="#L-4107"><span class="linenos">4107</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a><span class="sd"> Args:</span>
+</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a>
-</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a><span class="sd"> Args:</span>
-</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-4116"><a href="#L-4116"><span class="linenos">4116</span></a>
-</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</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="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-4121"><a href="#L-4121"><span class="linenos">4121</span></a>
+</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</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-4113"><a href="#L-4113"><span class="linenos">4113</span></a>
+</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a>
+</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a><span class="k">def</span> <span class="nf">from_</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="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-4116"><a href="#L-4116"><span class="linenos">4116</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a>
+</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a><span class="sd"> Example:</span>
+</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</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-4121"><a href="#L-4121"><span class="linenos">4121</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</span></a>
-</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Update</span><span class="p">:</span>
-</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a>
-</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="sd"> Example:</span>
-</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</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-4129"><a href="#L-4129"><span class="linenos">4129</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-4123"><a href="#L-4123"><span class="linenos">4123</span></a><span class="sd"> Args:</span>
+</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a><span class="sd"> that the input expression is a SQL string).</span>
</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a>
-</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a><span class="sd"> Args:</span>
-</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a><span class="sd"> *properties (Dict[str, Any]): dictionary of properties to set which are</span>
-</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a><span class="sd"> where (str): sql conditional parsed into a WHERE statement</span>
-</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a><span class="sd"> from_ (str): sql statement parsed into a FROM statement</span>
-</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a>
-</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a> <span class="n">update</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-4143"><a href="#L-4143"><span class="linenos">4143</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-4144"><a href="#L-4144"><span class="linenos">4144</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a> <span class="p">[</span>
-</span><span id="L-4146"><a href="#L-4146"><span class="linenos">4146</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-4147"><a href="#L-4147"><span class="linenos">4147</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-4148"><a href="#L-4148"><span class="linenos">4148</span></a> <span class="p">],</span>
-</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a> <span class="p">)</span>
-</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</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-4154"><a href="#L-4154"><span class="linenos">4154</span></a> <span class="p">)</span>
-</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</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-4156"><a href="#L-4156"><span class="linenos">4156</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-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</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-4161"><a href="#L-4161"><span class="linenos">4161</span></a> <span class="p">)</span>
-</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a> <span class="k">return</span> <span class="n">update</span>
-</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a>
-</span><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a>
-</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Delete</span><span class="p">:</span>
-</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="L-4168"><a href="#L-4168"><span class="linenos">4168</span></a>
-</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</span></a><span class="sd"> Example:</span>
-</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</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-4171"><a href="#L-4171"><span class="linenos">4171</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a>
-</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a><span class="sd"> Args:</span>
-</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a><span class="sd"> where (str|Condition): sql conditional parsed into a WHERE statement</span>
-</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</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="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-4135"><a href="#L-4135"><span class="linenos">4135</span></a>
+</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a>
+</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Update</span><span class="p">:</span>
+</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></a>
+</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a><span class="sd"> Example:</span>
+</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</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-4143"><a href="#L-4143"><span class="linenos">4143</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-4144"><a href="#L-4144"><span class="linenos">4144</span></a>
+</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a><span class="sd"> Args:</span>
+</span><span id="L-4146"><a href="#L-4146"><span class="linenos">4146</span></a><span class="sd"> *properties (Dict[str, Any]): dictionary of properties to set which are</span>
+</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a><span class="sd"> where (str): sql conditional parsed into a WHERE statement</span>
+</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a><span class="sd"> from_ (str): sql statement parsed into a FROM statement</span>
+</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a>
+</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a> <span class="n">update</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-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="p">[</span>
+</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</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-4161"><a href="#L-4161"><span class="linenos">4161</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-4162"><a href="#L-4162"><span class="linenos">4162</span></a> <span class="p">],</span>
+</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a> <span class="p">)</span>
+</span><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</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-4168"><a href="#L-4168"><span class="linenos">4168</span></a> <span class="p">)</span>
+</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</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-4170"><a href="#L-4170"><span class="linenos">4170</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-4171"><a href="#L-4171"><span class="linenos">4171</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</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-4175"><a href="#L-4175"><span class="linenos">4175</span></a> <span class="p">)</span>
+</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a> <span class="k">return</span> <span class="n">update</span>
</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a>
-</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a> <span class="k">return</span> <span class="n">Delete</span><span class="p">(</span>
-</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a> <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 class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</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-4184"><a href="#L-4184"><span class="linenos">4184</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-4185"><a href="#L-4185"><span class="linenos">4185</span></a> <span class="k">else</span> <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-4186"><a href="#L-4186"><span class="linenos">4186</span></a> <span class="p">)</span>
-</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a>
-</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a>
-</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a><span class="k">def</span> <span class="nf">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="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">Condition</span><span class="p">:</span>
-</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a>
-</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a><span class="sd"> Example:</span>
-</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a>
-</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a>
+</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Delete</span><span class="p">:</span>
+</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a>
+</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a><span class="sd"> Example:</span>
+</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</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-4185"><a href="#L-4185"><span class="linenos">4185</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</span></a>
+</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a><span class="sd"> Args:</span>
+</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a><span class="sd"> where (str|Condition): sql conditional parsed into a WHERE statement</span>
+</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a>
+</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a> <span class="k">return</span> <span class="n">Delete</span><span class="p">(</span>
+</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a> <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 class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</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-4198"><a href="#L-4198"><span class="linenos">4198</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-4199"><a href="#L-4199"><span class="linenos">4199</span></a> <span class="k">else</span> <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-4200"><a href="#L-4200"><span class="linenos">4200</span></a> <span class="p">)</span>
+</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a>
</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a>
-</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a><span class="sd"> Args:</span>
-</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a><span class="k">def</span> <span class="nf">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="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">Condition</span><span class="p">:</span>
+</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a>
+</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a><span class="sd"> Example:</span>
+</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a><span class="sd"> &#39;x = 1&#39;</span>
</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</span></a>
-</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a><span class="sd"> Condition: the expression</span>
-</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
-</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4219"><a href="#L-4219"><span class="linenos">4219</span></a> <span class="p">)</span>
-</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a>
-</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a>
-</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a><span class="k">def</span> <span class="nf">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="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">And</span><span class="p">:</span>
-</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a>
-</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="sd"> Example:</span>
-</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</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-4228"><a href="#L-4228"><span class="linenos">4228</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a>
-</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a><span class="sd"> Args:</span>
-</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a>
+</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a><span class="sd"> Args:</span>
+</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="L-4219"><a href="#L-4219"><span class="linenos">4219</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a>
+</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="sd"> Condition: the expression</span>
+</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
+</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a> <span class="p">)</span>
+</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a>
</span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a>
-</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a>
-</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a>
-</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="k">def</span> <span class="nf">or_</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="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">Or</span><span class="p">:</span>
-</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a>
-</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a><span class="sd"> Example:</span>
-</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</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-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a><span class="k">def</span> <span class="nf">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="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">And</span><span class="p">:</span>
+</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a>
+</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a><span class="sd"> Example:</span>
+</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</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-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a>
+</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a><span class="sd"> Args:</span>
+</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a>
-</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a><span class="sd"> Args:</span>
-</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a><span class="sd"> And: the new condition</span>
+</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a>
</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a>
-</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a>
-</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a>
-</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</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">dialect</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">Not</span><span class="p">:</span>
-</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a>
-</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="sd"> Example:</span>
-</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a><span class="k">def</span> <span class="nf">or_</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="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">Or</span><span class="p">:</span>
+</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a>
+</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a><span class="sd"> Example:</span>
+</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</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-4262"><a href="#L-4262"><span class="linenos">4262</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a>
+</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a><span class="sd"> Args:</span>
+</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a>
-</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="sd"> Args:</span>
-</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a>
</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a>
-</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a><span class="sd"> Not: the new condition</span>
-</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a> <span class="p">)</span>
-</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</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_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
-</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a>
-</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 class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</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><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</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">dialect</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">Not</span><span class="p">:</span>
+</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a>
+</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a><span class="sd"> Example:</span>
+</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a>
+</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a><span class="sd"> Args:</span>
+</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a>
-</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="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-4292"><a href="#L-4292"><span class="linenos">4292</span></a>
-</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a>
-</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</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="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a> <span class="o">...</span>
-</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a>
-</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</span></a>
-</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</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="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="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a> <span class="o">...</span>
-</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a>
+</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a><span class="sd"> Not: the new condition</span>
+</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a> <span class="p">)</span>
+</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</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_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
+</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a>
+</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a>
+</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</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="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</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><span id="L-4303"><a href="#L-4303"><span class="linenos">4303</span></a>
-</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</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><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</span></a>
+</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</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-4306"><a href="#L-4306"><span class="linenos">4306</span></a>
-</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a><span class="sd"> Args:</span>
-</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a>
-</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a>
-</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</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-4316"><a href="#L-4316"><span class="linenos">4316</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a>
+</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</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="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a> <span class="o">...</span>
+</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a>
+</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a>
+</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</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="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="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a> <span class="o">...</span>
+</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a>
</span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a>
-</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</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-4319"><a href="#L-4319"><span class="linenos">4319</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
-</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</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-4321"><a href="#L-4321"><span class="linenos">4321</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</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-4324"><a href="#L-4324"><span class="linenos">4324</span></a> <span class="p">)</span>
-</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</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-4327"><a href="#L-4327"><span class="linenos">4327</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</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><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a>
+</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a><span class="sd"> Args:</span>
+</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="L-4324"><a href="#L-4324"><span class="linenos">4324</span></a>
+</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4328"><a href="#L-4328"><span class="linenos">4328</span></a>
-</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</span></a>
-</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</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-4329"><a href="#L-4329"><span class="linenos">4329</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-4330"><a href="#L-4330"><span class="linenos">4330</span></a> <span class="k">return</span> <span class="kc">None</span>
</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a>
-</span><span id="L-4332"><a href="#L-4332"><span class="linenos">4332</span></a>
-</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</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-4334"><a href="#L-4334"><span class="linenos">4334</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-4335"><a href="#L-4335"><span class="linenos">4335</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-4336"><a href="#L-4336"><span class="linenos">4336</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-4337"><a href="#L-4337"><span class="linenos">4337</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-4338"><a href="#L-4338"><span class="linenos">4338</span></a>
-</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</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-4340"><a href="#L-4340"><span class="linenos">4340</span></a>
-</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</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-4332"><a href="#L-4332"><span class="linenos">4332</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-4333"><a href="#L-4333"><span class="linenos">4333</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
+</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</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-4335"><a href="#L-4335"><span class="linenos">4335</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</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-4338"><a href="#L-4338"><span class="linenos">4338</span></a> <span class="p">)</span>
+</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</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-4341"><a href="#L-4341"><span class="linenos">4341</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a>
-</span><span id="L-4343"><a href="#L-4343"><span class="linenos">4343</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-4344"><a href="#L-4344"><span class="linenos">4344</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-4343"><a href="#L-4343"><span class="linenos">4343</span></a>
+</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</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-4345"><a href="#L-4345"><span class="linenos">4345</span></a>
-</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</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-4348"><a href="#L-4348"><span class="linenos">4348</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-4349"><a href="#L-4349"><span class="linenos">4349</span></a> <span class="p">)</span>
-</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a>
-</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a>
-</span><span id="L-4352"><a href="#L-4352"><span class="linenos">4352</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</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-4354"><a href="#L-4354"><span class="linenos">4354</span></a> <span class="o">...</span>
-</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a>
+</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a>
+</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</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-4348"><a href="#L-4348"><span class="linenos">4348</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-4349"><a href="#L-4349"><span class="linenos">4349</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-4350"><a href="#L-4350"><span class="linenos">4350</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-4351"><a href="#L-4351"><span class="linenos">4351</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-4352"><a href="#L-4352"><span class="linenos">4352</span></a>
+</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</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-4354"><a href="#L-4354"><span class="linenos">4354</span></a>
+</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</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-4356"><a href="#L-4356"><span class="linenos">4356</span></a>
-</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</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-4359"><a href="#L-4359"><span class="linenos">4359</span></a> <span class="o">...</span>
-</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a>
-</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a>
-</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</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="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="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</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-4365"><a href="#L-4365"><span class="linenos">4365</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a>
-</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a><span class="sd"> Args:</span>
-</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</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-4358"><a href="#L-4358"><span class="linenos">4358</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-4359"><a href="#L-4359"><span class="linenos">4359</span></a>
+</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</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-4362"><a href="#L-4362"><span class="linenos">4362</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-4363"><a href="#L-4363"><span class="linenos">4363</span></a> <span class="p">)</span>
+</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a>
+</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a>
+</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</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-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="o">...</span>
</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</span></a>
-</span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</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-4374"><a href="#L-4374"><span class="linenos">4374</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</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-4376"><a href="#L-4376"><span class="linenos">4376</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-4377"><a href="#L-4377"><span class="linenos">4377</span></a>
-</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
-</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a>
+</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</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-4373"><a href="#L-4373"><span class="linenos">4373</span></a> <span class="o">...</span>
+</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</span></a>
+</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a>
+</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</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="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="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</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-4379"><a href="#L-4379"><span class="linenos">4379</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a>
-</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a>
-</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</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-4383"><a href="#L-4383"><span class="linenos">4383</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a>
-</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a>
-</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a><span class="sd"> Args:</span>
-</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</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-4394"><a href="#L-4394"><span class="linenos">4394</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</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-4396"><a href="#L-4396"><span class="linenos">4396</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-4397"><a href="#L-4397"><span class="linenos">4397</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
-</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a><span class="sd"> Args:</span>
+</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a>
+</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</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-4388"><a href="#L-4388"><span class="linenos">4388</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</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-4390"><a href="#L-4390"><span class="linenos">4390</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-4391"><a href="#L-4391"><span class="linenos">4391</span></a>
+</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
+</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a>
+</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</span></a>
+</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</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-4397"><a href="#L-4397"><span class="linenos">4397</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
</span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a>
-</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a>
-</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</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-4404"><a href="#L-4404"><span class="linenos">4404</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-4405"><a href="#L-4405"><span class="linenos">4405</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-4406"><a href="#L-4406"><span class="linenos">4406</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-4407"><a href="#L-4407"><span class="linenos">4407</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</span></a><span class="p">):</span>
-</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a>
-</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a><span class="sd"> Example:</span>
-</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a>
+</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a><span class="sd"> Args:</span>
+</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</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-4408"><a href="#L-4408"><span class="linenos">4408</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</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-4410"><a href="#L-4410"><span class="linenos">4410</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-4411"><a href="#L-4411"><span class="linenos">4411</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
+</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a>
</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a>
-</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</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-4416"><a href="#L-4416"><span class="linenos">4416</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</span></a>
-</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a><span class="sd"> Args:</span>
-</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-4420"><a href="#L-4420"><span class="linenos">4420</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-4423"><a href="#L-4423"><span class="linenos">4423</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-4424"><a href="#L-4424"><span class="linenos">4424</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a>
-</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</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-4433"><a href="#L-4433"><span class="linenos">4433</span></a>
-</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</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-4436"><a href="#L-4436"><span class="linenos">4436</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-4437"><a href="#L-4437"><span class="linenos">4437</span></a>
-</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</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-4439"><a href="#L-4439"><span class="linenos">4439</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-4440"><a href="#L-4440"><span class="linenos">4440</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-4415"><a href="#L-4415"><span class="linenos">4415</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</span></a> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</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-4418"><a href="#L-4418"><span class="linenos">4418</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-4419"><a href="#L-4419"><span class="linenos">4419</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-4420"><a href="#L-4420"><span class="linenos">4420</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-4421"><a href="#L-4421"><span class="linenos">4421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a><span class="p">):</span>
+</span><span id="L-4423"><a href="#L-4423"><span class="linenos">4423</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="L-4424"><a href="#L-4424"><span class="linenos">4424</span></a>
+</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a><span class="sd"> Example:</span>
+</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a>
+</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</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-4430"><a href="#L-4430"><span class="linenos">4430</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a>
+</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a><span class="sd"> Args:</span>
+</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</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-4438"><a href="#L-4438"><span class="linenos">4438</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a>
-</span><span id="L-4442"><a href="#L-4442"><span class="linenos">4442</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a>
-</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</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-4445"><a href="#L-4445"><span class="linenos">4445</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-4446"><a href="#L-4446"><span class="linenos">4446</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</span></a> <span class="c1">#</span>
-</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</span></a>
-</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</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-4451"><a href="#L-4451"><span class="linenos">4451</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</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-4453"><a href="#L-4453"><span class="linenos">4453</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</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-4442"><a href="#L-4442"><span class="linenos">4442</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</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-4447"><a href="#L-4447"><span class="linenos">4447</span></a>
+</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</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-4450"><a href="#L-4450"><span class="linenos">4450</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-4451"><a href="#L-4451"><span class="linenos">4451</span></a>
+</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</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-4453"><a href="#L-4453"><span class="linenos">4453</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-4454"><a href="#L-4454"><span class="linenos">4454</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-4455"><a href="#L-4455"><span class="linenos">4455</span></a>
-</span><span id="L-4456"><a href="#L-4456"><span class="linenos">4456</span></a>
-</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a>
-</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a><span class="sd"> Example:</span>
-</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</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-4463"><a href="#L-4463"><span class="linenos">4463</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a>
-</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a><span class="sd"> Args:</span>
-</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
-</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-4471"><a href="#L-4471"><span class="linenos">4471</span></a>
-</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
-</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a>
-</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</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-4477"><a href="#L-4477"><span class="linenos">4477</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-4456"><a href="#L-4456"><span class="linenos">4456</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</span></a>
+</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</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-4459"><a href="#L-4459"><span class="linenos">4459</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-4460"><a href="#L-4460"><span class="linenos">4460</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a> <span class="c1">#</span>
+</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</span></a>
+</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</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-4465"><a href="#L-4465"><span class="linenos">4465</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</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-4467"><a href="#L-4467"><span class="linenos">4467</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</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-4469"><a href="#L-4469"><span class="linenos">4469</span></a>
+</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a>
+</span><span id="L-4471"><a href="#L-4471"><span class="linenos">4471</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a>
+</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a><span class="sd"> Example:</span>
+</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</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-4477"><a href="#L-4477"><span class="linenos">4477</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
</span><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</span></a>
-</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a>
-</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</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-4482"><a href="#L-4482"><span class="linenos">4482</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-4483"><a href="#L-4483"><span class="linenos">4483</span></a> <span class="n">schema</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-4484"><a href="#L-4484"><span class="linenos">4484</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-4485"><a href="#L-4485"><span class="linenos">4485</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="sd"> Build a Column.</span>
-</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a>
-</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a><span class="sd"> Args:</span>
-</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a><span class="sd"> col: column name</span>
-</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a><span class="sd"> table: table name</span>
-</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</span></a><span class="sd"> schema: schema name</span>
-</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
-</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a><span class="sd"> Column: column instance</span>
-</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</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-4499"><a href="#L-4499"><span class="linenos">4499</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-4500"><a href="#L-4500"><span class="linenos">4500</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</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-4501"><a href="#L-4501"><span class="linenos">4501</span></a> <span class="p">)</span>
+</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a><span class="sd"> Args:</span>
+</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
+</span><span id="L-4483"><a href="#L-4483"><span class="linenos">4483</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a>
+</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
+</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a>
+</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</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-4491"><a href="#L-4491"><span class="linenos">4491</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-4492"><a href="#L-4492"><span class="linenos">4492</span></a>
+</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a>
+</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</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-4496"><a href="#L-4496"><span class="linenos">4496</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-4497"><a href="#L-4497"><span class="linenos">4497</span></a> <span class="n">schema</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-4498"><a href="#L-4498"><span class="linenos">4498</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-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a><span class="sd"> Build a Column.</span>
</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a>
-</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a>
-</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4505"><a href="#L-4505"><span class="linenos">4505</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a>
-</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a><span class="sd"> Example:</span>
-</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a>
-</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a><span class="sd"> Args:</span>
-</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a>
-</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a><span class="sd"> A cast node.</span>
-</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</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-4519"><a href="#L-4519"><span class="linenos">4519</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a><span class="sd"> Args:</span>
+</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a><span class="sd"> col: column name</span>
+</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a><span class="sd"> table: table name</span>
+</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a><span class="sd"> schema: schema name</span>
+</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
+</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="sd"> Column: column instance</span>
+</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</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-4513"><a href="#L-4513"><span class="linenos">4513</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-4514"><a href="#L-4514"><span class="linenos">4514</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</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-4515"><a href="#L-4515"><span class="linenos">4515</span></a> <span class="p">)</span>
+</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a>
+</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a>
+</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4519"><a href="#L-4519"><span class="linenos">4519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</span></a>
-</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a>
-</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</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">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a><span class="sd"> Example:</span>
+</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a>
</span><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a><span class="sd"> Args:</span>
-</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a><span class="sd"> table (str | Expression): column name</span>
-</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a><span class="sd"> db (str | Expression): db name</span>
-</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
-</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a>
-</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a><span class="sd"> Table: table instance</span>
-</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</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-4536"><a href="#L-4536"><span class="linenos">4536</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-4537"><a href="#L-4537"><span class="linenos">4537</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-4538"><a href="#L-4538"><span class="linenos">4538</span></a> <span class="p">)</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">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</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-4543"><a href="#L-4543"><span class="linenos">4543</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-4544"><a href="#L-4544"><span class="linenos">4544</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-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</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 class="sd"> Example:</span>
-</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</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 class="sd"> Args:</span>
-</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</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-4556"><a href="#L-4556"><span class="linenos">4556</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
-</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a><span class="sd"> in order to help with type inference.</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 class="sd"> Returns:</span>
-</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</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-4564"><a href="#L-4564"><span class="linenos">4564</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-4565"><a href="#L-4565"><span class="linenos">4565</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</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-4567"><a href="#L-4567"><span class="linenos">4567</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a> <span class="k">else</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-4569"><a href="#L-4569"><span class="linenos">4569</span></a> <span class="p">)</span>
-</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</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-4571"><a href="#L-4571"><span class="linenos">4571</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
-</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
-</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
-</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a> <span class="p">)</span>
-</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
-</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a> <span class="p">)</span>
-</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><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
-</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</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="sd"> Example:</span>
-</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</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="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a><span class="sd"> &#39;(VAR this: x)&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</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-4526"><a href="#L-4526"><span class="linenos">4526</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a>
+</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a><span class="sd"> A cast node.</span>
+</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</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-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a>
+</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a>
+</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</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">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a>
+</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> Args:</span>
+</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="sd"> table (str | Expression): column name</span>
+</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> db (str | Expression): db name</span>
+</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a><span class="sd"> catalog (str | Expression): catalog name</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 class="sd"> Returns:</span>
+</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="sd"> Table: table instance</span>
+</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</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-4550"><a href="#L-4550"><span class="linenos">4550</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-4551"><a href="#L-4551"><span class="linenos">4551</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-4552"><a href="#L-4552"><span class="linenos">4552</span></a> <span class="p">)</span>
+</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a>
+</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a>
+</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</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-4557"><a href="#L-4557"><span class="linenos">4557</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-4558"><a href="#L-4558"><span class="linenos">4558</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-4559"><a href="#L-4559"><span class="linenos">4559</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</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="sd"> Example:</span>
+</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</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="sd"> Args:</span>
+</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</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-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
+</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a><span class="sd"> in order to help with type inference.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</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-4578"><a href="#L-4578"><span class="linenos">4578</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-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</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-4581"><a href="#L-4581"><span class="linenos">4581</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a> <span class="k">else</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-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="p">)</span>
+</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</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-4585"><a href="#L-4585"><span class="linenos">4585</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
+</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
+</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a> <span class="p">)</span>
+</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
+</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="p">)</span>
</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a>
-</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</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-4600"><a href="#L-4600"><span class="linenos">4600</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 empty name into var.&quot;</span><span class="p">)</span>
-</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">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-4603"><a href="#L-4603"><span class="linenos">4603</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-4604"><a href="#L-4604"><span class="linenos">4604</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-4605"><a href="#L-4605"><span class="linenos">4605</span></a>
+</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 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="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
+</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</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="sd"> Example:</span>
+</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a>
+</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a>
-</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</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-4608"><a href="#L-4608"><span class="linenos">4608</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a><span class="sd"> Args:</span>
+</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</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-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="sd"> Args:</span>
-</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a>
-</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</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-4618"><a href="#L-4618"><span class="linenos">4618</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-4619"><a href="#L-4619"><span class="linenos">4619</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</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-4621"><a href="#L-4621"><span class="linenos">4621</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</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-4623"><a href="#L-4623"><span class="linenos">4623</span></a> <span class="p">],</span>
-</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <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="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</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-4629"><a href="#L-4629"><span class="linenos">4629</span></a>
-</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a><span class="sd"> Raises an error if a conversion is not possible.</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 class="sd"> Args:</span>
-</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="sd"> value (Any): a python object</span>
-</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a>
-</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a><span class="sd"> Expression: the equivalent expression object</span>
-</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</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-4639"><a href="#L-4639"><span class="linenos">4639</span></a> <span class="k">return</span> <span class="n">value</span>
-</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</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-4643"><a href="#L-4643"><span class="linenos">4643</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-4644"><a href="#L-4644"><span class="linenos">4644</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-4645"><a href="#L-4645"><span class="linenos">4645</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-4646"><a href="#L-4646"><span class="linenos">4646</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">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-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</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-4649"><a href="#L-4649"><span class="linenos">4649</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-4650"><a href="#L-4650"><span class="linenos">4650</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-4651"><a href="#L-4651"><span class="linenos">4651</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="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-4652"><a href="#L-4652"><span class="linenos">4652</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-4653"><a href="#L-4653"><span class="linenos">4653</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="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-4654"><a href="#L-4654"><span class="linenos">4654</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-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="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-4657"><a href="#L-4657"><span class="linenos">4657</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="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-4658"><a href="#L-4658"><span class="linenos">4658</span></a> <span class="p">)</span>
-</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</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-4660"><a href="#L-4660"><span class="linenos">4660</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-4661"><a href="#L-4661"><span class="linenos">4661</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-4662"><a href="#L-4662"><span class="linenos">4662</span></a> <span class="p">)</span>
-</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</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-4664"><a href="#L-4664"><span class="linenos">4664</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-4665"><a href="#L-4665"><span class="linenos">4665</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-4666"><a href="#L-4666"><span class="linenos">4666</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-4667"><a href="#L-4667"><span class="linenos">4667</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-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 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">fun</span><span class="p">):</span>
-</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</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-4673"><a href="#L-4673"><span class="linenos">4673</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</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-4675"><a href="#L-4675"><span class="linenos">4675</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span>
-</span><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 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-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a>
-</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</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-4681"><a href="#L-4681"><span class="linenos">4681</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-4682"><a href="#L-4682"><span class="linenos">4682</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><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</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-4684"><a href="#L-4684"><span class="linenos">4684</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-4685"><a href="#L-4685"><span class="linenos">4685</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-4686"><a href="#L-4686"><span class="linenos">4686</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</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-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 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-4610"><a href="#L-4610"><span class="linenos">4610</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</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-4614"><a href="#L-4614"><span class="linenos">4614</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 empty name into var.&quot;</span><span class="p">)</span>
+</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a>
+</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</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-4617"><a href="#L-4617"><span class="linenos">4617</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-4618"><a href="#L-4618"><span class="linenos">4618</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-4619"><a href="#L-4619"><span class="linenos">4619</span></a>
+</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="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-4622"><a href="#L-4622"><span class="linenos">4622</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a>
+</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a><span class="sd"> Args:</span>
+</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a>
+</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</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-4632"><a href="#L-4632"><span class="linenos">4632</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-4633"><a href="#L-4633"><span class="linenos">4633</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</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-4635"><a href="#L-4635"><span class="linenos">4635</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</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-4637"><a href="#L-4637"><span class="linenos">4637</span></a> <span class="p">],</span>
+</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a> <span class="p">)</span>
+</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a>
+</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a>
+</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</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="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</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-4643"><a href="#L-4643"><span class="linenos">4643</span></a>
+</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</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="sd"> Args:</span>
+</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a><span class="sd"> value (Any): a python object</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 class="sd"> Returns:</span>
+</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="sd"> Expression: the equivalent expression object</span>
+</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</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-4653"><a href="#L-4653"><span class="linenos">4653</span></a> <span class="k">return</span> <span class="n">value</span>
+</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</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-4657"><a href="#L-4657"><span class="linenos">4657</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-4658"><a href="#L-4658"><span class="linenos">4658</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-4659"><a href="#L-4659"><span class="linenos">4659</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-4660"><a href="#L-4660"><span class="linenos">4660</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">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-4661"><a href="#L-4661"><span class="linenos">4661</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</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-4663"><a href="#L-4663"><span class="linenos">4663</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-4664"><a href="#L-4664"><span class="linenos">4664</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-4665"><a href="#L-4665"><span class="linenos">4665</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="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-4666"><a href="#L-4666"><span class="linenos">4666</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-4667"><a href="#L-4667"><span class="linenos">4667</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="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-4668"><a href="#L-4668"><span class="linenos">4668</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-4669"><a href="#L-4669"><span class="linenos">4669</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="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-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="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-4672"><a href="#L-4672"><span class="linenos">4672</span></a> <span class="p">)</span>
+</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</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-4674"><a href="#L-4674"><span class="linenos">4674</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-4675"><a href="#L-4675"><span class="linenos">4675</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-4676"><a href="#L-4676"><span class="linenos">4676</span></a> <span class="p">)</span>
+</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</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-4678"><a href="#L-4678"><span class="linenos">4678</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-4679"><a href="#L-4679"><span class="linenos">4679</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-4680"><a href="#L-4680"><span class="linenos">4680</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-4681"><a href="#L-4681"><span class="linenos">4681</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-4682"><a href="#L-4682"><span class="linenos">4682</span></a>
+</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a>
+</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</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">fun</span><span class="p">):</span>
+</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</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-4687"><a href="#L-4687"><span class="linenos">4687</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</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-4689"><a href="#L-4689"><span class="linenos">4689</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span>
</span><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">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
-</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a><span class="sd"> Return all table names referenced through columns in an expression.</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 class="sd"> Example:</span>
-</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
-</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</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 class="sd"> Args:</span>
-</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
-</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a>
-</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a><span class="sd"> list: A list of unique names</span>
-</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</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-4708"><a href="#L-4708"><span class="linenos">4708</span></a>
+</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</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-4692"><a href="#L-4692"><span class="linenos">4692</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</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">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-4695"><a href="#L-4695"><span class="linenos">4695</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-4696"><a href="#L-4696"><span class="linenos">4696</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><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</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-4698"><a href="#L-4698"><span class="linenos">4698</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-4699"><a href="#L-4699"><span class="linenos">4699</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-4700"><a href="#L-4700"><span class="linenos">4700</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</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-4702"><a href="#L-4702"><span class="linenos">4702</span></a>
+</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</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-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">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span>
+</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
</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">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</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-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 class="sd"> Args:</span>
-</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
-</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="sd"> Examples:</span>
-</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</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-4719"><a href="#L-4719"><span class="linenos">4719</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a>
-</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a><span class="sd"> The table name.</span>
-</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a>
-</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="sd"> Example:</span>
+</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
+</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</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 class="sd"> Args:</span>
+</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
+</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a>
+</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a><span class="sd"> list: A list of unique names</span>
+</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</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-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">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</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-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 class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</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-4727"><a href="#L-4727"><span class="linenos">4727</span></a><span class="sd"> Args:</span>
+</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a>
-</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</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-4731"><a href="#L-4731"><span class="linenos">4731</span></a> <span class="n">part</span>
-</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
-</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
-</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
-</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a> <span class="p">)</span>
-</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a> <span class="k">if</span> <span class="n">part</span>
-</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a> <span class="p">)</span>
-</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a>
+</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a><span class="sd"> Examples:</span>
+</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</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-4733"><a href="#L-4733"><span class="linenos">4733</span></a><span class="sd"> &#39;a.b.c&#39;</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 class="sd"> Returns:</span>
+</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="sd"> The table name.</span>
+</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a><span class="sd"> &quot;&quot;&quot;</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 class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a>
-</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</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">mapping</span><span class="p">):</span>
-</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</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-4741"><a href="#L-4741"><span class="linenos">4741</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-4742"><a href="#L-4742"><span class="linenos">4742</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-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="sd"> Args:</span>
-</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
-</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="sd"> Examples:</span>
-</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</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-4751"><a href="#L-4751"><span class="linenos">4751</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a>
-</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a>
-</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</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><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</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-4759"><a href="#L-4759"><span class="linenos">4759</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-4760"><a href="#L-4760"><span class="linenos">4760</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</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-4764"><a href="#L-4764"><span class="linenos">4764</span></a> <span class="p">)</span>
-</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</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-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">part</span>
+</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
+</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
+</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
+</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a> <span class="p">)</span>
+</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a> <span class="k">if</span> <span class="n">part</span>
+</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="p">)</span>
+</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a>
+</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 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">mapping</span><span class="p">):</span>
+</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</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-4757"><a href="#L-4757"><span class="linenos">4757</span></a>
+</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a><span class="sd"> Args:</span>
+</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
+</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a>
+</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a><span class="sd"> Examples:</span>
+</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</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-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a>
-</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</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><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a>
-</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 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="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-4771"><a href="#L-4771"><span class="linenos">4771</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a>
-</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a><span class="sd"> Args:</span>
-</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a>
-</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a><span class="sd"> Examples:</span>
-</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;), &quot;a&quot;, &quot;b&quot;, tbl=&quot;foo&quot;</span>
-</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a><span class="sd"> &#39;SELECT * FROM foo WHERE a = b&#39;</span>
-</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="sd"> Returns:</span>
-</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</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">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</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-4790"><a href="#L-4790"><span class="linenos">4790</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-4791"><a href="#L-4791"><span class="linenos">4791</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-4792"><a href="#L-4792"><span class="linenos">4792</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-4793"><a href="#L-4793"><span class="linenos">4793</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a> <span class="k">return</span> <span class="n">to_identifier</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-4798"><a href="#L-4798"><span class="linenos">4798</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a> <span class="k">pass</span>
-</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a> <span class="k">return</span> <span class="n">node</span>
-</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">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-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 class="k">def</span> <span class="nf">expand</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">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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</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-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 class="sd"> Examples:</span>
-</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</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-4811"><a href="#L-4811"><span class="linenos">4811</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</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 class="sd"> Args:</span>
-</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
+</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</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">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
+</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</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-4773"><a href="#L-4773"><span class="linenos">4773</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-4774"><a href="#L-4774"><span class="linenos">4774</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</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-4778"><a href="#L-4778"><span class="linenos">4778</span></a> <span class="p">)</span>
+</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a> <span class="k">return</span> <span class="n">node</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 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><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a>
+</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 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="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-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</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="sd"> Args:</span>
+</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</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 class="sd"> Examples:</span>
+</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;), &quot;a&quot;, &quot;b&quot;, tbl=&quot;foo&quot;</span>
+</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a><span class="sd"> &#39;SELECT * FROM foo WHERE a = b&#39;</span>
+</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a>
+</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a>
+</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</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">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</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-4805"><a href="#L-4805"><span class="linenos">4805</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-4806"><a href="#L-4806"><span class="linenos">4806</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-4807"><a href="#L-4807"><span class="linenos">4807</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="k">return</span> <span class="n">to_identifier</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-4812"><a href="#L-4812"><span class="linenos">4812</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a> <span class="k">pass</span>
+</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a>
+</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</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-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="sd"> Returns:</span>
-</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a>
+</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a><span class="k">def</span> <span class="nf">expand</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">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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</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-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">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-4823"><a href="#L-4823"><span class="linenos">4823</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-4824"><a href="#L-4824"><span class="linenos">4824</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-4825"><a href="#L-4825"><span class="linenos">4825</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-4826"><a href="#L-4826"><span class="linenos">4826</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</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-4828"><a href="#L-4828"><span class="linenos">4828</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-4829"><a href="#L-4829"><span class="linenos">4829</span></a> <span class="k">return</span> <span class="n">subquery</span>
-</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="sd"> Examples:</span>
+</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</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-4825"><a href="#L-4825"><span class="linenos">4825</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a>
+</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a><span class="sd"> Args:</span>
+</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
</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">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-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><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</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-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a>
-</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a><span class="sd"> Examples:</span>
-</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a><span class="sd"> &#39;ABS(5)&#39;</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 class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
-</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</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">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-4837"><a href="#L-4837"><span class="linenos">4837</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-4838"><a href="#L-4838"><span class="linenos">4838</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-4839"><a href="#L-4839"><span class="linenos">4839</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-4840"><a href="#L-4840"><span class="linenos">4840</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</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-4842"><a href="#L-4842"><span class="linenos">4842</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-4843"><a href="#L-4843"><span class="linenos">4843</span></a> <span class="k">return</span> <span class="n">subquery</span>
+</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a>
-</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a><span class="sd"> Args:</span>
-</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a>
-</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a><span class="sd"> Note:</span>
-</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a>
-</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</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-4857"><a href="#L-4857"><span class="linenos">4857</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</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-4860"><a href="#L-4860"><span class="linenos">4860</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-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="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
-</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a>
-</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a> <span class="n">args</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</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-4865"><a href="#L-4865"><span class="linenos">4865</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">convert</span><span class="p">(</span><span class="n">value</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-4866"><a href="#L-4866"><span class="linenos">4866</span></a>
-</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a> <span class="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-4868"><a href="#L-4868"><span class="linenos">4868</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-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">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</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">args</span><span class="p">)</span> <span class="k">if</span> <span class="n">args</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-4872"><a href="#L-4872"><span class="linenos">4872</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</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">args</span><span class="p">}</span>
-</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</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-4846"><a href="#L-4846"><span class="linenos">4846</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-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><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</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-4850"><a href="#L-4850"><span class="linenos">4850</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a>
+</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="sd"> Examples:</span>
+</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a>
+</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</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-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a>
+</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a><span class="sd"> Args:</span>
+</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</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="sd"> Note:</span>
+</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</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 class="sd"> Returns:</span>
+</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</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-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</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-4874"><a href="#L-4874"><span class="linenos">4874</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-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">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">args</span><span class="p">):</span>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</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-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 class="k">return</span> <span class="n">function</span>
+</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</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-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="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</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-4879"><a href="#L-4879"><span class="linenos">4879</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">convert</span><span class="p">(</span><span class="n">value</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-4880"><a href="#L-4880"><span class="linenos">4880</span></a>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a>
-</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
-</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</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-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><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
-</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</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-4881"><a href="#L-4881"><span class="linenos">4881</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-4882"><a href="#L-4882"><span class="linenos">4882</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-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">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</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-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</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-4888"><a href="#L-4888"><span class="linenos">4888</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-4889"><a href="#L-4889"><span class="linenos">4889</span></a>
+</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</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-4891"><a href="#L-4891"><span class="linenos">4891</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-4892"><a href="#L-4892"><span class="linenos">4892</span></a>
+</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="k">return</span> <span class="n">function</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">def</span> <span class="nf">null</span><span class="p">():</span>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="sd"> Returns a true Boolean expression.</span>
</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</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-4901"><a href="#L-4901"><span class="linenos">4901</span></a>
</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 class="c1"># TODO: deprecate this</span>
-</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</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-4905"><a href="#L-4905"><span class="linenos">4905</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-4906"><a href="#L-4906"><span class="linenos">4906</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</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-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><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
+</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="k">return</span> <span class="n">Null</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="c1"># TODO: deprecate this</span>
+</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</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-4919"><a href="#L-4919"><span class="linenos">4919</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-4920"><a href="#L-4920"><span class="linenos">4920</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
@@ -23506,100 +23547,105 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</span><span id="DataType-2657"><a href="#DataType-2657"><span class="linenos">2657</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-2658"><a href="#DataType-2658"><span class="linenos">2658</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-2659"><a href="#DataType-2659"><span class="linenos">2659</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2660"><a href="#DataType-2660"><span class="linenos">2660</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2661"><a href="#DataType-2661"><span class="linenos">2661</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2662"><a href="#DataType-2662"><span class="linenos">2662</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2663"><a href="#DataType-2663"><span class="linenos">2663</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2664"><a href="#DataType-2664"><span class="linenos">2664</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2665"><a href="#DataType-2665"><span class="linenos">2665</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2666"><a href="#DataType-2666"><span class="linenos">2666</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2667"><a href="#DataType-2667"><span class="linenos">2667</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2668"><a href="#DataType-2668"><span class="linenos">2668</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2669"><a href="#DataType-2669"><span class="linenos">2669</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2670"><a href="#DataType-2670"><span class="linenos">2670</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2671"><a href="#DataType-2671"><span class="linenos">2671</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2672"><a href="#DataType-2672"><span class="linenos">2672</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2673"><a href="#DataType-2673"><span class="linenos">2673</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2674"><a href="#DataType-2674"><span class="linenos">2674</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2675"><a href="#DataType-2675"><span class="linenos">2675</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2676"><a href="#DataType-2676"><span class="linenos">2676</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2677"><a href="#DataType-2677"><span class="linenos">2677</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2678"><a href="#DataType-2678"><span class="linenos">2678</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2679"><a href="#DataType-2679"><span class="linenos">2679</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2680"><a href="#DataType-2680"><span class="linenos">2680</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2681"><a href="#DataType-2681"><span class="linenos">2681</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2682"><a href="#DataType-2682"><span class="linenos">2682</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2683"><a href="#DataType-2683"><span class="linenos">2683</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2684"><a href="#DataType-2684"><span class="linenos">2684</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2685"><a href="#DataType-2685"><span class="linenos">2685</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2686"><a href="#DataType-2686"><span class="linenos">2686</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2687"><a href="#DataType-2687"><span class="linenos">2687</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2688"><a href="#DataType-2688"><span class="linenos">2688</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2689"><a href="#DataType-2689"><span class="linenos">2689</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2690"><a href="#DataType-2690"><span class="linenos">2690</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2691"><a href="#DataType-2691"><span class="linenos">2691</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2692"><a href="#DataType-2692"><span class="linenos">2692</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2693"><a href="#DataType-2693"><span class="linenos">2693</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2694"><a href="#DataType-2694"><span class="linenos">2694</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2695"><a href="#DataType-2695"><span class="linenos">2695</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2696"><a href="#DataType-2696"><span class="linenos">2696</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2697"><a href="#DataType-2697"><span class="linenos">2697</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2698"><a href="#DataType-2698"><span class="linenos">2698</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-2699"><a href="#DataType-2699"><span class="linenos">2699</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
-</span><span id="DataType-2700"><a href="#DataType-2700"><span class="linenos">2700</span></a>
-</span><span id="DataType-2701"><a href="#DataType-2701"><span class="linenos">2701</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2702"><a href="#DataType-2702"><span class="linenos">2702</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="DataType-2703"><a href="#DataType-2703"><span class="linenos">2703</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="DataType-2704"><a href="#DataType-2704"><span class="linenos">2704</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="DataType-2705"><a href="#DataType-2705"><span class="linenos">2705</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="DataType-2706"><a href="#DataType-2706"><span class="linenos">2706</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="DataType-2707"><a href="#DataType-2707"><span class="linenos">2707</span></a> <span class="p">}</span>
-</span><span id="DataType-2708"><a href="#DataType-2708"><span class="linenos">2708</span></a>
-</span><span id="DataType-2709"><a href="#DataType-2709"><span class="linenos">2709</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2710"><a href="#DataType-2710"><span class="linenos">2710</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="DataType-2711"><a href="#DataType-2711"><span class="linenos">2711</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="DataType-2712"><a href="#DataType-2712"><span class="linenos">2712</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="DataType-2713"><a href="#DataType-2713"><span class="linenos">2713</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="DataType-2714"><a href="#DataType-2714"><span class="linenos">2714</span></a> <span class="p">}</span>
-</span><span id="DataType-2715"><a href="#DataType-2715"><span class="linenos">2715</span></a>
-</span><span id="DataType-2716"><a href="#DataType-2716"><span class="linenos">2716</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2717"><a href="#DataType-2717"><span class="linenos">2717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="DataType-2718"><a href="#DataType-2718"><span class="linenos">2718</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="DataType-2660"><a href="#DataType-2660"><span class="linenos">2660</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2661"><a href="#DataType-2661"><span class="linenos">2661</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2662"><a href="#DataType-2662"><span class="linenos">2662</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2663"><a href="#DataType-2663"><span class="linenos">2663</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2664"><a href="#DataType-2664"><span class="linenos">2664</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2665"><a href="#DataType-2665"><span class="linenos">2665</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2666"><a href="#DataType-2666"><span class="linenos">2666</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2667"><a href="#DataType-2667"><span class="linenos">2667</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2668"><a href="#DataType-2668"><span class="linenos">2668</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2669"><a href="#DataType-2669"><span class="linenos">2669</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2670"><a href="#DataType-2670"><span class="linenos">2670</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2671"><a href="#DataType-2671"><span class="linenos">2671</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2672"><a href="#DataType-2672"><span class="linenos">2672</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2673"><a href="#DataType-2673"><span class="linenos">2673</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2674"><a href="#DataType-2674"><span class="linenos">2674</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2675"><a href="#DataType-2675"><span class="linenos">2675</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2676"><a href="#DataType-2676"><span class="linenos">2676</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2677"><a href="#DataType-2677"><span class="linenos">2677</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2678"><a href="#DataType-2678"><span class="linenos">2678</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2679"><a href="#DataType-2679"><span class="linenos">2679</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2680"><a href="#DataType-2680"><span class="linenos">2680</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2681"><a href="#DataType-2681"><span class="linenos">2681</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2682"><a href="#DataType-2682"><span class="linenos">2682</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2683"><a href="#DataType-2683"><span class="linenos">2683</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2684"><a href="#DataType-2684"><span class="linenos">2684</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2685"><a href="#DataType-2685"><span class="linenos">2685</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2686"><a href="#DataType-2686"><span class="linenos">2686</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2687"><a href="#DataType-2687"><span class="linenos">2687</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2688"><a href="#DataType-2688"><span class="linenos">2688</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2689"><a href="#DataType-2689"><span class="linenos">2689</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2690"><a href="#DataType-2690"><span class="linenos">2690</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2691"><a href="#DataType-2691"><span class="linenos">2691</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2692"><a href="#DataType-2692"><span class="linenos">2692</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2693"><a href="#DataType-2693"><span class="linenos">2693</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2694"><a href="#DataType-2694"><span class="linenos">2694</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2695"><a href="#DataType-2695"><span class="linenos">2695</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2696"><a href="#DataType-2696"><span class="linenos">2696</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2697"><a href="#DataType-2697"><span class="linenos">2697</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2698"><a href="#DataType-2698"><span class="linenos">2698</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2699"><a href="#DataType-2699"><span class="linenos">2699</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2700"><a href="#DataType-2700"><span class="linenos">2700</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2701"><a href="#DataType-2701"><span class="linenos">2701</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2702"><a href="#DataType-2702"><span class="linenos">2702</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2703"><a href="#DataType-2703"><span class="linenos">2703</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-2704"><a href="#DataType-2704"><span class="linenos">2704</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
+</span><span id="DataType-2705"><a href="#DataType-2705"><span class="linenos">2705</span></a>
+</span><span id="DataType-2706"><a href="#DataType-2706"><span class="linenos">2706</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2707"><a href="#DataType-2707"><span class="linenos">2707</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="DataType-2708"><a href="#DataType-2708"><span class="linenos">2708</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="DataType-2709"><a href="#DataType-2709"><span class="linenos">2709</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="DataType-2710"><a href="#DataType-2710"><span class="linenos">2710</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="DataType-2711"><a href="#DataType-2711"><span class="linenos">2711</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="DataType-2712"><a href="#DataType-2712"><span class="linenos">2712</span></a> <span class="p">}</span>
+</span><span id="DataType-2713"><a href="#DataType-2713"><span class="linenos">2713</span></a>
+</span><span id="DataType-2714"><a href="#DataType-2714"><span class="linenos">2714</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2715"><a href="#DataType-2715"><span class="linenos">2715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="DataType-2716"><a href="#DataType-2716"><span class="linenos">2716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="DataType-2717"><a href="#DataType-2717"><span class="linenos">2717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="DataType-2718"><a href="#DataType-2718"><span class="linenos">2718</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
</span><span id="DataType-2719"><a href="#DataType-2719"><span class="linenos">2719</span></a> <span class="p">}</span>
</span><span id="DataType-2720"><a href="#DataType-2720"><span class="linenos">2720</span></a>
-</span><span id="DataType-2721"><a href="#DataType-2721"><span class="linenos">2721</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
-</span><span id="DataType-2722"><a href="#DataType-2722"><span class="linenos">2722</span></a>
-</span><span id="DataType-2723"><a href="#DataType-2723"><span class="linenos">2723</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-2724"><a href="#DataType-2724"><span class="linenos">2724</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="DataType-2725"><a href="#DataType-2725"><span class="linenos">2725</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="DataType-2726"><a href="#DataType-2726"><span class="linenos">2726</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="DataType-2727"><a href="#DataType-2727"><span class="linenos">2727</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="DataType-2728"><a href="#DataType-2728"><span class="linenos">2728</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="DataType-2729"><a href="#DataType-2729"><span class="linenos">2729</span></a> <span class="p">}</span>
-</span><span id="DataType-2730"><a href="#DataType-2730"><span class="linenos">2730</span></a>
-</span><span id="DataType-2731"><a href="#DataType-2731"><span class="linenos">2731</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType-2732"><a href="#DataType-2732"><span class="linenos">2732</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType-2733"><a href="#DataType-2733"><span class="linenos">2733</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</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="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="DataType-2734"><a href="#DataType-2734"><span class="linenos">2734</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="DataType-2735"><a href="#DataType-2735"><span class="linenos">2735</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
-</span><span id="DataType-2736"><a href="#DataType-2736"><span class="linenos">2736</span></a>
-</span><span id="DataType-2737"><a href="#DataType-2737"><span class="linenos">2737</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="DataType-2738"><a href="#DataType-2738"><span class="linenos">2738</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="DataType-2739"><a href="#DataType-2739"><span class="linenos">2739</span></a> <span class="n">data_type_exp</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">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</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="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="DataType-2740"><a href="#DataType-2740"><span class="linenos">2740</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-2741"><a href="#DataType-2741"><span class="linenos">2741</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</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">DataType</span><span class="p">)</span>
-</span><span id="DataType-2742"><a href="#DataType-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="DataType-2743"><a href="#DataType-2743"><span class="linenos">2743</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;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="DataType-2744"><a href="#DataType-2744"><span class="linenos">2744</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
-</span><span id="DataType-2745"><a href="#DataType-2745"><span class="linenos">2745</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="DataType-2746"><a href="#DataType-2746"><span class="linenos">2746</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="DataType-2747"><a href="#DataType-2747"><span class="linenos">2747</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType-2748"><a href="#DataType-2748"><span class="linenos">2748</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-2749"><a href="#DataType-2749"><span class="linenos">2749</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 data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
-</span><span id="DataType-2750"><a href="#DataType-2750"><span class="linenos">2750</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</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="DataType-2751"><a href="#DataType-2751"><span class="linenos">2751</span></a>
-</span><span id="DataType-2752"><a href="#DataType-2752"><span class="linenos">2752</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType-2753"><a href="#DataType-2753"><span class="linenos">2753</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+</span><span id="DataType-2721"><a href="#DataType-2721"><span class="linenos">2721</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2722"><a href="#DataType-2722"><span class="linenos">2722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="DataType-2723"><a href="#DataType-2723"><span class="linenos">2723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="DataType-2724"><a href="#DataType-2724"><span class="linenos">2724</span></a> <span class="p">}</span>
+</span><span id="DataType-2725"><a href="#DataType-2725"><span class="linenos">2725</span></a>
+</span><span id="DataType-2726"><a href="#DataType-2726"><span class="linenos">2726</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
+</span><span id="DataType-2727"><a href="#DataType-2727"><span class="linenos">2727</span></a>
+</span><span id="DataType-2728"><a href="#DataType-2728"><span class="linenos">2728</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-2729"><a href="#DataType-2729"><span class="linenos">2729</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="DataType-2730"><a href="#DataType-2730"><span class="linenos">2730</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="DataType-2731"><a href="#DataType-2731"><span class="linenos">2731</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="DataType-2732"><a href="#DataType-2732"><span class="linenos">2732</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="DataType-2733"><a href="#DataType-2733"><span class="linenos">2733</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="DataType-2734"><a href="#DataType-2734"><span class="linenos">2734</span></a> <span class="p">}</span>
+</span><span id="DataType-2735"><a href="#DataType-2735"><span class="linenos">2735</span></a>
+</span><span id="DataType-2736"><a href="#DataType-2736"><span class="linenos">2736</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType-2737"><a href="#DataType-2737"><span class="linenos">2737</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType-2738"><a href="#DataType-2738"><span class="linenos">2738</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</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="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="DataType-2739"><a href="#DataType-2739"><span class="linenos">2739</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="DataType-2740"><a href="#DataType-2740"><span class="linenos">2740</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
+</span><span id="DataType-2741"><a href="#DataType-2741"><span class="linenos">2741</span></a>
+</span><span id="DataType-2742"><a href="#DataType-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="DataType-2743"><a href="#DataType-2743"><span class="linenos">2743</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="DataType-2744"><a href="#DataType-2744"><span class="linenos">2744</span></a> <span class="n">data_type_exp</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">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</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="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="DataType-2745"><a href="#DataType-2745"><span class="linenos">2745</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-2746"><a href="#DataType-2746"><span class="linenos">2746</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</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">DataType</span><span class="p">)</span>
+</span><span id="DataType-2747"><a href="#DataType-2747"><span class="linenos">2747</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="DataType-2748"><a href="#DataType-2748"><span class="linenos">2748</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;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="DataType-2749"><a href="#DataType-2749"><span class="linenos">2749</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
+</span><span id="DataType-2750"><a href="#DataType-2750"><span class="linenos">2750</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="DataType-2751"><a href="#DataType-2751"><span class="linenos">2751</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="DataType-2752"><a href="#DataType-2752"><span class="linenos">2752</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType-2753"><a href="#DataType-2753"><span class="linenos">2753</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-2754"><a href="#DataType-2754"><span class="linenos">2754</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 data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
+</span><span id="DataType-2755"><a href="#DataType-2755"><span class="linenos">2755</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</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="DataType-2756"><a href="#DataType-2756"><span class="linenos">2756</span></a>
+</span><span id="DataType-2757"><a href="#DataType-2757"><span class="linenos">2757</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType-2758"><a href="#DataType-2758"><span class="linenos">2758</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
@@ -23617,26 +23663,26 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-2731"><a href="#DataType.build-2731"><span class="linenos">2731</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType.build-2732"><a href="#DataType.build-2732"><span class="linenos">2732</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType.build-2733"><a href="#DataType.build-2733"><span class="linenos">2733</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</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="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="DataType.build-2734"><a href="#DataType.build-2734"><span class="linenos">2734</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="DataType.build-2735"><a href="#DataType.build-2735"><span class="linenos">2735</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
-</span><span id="DataType.build-2736"><a href="#DataType.build-2736"><span class="linenos">2736</span></a>
-</span><span id="DataType.build-2737"><a href="#DataType.build-2737"><span class="linenos">2737</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
-</span><span id="DataType.build-2738"><a href="#DataType.build-2738"><span class="linenos">2738</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
-</span><span id="DataType.build-2739"><a href="#DataType.build-2739"><span class="linenos">2739</span></a> <span class="n">data_type_exp</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">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</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="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
-</span><span id="DataType.build-2740"><a href="#DataType.build-2740"><span class="linenos">2740</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-2741"><a href="#DataType.build-2741"><span class="linenos">2741</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</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">DataType</span><span class="p">)</span>
-</span><span id="DataType.build-2742"><a href="#DataType.build-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="DataType.build-2743"><a href="#DataType.build-2743"><span class="linenos">2743</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;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-</span><span id="DataType.build-2744"><a href="#DataType.build-2744"><span class="linenos">2744</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
-</span><span id="DataType.build-2745"><a href="#DataType.build-2745"><span class="linenos">2745</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
-</span><span id="DataType.build-2746"><a href="#DataType.build-2746"><span class="linenos">2746</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="DataType.build-2747"><a href="#DataType.build-2747"><span class="linenos">2747</span></a> <span class="k">return</span> <span class="n">dtype</span>
-</span><span id="DataType.build-2748"><a href="#DataType.build-2748"><span class="linenos">2748</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-2749"><a href="#DataType.build-2749"><span class="linenos">2749</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 data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
-</span><span id="DataType.build-2750"><a href="#DataType.build-2750"><span class="linenos">2750</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-2736"><a href="#DataType.build-2736"><span class="linenos">2736</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType.build-2737"><a href="#DataType.build-2737"><span class="linenos">2737</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType.build-2738"><a href="#DataType.build-2738"><span class="linenos">2738</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</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="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="DataType.build-2739"><a href="#DataType.build-2739"><span class="linenos">2739</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="DataType.build-2740"><a href="#DataType.build-2740"><span class="linenos">2740</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
+</span><span id="DataType.build-2741"><a href="#DataType.build-2741"><span class="linenos">2741</span></a>
+</span><span id="DataType.build-2742"><a href="#DataType.build-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
+</span><span id="DataType.build-2743"><a href="#DataType.build-2743"><span class="linenos">2743</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
+</span><span id="DataType.build-2744"><a href="#DataType.build-2744"><span class="linenos">2744</span></a> <span class="n">data_type_exp</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">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</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="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
+</span><span id="DataType.build-2745"><a href="#DataType.build-2745"><span class="linenos">2745</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-2746"><a href="#DataType.build-2746"><span class="linenos">2746</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</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">DataType</span><span class="p">)</span>
+</span><span id="DataType.build-2747"><a href="#DataType.build-2747"><span class="linenos">2747</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="DataType.build-2748"><a href="#DataType.build-2748"><span class="linenos">2748</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;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</span><span id="DataType.build-2749"><a href="#DataType.build-2749"><span class="linenos">2749</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
+</span><span id="DataType.build-2750"><a href="#DataType.build-2750"><span class="linenos">2750</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
+</span><span id="DataType.build-2751"><a href="#DataType.build-2751"><span class="linenos">2751</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="DataType.build-2752"><a href="#DataType.build-2752"><span class="linenos">2752</span></a> <span class="k">return</span> <span class="n">dtype</span>
+</span><span id="DataType.build-2753"><a href="#DataType.build-2753"><span class="linenos">2753</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-2754"><a href="#DataType.build-2754"><span class="linenos">2754</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 data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
+</span><span id="DataType.build-2755"><a href="#DataType.build-2755"><span class="linenos">2755</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</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></pre></div>
@@ -23654,8 +23700,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DataType.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-2752"><a href="#DataType.is_type-2752"><span class="linenos">2752</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType.is_type-2753"><a href="#DataType.is_type-2753"><span class="linenos">2753</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-2757"><a href="#DataType.is_type-2757"><span class="linenos">2757</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType.is_type-2758"><a href="#DataType.is_type-2758"><span class="linenos">2758</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
@@ -23730,46 +23776,51 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</span><span id="DataType.Type-2657"><a href="#DataType.Type-2657"><span class="linenos">2657</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-2658"><a href="#DataType.Type-2658"><span class="linenos">2658</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-2659"><a href="#DataType.Type-2659"><span class="linenos">2659</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2660"><a href="#DataType.Type-2660"><span class="linenos">2660</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2661"><a href="#DataType.Type-2661"><span class="linenos">2661</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2662"><a href="#DataType.Type-2662"><span class="linenos">2662</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2663"><a href="#DataType.Type-2663"><span class="linenos">2663</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2664"><a href="#DataType.Type-2664"><span class="linenos">2664</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2665"><a href="#DataType.Type-2665"><span class="linenos">2665</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2666"><a href="#DataType.Type-2666"><span class="linenos">2666</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2667"><a href="#DataType.Type-2667"><span class="linenos">2667</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2668"><a href="#DataType.Type-2668"><span class="linenos">2668</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2669"><a href="#DataType.Type-2669"><span class="linenos">2669</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2670"><a href="#DataType.Type-2670"><span class="linenos">2670</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2671"><a href="#DataType.Type-2671"><span class="linenos">2671</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2672"><a href="#DataType.Type-2672"><span class="linenos">2672</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2673"><a href="#DataType.Type-2673"><span class="linenos">2673</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2674"><a href="#DataType.Type-2674"><span class="linenos">2674</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2675"><a href="#DataType.Type-2675"><span class="linenos">2675</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2676"><a href="#DataType.Type-2676"><span class="linenos">2676</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2677"><a href="#DataType.Type-2677"><span class="linenos">2677</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2678"><a href="#DataType.Type-2678"><span class="linenos">2678</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2679"><a href="#DataType.Type-2679"><span class="linenos">2679</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2680"><a href="#DataType.Type-2680"><span class="linenos">2680</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2681"><a href="#DataType.Type-2681"><span class="linenos">2681</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2682"><a href="#DataType.Type-2682"><span class="linenos">2682</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2683"><a href="#DataType.Type-2683"><span class="linenos">2683</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2684"><a href="#DataType.Type-2684"><span class="linenos">2684</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2685"><a href="#DataType.Type-2685"><span class="linenos">2685</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2686"><a href="#DataType.Type-2686"><span class="linenos">2686</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2687"><a href="#DataType.Type-2687"><span class="linenos">2687</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2688"><a href="#DataType.Type-2688"><span class="linenos">2688</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2689"><a href="#DataType.Type-2689"><span class="linenos">2689</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2690"><a href="#DataType.Type-2690"><span class="linenos">2690</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2691"><a href="#DataType.Type-2691"><span class="linenos">2691</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2692"><a href="#DataType.Type-2692"><span class="linenos">2692</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2693"><a href="#DataType.Type-2693"><span class="linenos">2693</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2694"><a href="#DataType.Type-2694"><span class="linenos">2694</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2695"><a href="#DataType.Type-2695"><span class="linenos">2695</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2696"><a href="#DataType.Type-2696"><span class="linenos">2696</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2697"><a href="#DataType.Type-2697"><span class="linenos">2697</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2698"><a href="#DataType.Type-2698"><span class="linenos">2698</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-2699"><a href="#DataType.Type-2699"><span class="linenos">2699</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
+</span><span id="DataType.Type-2660"><a href="#DataType.Type-2660"><span class="linenos">2660</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2661"><a href="#DataType.Type-2661"><span class="linenos">2661</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2662"><a href="#DataType.Type-2662"><span class="linenos">2662</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2663"><a href="#DataType.Type-2663"><span class="linenos">2663</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2664"><a href="#DataType.Type-2664"><span class="linenos">2664</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2665"><a href="#DataType.Type-2665"><span class="linenos">2665</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2666"><a href="#DataType.Type-2666"><span class="linenos">2666</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2667"><a href="#DataType.Type-2667"><span class="linenos">2667</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2668"><a href="#DataType.Type-2668"><span class="linenos">2668</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2669"><a href="#DataType.Type-2669"><span class="linenos">2669</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2670"><a href="#DataType.Type-2670"><span class="linenos">2670</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2671"><a href="#DataType.Type-2671"><span class="linenos">2671</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2672"><a href="#DataType.Type-2672"><span class="linenos">2672</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2673"><a href="#DataType.Type-2673"><span class="linenos">2673</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2674"><a href="#DataType.Type-2674"><span class="linenos">2674</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2675"><a href="#DataType.Type-2675"><span class="linenos">2675</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2676"><a href="#DataType.Type-2676"><span class="linenos">2676</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2677"><a href="#DataType.Type-2677"><span class="linenos">2677</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2678"><a href="#DataType.Type-2678"><span class="linenos">2678</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2679"><a href="#DataType.Type-2679"><span class="linenos">2679</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2680"><a href="#DataType.Type-2680"><span class="linenos">2680</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2681"><a href="#DataType.Type-2681"><span class="linenos">2681</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2682"><a href="#DataType.Type-2682"><span class="linenos">2682</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2683"><a href="#DataType.Type-2683"><span class="linenos">2683</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2684"><a href="#DataType.Type-2684"><span class="linenos">2684</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2685"><a href="#DataType.Type-2685"><span class="linenos">2685</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2686"><a href="#DataType.Type-2686"><span class="linenos">2686</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2687"><a href="#DataType.Type-2687"><span class="linenos">2687</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2688"><a href="#DataType.Type-2688"><span class="linenos">2688</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2689"><a href="#DataType.Type-2689"><span class="linenos">2689</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2690"><a href="#DataType.Type-2690"><span class="linenos">2690</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2691"><a href="#DataType.Type-2691"><span class="linenos">2691</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2692"><a href="#DataType.Type-2692"><span class="linenos">2692</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2693"><a href="#DataType.Type-2693"><span class="linenos">2693</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2694"><a href="#DataType.Type-2694"><span class="linenos">2694</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2695"><a href="#DataType.Type-2695"><span class="linenos">2695</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2696"><a href="#DataType.Type-2696"><span class="linenos">2696</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2697"><a href="#DataType.Type-2697"><span class="linenos">2697</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2698"><a href="#DataType.Type-2698"><span class="linenos">2698</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2699"><a href="#DataType.Type-2699"><span class="linenos">2699</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2700"><a href="#DataType.Type-2700"><span class="linenos">2700</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2701"><a href="#DataType.Type-2701"><span class="linenos">2701</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2702"><a href="#DataType.Type-2702"><span class="linenos">2702</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2703"><a href="#DataType.Type-2703"><span class="linenos">2703</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-2704"><a href="#DataType.Type-2704"><span class="linenos">2704</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
</span></pre></div>
@@ -23921,6 +23972,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
+ <div id="DataType.Type.UINT" class="classattr">
+ <div class="attr variable">
+ <span class="name">UINT</span> =
+<span class="default_value">&lt;Type.UINT: &#39;UINT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.UINT"></a>
+
+
+
+ </div>
<div id="DataType.Type.TINYINT" class="classattr">
<div class="attr variable">
<span class="name">TINYINT</span> =
@@ -23933,6 +23996,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
+ <div id="DataType.Type.UTINYINT" class="classattr">
+ <div class="attr variable">
+ <span class="name">UTINYINT</span> =
+<span class="default_value">&lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.UTINYINT"></a>
+
+
+
+ </div>
<div id="DataType.Type.SMALLINT" class="classattr">
<div class="attr variable">
<span class="name">SMALLINT</span> =
@@ -23945,6 +24020,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
+ <div id="DataType.Type.USMALLINT" class="classattr">
+ <div class="attr variable">
+ <span class="name">USMALLINT</span> =
+<span class="default_value">&lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.USMALLINT"></a>
+
+
+
+ </div>
<div id="DataType.Type.BIGINT" class="classattr">
<div class="attr variable">
<span class="name">BIGINT</span> =
@@ -23957,6 +24044,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
+ <div id="DataType.Type.UBIGINT" class="classattr">
+ <div class="attr variable">
+ <span class="name">UBIGINT</span> =
+<span class="default_value">&lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.UBIGINT"></a>
+
+
+
+ </div>
<div id="DataType.Type.FLOAT" class="classattr">
<div class="attr variable">
<span class="name">FLOAT</span> =
@@ -23993,6 +24092,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
+ <div id="DataType.Type.BIT" class="classattr">
+ <div class="attr variable">
+ <span class="name">BIT</span> =
+<span class="default_value">&lt;Type.BIT: &#39;BIT&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.BIT"></a>
+
+
+
+ </div>
<div id="DataType.Type.BOOLEAN" class="classattr">
<div class="attr variable">
<span class="name">BOOLEAN</span> =
@@ -24423,8 +24534,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#PseudoType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-2757"><a href="#PseudoType-2757"><span class="linenos">2757</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PseudoType-2758"><a href="#PseudoType-2758"><span class="linenos">2758</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-2762"><a href="#PseudoType-2762"><span class="linenos">2762</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PseudoType-2763"><a href="#PseudoType-2763"><span class="linenos">2763</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24485,8 +24596,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#StructKwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructKwarg-2761"><a href="#StructKwarg-2761"><span class="linenos">2761</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="StructKwarg-2762"><a href="#StructKwarg-2762"><span class="linenos">2762</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="StructKwarg-2766"><a href="#StructKwarg-2766"><span class="linenos">2766</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="StructKwarg-2767"><a href="#StructKwarg-2767"><span class="linenos">2767</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>
@@ -24547,8 +24658,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SubqueryPredicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-2766"><a href="#SubqueryPredicate-2766"><span class="linenos">2766</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
-</span><span id="SubqueryPredicate-2767"><a href="#SubqueryPredicate-2767"><span class="linenos">2767</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-2771"><a href="#SubqueryPredicate-2771"><span class="linenos">2771</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="SubqueryPredicate-2772"><a href="#SubqueryPredicate-2772"><span class="linenos">2772</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24615,8 +24726,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#All"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="All-2770"><a href="#All-2770"><span class="linenos">2770</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="All-2771"><a href="#All-2771"><span class="linenos">2771</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="All-2775"><a href="#All-2775"><span class="linenos">2775</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="All-2776"><a href="#All-2776"><span class="linenos">2776</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24683,8 +24794,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Any"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Any-2774"><a href="#Any-2774"><span class="linenos">2774</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="Any-2775"><a href="#Any-2775"><span class="linenos">2775</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Any-2779"><a href="#Any-2779"><span class="linenos">2779</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="Any-2780"><a href="#Any-2780"><span class="linenos">2780</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24751,8 +24862,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Exists"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-2778"><a href="#Exists-2778"><span class="linenos">2778</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
-</span><span id="Exists-2779"><a href="#Exists-2779"><span class="linenos">2779</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-2783"><a href="#Exists-2783"><span class="linenos">2783</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
+</span><span id="Exists-2784"><a href="#Exists-2784"><span class="linenos">2784</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -24819,8 +24930,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Command"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Command-2784"><a href="#Command-2784"><span class="linenos">2784</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Command-2785"><a href="#Command-2785"><span class="linenos">2785</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="Command-2789"><a href="#Command-2789"><span class="linenos">2789</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Command-2790"><a href="#Command-2790"><span class="linenos">2790</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>
@@ -24881,8 +24992,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Transaction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-2788"><a href="#Transaction-2788"><span class="linenos">2788</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Transaction-2789"><a href="#Transaction-2789"><span class="linenos">2789</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;modes&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="Transaction-2793"><a href="#Transaction-2793"><span class="linenos">2793</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Transaction-2794"><a href="#Transaction-2794"><span class="linenos">2794</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;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -24943,8 +25054,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Commit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-2792"><a href="#Commit-2792"><span class="linenos">2792</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Commit-2793"><a href="#Commit-2793"><span class="linenos">2793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&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="Commit-2797"><a href="#Commit-2797"><span class="linenos">2797</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Commit-2798"><a href="#Commit-2798"><span class="linenos">2798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -25005,8 +25116,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Rollback"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-2796"><a href="#Rollback-2796"><span class="linenos">2796</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Rollback-2797"><a href="#Rollback-2797"><span class="linenos">2797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&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="Rollback-2801"><a href="#Rollback-2801"><span class="linenos">2801</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Rollback-2802"><a href="#Rollback-2802"><span class="linenos">2802</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -25067,8 +25178,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AlterTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-2800"><a href="#AlterTable-2800"><span class="linenos">2800</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="AlterTable-2801"><a href="#AlterTable-2801"><span class="linenos">2801</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;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&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="AlterTable-2805"><a href="#AlterTable-2805"><span class="linenos">2805</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="AlterTable-2806"><a href="#AlterTable-2806"><span class="linenos">2806</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;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -25129,8 +25240,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AddConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-2804"><a href="#AddConstraint-2804"><span class="linenos">2804</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="AddConstraint-2805"><a href="#AddConstraint-2805"><span class="linenos">2805</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;enforced&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="AddConstraint-2809"><a href="#AddConstraint-2809"><span class="linenos">2809</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="AddConstraint-2810"><a href="#AddConstraint-2810"><span class="linenos">2810</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;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -25191,8 +25302,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DropPartition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-2808"><a href="#DropPartition-2808"><span class="linenos">2808</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DropPartition-2809"><a href="#DropPartition-2809"><span class="linenos">2809</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 class="s2">&quot;exists&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="DropPartition-2813"><a href="#DropPartition-2813"><span class="linenos">2813</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DropPartition-2814"><a href="#DropPartition-2814"><span class="linenos">2814</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 class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -25253,16 +25364,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Binary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-2813"><a href="#Binary-2813"><span class="linenos">2813</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Binary-2814"><a href="#Binary-2814"><span class="linenos">2814</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="Binary-2815"><a href="#Binary-2815"><span class="linenos">2815</span></a>
-</span><span id="Binary-2816"><a href="#Binary-2816"><span class="linenos">2816</span></a> <span class="nd">@property</span>
-</span><span id="Binary-2817"><a href="#Binary-2817"><span class="linenos">2817</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Binary-2818"><a href="#Binary-2818"><span class="linenos">2818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Binary-2819"><a href="#Binary-2819"><span class="linenos">2819</span></a>
-</span><span id="Binary-2820"><a href="#Binary-2820"><span class="linenos">2820</span></a> <span class="nd">@property</span>
-</span><span id="Binary-2821"><a href="#Binary-2821"><span class="linenos">2821</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Binary-2822"><a href="#Binary-2822"><span class="linenos">2822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-2818"><a href="#Binary-2818"><span class="linenos">2818</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Binary-2819"><a href="#Binary-2819"><span class="linenos">2819</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="Binary-2820"><a href="#Binary-2820"><span class="linenos">2820</span></a>
+</span><span id="Binary-2821"><a href="#Binary-2821"><span class="linenos">2821</span></a> <span class="nd">@property</span>
+</span><span id="Binary-2822"><a href="#Binary-2822"><span class="linenos">2822</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Binary-2823"><a href="#Binary-2823"><span class="linenos">2823</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Binary-2824"><a href="#Binary-2824"><span class="linenos">2824</span></a>
+</span><span id="Binary-2825"><a href="#Binary-2825"><span class="linenos">2825</span></a> <span class="nd">@property</span>
+</span><span id="Binary-2826"><a href="#Binary-2826"><span class="linenos">2826</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Binary-2827"><a href="#Binary-2827"><span class="linenos">2827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -25323,8 +25434,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Add"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Add-2825"><a href="#Add-2825"><span class="linenos">2825</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Add-2826"><a href="#Add-2826"><span class="linenos">2826</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Add-2830"><a href="#Add-2830"><span class="linenos">2830</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Add-2831"><a href="#Add-2831"><span class="linenos">2831</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25385,8 +25496,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Connector"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-2829"><a href="#Connector-2829"><span class="linenos">2829</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="Connector-2830"><a href="#Connector-2830"><span class="linenos">2830</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-2834"><a href="#Connector-2834"><span class="linenos">2834</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="Connector-2835"><a href="#Connector-2835"><span class="linenos">2835</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25453,8 +25564,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#And"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="And-2833"><a href="#And-2833"><span class="linenos">2833</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
-</span><span id="And-2834"><a href="#And-2834"><span class="linenos">2834</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="And-2838"><a href="#And-2838"><span class="linenos">2838</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="And-2839"><a href="#And-2839"><span class="linenos">2839</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25521,8 +25632,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Or"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Or-2837"><a href="#Or-2837"><span class="linenos">2837</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
-</span><span id="Or-2838"><a href="#Or-2838"><span class="linenos">2838</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Or-2842"><a href="#Or-2842"><span class="linenos">2842</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
+</span><span id="Or-2843"><a href="#Or-2843"><span class="linenos">2843</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25589,8 +25700,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-2841"><a href="#BitwiseAnd-2841"><span class="linenos">2841</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="BitwiseAnd-2842"><a href="#BitwiseAnd-2842"><span class="linenos">2842</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-2846"><a href="#BitwiseAnd-2846"><span class="linenos">2846</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="BitwiseAnd-2847"><a href="#BitwiseAnd-2847"><span class="linenos">2847</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25651,8 +25762,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseLeftShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-2845"><a href="#BitwiseLeftShift-2845"><span class="linenos">2845</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="BitwiseLeftShift-2846"><a href="#BitwiseLeftShift-2846"><span class="linenos">2846</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-2850"><a href="#BitwiseLeftShift-2850"><span class="linenos">2850</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="BitwiseLeftShift-2851"><a href="#BitwiseLeftShift-2851"><span class="linenos">2851</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25713,8 +25824,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-2849"><a href="#BitwiseOr-2849"><span class="linenos">2849</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="BitwiseOr-2850"><a href="#BitwiseOr-2850"><span class="linenos">2850</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-2854"><a href="#BitwiseOr-2854"><span class="linenos">2854</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="BitwiseOr-2855"><a href="#BitwiseOr-2855"><span class="linenos">2855</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25775,8 +25886,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseRightShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-2853"><a href="#BitwiseRightShift-2853"><span class="linenos">2853</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="BitwiseRightShift-2854"><a href="#BitwiseRightShift-2854"><span class="linenos">2854</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-2858"><a href="#BitwiseRightShift-2858"><span class="linenos">2858</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="BitwiseRightShift-2859"><a href="#BitwiseRightShift-2859"><span class="linenos">2859</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25837,8 +25948,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseXor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-2857"><a href="#BitwiseXor-2857"><span class="linenos">2857</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="BitwiseXor-2858"><a href="#BitwiseXor-2858"><span class="linenos">2858</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-2862"><a href="#BitwiseXor-2862"><span class="linenos">2862</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="BitwiseXor-2863"><a href="#BitwiseXor-2863"><span class="linenos">2863</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25899,8 +26010,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Div"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Div-2861"><a href="#Div-2861"><span class="linenos">2861</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Div-2862"><a href="#Div-2862"><span class="linenos">2862</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Div-2866"><a href="#Div-2866"><span class="linenos">2866</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Div-2867"><a href="#Div-2867"><span class="linenos">2867</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -25961,8 +26072,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#FloatDiv"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FloatDiv-2865"><a href="#FloatDiv-2865"><span class="linenos">2865</span></a><span class="k">class</span> <span class="nc">FloatDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="FloatDiv-2866"><a href="#FloatDiv-2866"><span class="linenos">2866</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FloatDiv-2870"><a href="#FloatDiv-2870"><span class="linenos">2870</span></a><span class="k">class</span> <span class="nc">FloatDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="FloatDiv-2871"><a href="#FloatDiv-2871"><span class="linenos">2871</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26023,8 +26134,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Overlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-2869"><a href="#Overlaps-2869"><span class="linenos">2869</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Overlaps-2870"><a href="#Overlaps-2870"><span class="linenos">2870</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-2874"><a href="#Overlaps-2874"><span class="linenos">2874</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Overlaps-2875"><a href="#Overlaps-2875"><span class="linenos">2875</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26085,10 +26196,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Dot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-2873"><a href="#Dot-2873"><span class="linenos">2873</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Dot-2874"><a href="#Dot-2874"><span class="linenos">2874</span></a> <span class="nd">@property</span>
-</span><span id="Dot-2875"><a href="#Dot-2875"><span class="linenos">2875</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Dot-2876"><a href="#Dot-2876"><span class="linenos">2876</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-2878"><a href="#Dot-2878"><span class="linenos">2878</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Dot-2879"><a href="#Dot-2879"><span class="linenos">2879</span></a> <span class="nd">@property</span>
+</span><span id="Dot-2880"><a href="#Dot-2880"><span class="linenos">2880</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Dot-2881"><a href="#Dot-2881"><span class="linenos">2881</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -26149,8 +26260,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#DPipe"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-2879"><a href="#DPipe-2879"><span class="linenos">2879</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="DPipe-2880"><a href="#DPipe-2880"><span class="linenos">2880</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-2884"><a href="#DPipe-2884"><span class="linenos">2884</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="DPipe-2885"><a href="#DPipe-2885"><span class="linenos">2885</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26211,8 +26322,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#EQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-2883"><a href="#EQ-2883"><span class="linenos">2883</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="EQ-2884"><a href="#EQ-2884"><span class="linenos">2884</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-2888"><a href="#EQ-2888"><span class="linenos">2888</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="EQ-2889"><a href="#EQ-2889"><span class="linenos">2889</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26279,8 +26390,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NullSafeEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-2887"><a href="#NullSafeEQ-2887"><span class="linenos">2887</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="NullSafeEQ-2888"><a href="#NullSafeEQ-2888"><span class="linenos">2888</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-2892"><a href="#NullSafeEQ-2892"><span class="linenos">2892</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="NullSafeEQ-2893"><a href="#NullSafeEQ-2893"><span class="linenos">2893</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26347,8 +26458,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NullSafeNEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-2891"><a href="#NullSafeNEQ-2891"><span class="linenos">2891</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="NullSafeNEQ-2892"><a href="#NullSafeNEQ-2892"><span class="linenos">2892</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-2896"><a href="#NullSafeNEQ-2896"><span class="linenos">2896</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="NullSafeNEQ-2897"><a href="#NullSafeNEQ-2897"><span class="linenos">2897</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26415,8 +26526,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Distance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-2895"><a href="#Distance-2895"><span class="linenos">2895</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Distance-2896"><a href="#Distance-2896"><span class="linenos">2896</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-2900"><a href="#Distance-2900"><span class="linenos">2900</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Distance-2901"><a href="#Distance-2901"><span class="linenos">2901</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26477,8 +26588,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Escape"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-2899"><a href="#Escape-2899"><span class="linenos">2899</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Escape-2900"><a href="#Escape-2900"><span class="linenos">2900</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-2904"><a href="#Escape-2904"><span class="linenos">2904</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Escape-2905"><a href="#Escape-2905"><span class="linenos">2905</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26539,8 +26650,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Glob"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-2903"><a href="#Glob-2903"><span class="linenos">2903</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="Glob-2904"><a href="#Glob-2904"><span class="linenos">2904</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-2908"><a href="#Glob-2908"><span class="linenos">2908</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="Glob-2909"><a href="#Glob-2909"><span class="linenos">2909</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26607,8 +26718,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#GT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GT-2907"><a href="#GT-2907"><span class="linenos">2907</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="GT-2908"><a href="#GT-2908"><span class="linenos">2908</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GT-2912"><a href="#GT-2912"><span class="linenos">2912</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="GT-2913"><a href="#GT-2913"><span class="linenos">2913</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26675,8 +26786,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#GTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-2911"><a href="#GTE-2911"><span class="linenos">2911</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="GTE-2912"><a href="#GTE-2912"><span class="linenos">2912</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-2916"><a href="#GTE-2916"><span class="linenos">2916</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="GTE-2917"><a href="#GTE-2917"><span class="linenos">2917</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26743,8 +26854,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-2915"><a href="#ILike-2915"><span class="linenos">2915</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="ILike-2916"><a href="#ILike-2916"><span class="linenos">2916</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-2920"><a href="#ILike-2920"><span class="linenos">2920</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="ILike-2921"><a href="#ILike-2921"><span class="linenos">2921</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26811,8 +26922,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#ILikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-2919"><a href="#ILikeAny-2919"><span class="linenos">2919</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="ILikeAny-2920"><a href="#ILikeAny-2920"><span class="linenos">2920</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-2924"><a href="#ILikeAny-2924"><span class="linenos">2924</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="ILikeAny-2925"><a href="#ILikeAny-2925"><span class="linenos">2925</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26879,8 +26990,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#IntDiv"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-2923"><a href="#IntDiv-2923"><span class="linenos">2923</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="IntDiv-2924"><a href="#IntDiv-2924"><span class="linenos">2924</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-2928"><a href="#IntDiv-2928"><span class="linenos">2928</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="IntDiv-2929"><a href="#IntDiv-2929"><span class="linenos">2929</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -26941,8 +27052,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Is-2927"><a href="#Is-2927"><span class="linenos">2927</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="Is-2928"><a href="#Is-2928"><span class="linenos">2928</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Is-2932"><a href="#Is-2932"><span class="linenos">2932</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="Is-2933"><a href="#Is-2933"><span class="linenos">2933</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27009,8 +27120,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Kwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-2931"><a href="#Kwarg-2931"><span class="linenos">2931</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Kwarg-2932"><a href="#Kwarg-2932"><span class="linenos">2932</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Kwarg in special functions like func(kwarg =&gt; y).&quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-2936"><a href="#Kwarg-2936"><span class="linenos">2936</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Kwarg-2937"><a href="#Kwarg-2937"><span class="linenos">2937</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Kwarg in special functions like func(kwarg =&gt; y).&quot;&quot;&quot;</span>
</span></pre></div>
@@ -27073,8 +27184,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Like-2935"><a href="#Like-2935"><span class="linenos">2935</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="Like-2936"><a href="#Like-2936"><span class="linenos">2936</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Like-2940"><a href="#Like-2940"><span class="linenos">2940</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="Like-2941"><a href="#Like-2941"><span class="linenos">2941</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27141,8 +27252,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-2939"><a href="#LikeAny-2939"><span class="linenos">2939</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="LikeAny-2940"><a href="#LikeAny-2940"><span class="linenos">2940</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-2944"><a href="#LikeAny-2944"><span class="linenos">2944</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="LikeAny-2945"><a href="#LikeAny-2945"><span class="linenos">2945</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27209,8 +27320,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LT-2943"><a href="#LT-2943"><span class="linenos">2943</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="LT-2944"><a href="#LT-2944"><span class="linenos">2944</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LT-2948"><a href="#LT-2948"><span class="linenos">2948</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="LT-2949"><a href="#LT-2949"><span class="linenos">2949</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27277,8 +27388,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#LTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-2947"><a href="#LTE-2947"><span class="linenos">2947</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="LTE-2948"><a href="#LTE-2948"><span class="linenos">2948</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-2952"><a href="#LTE-2952"><span class="linenos">2952</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="LTE-2953"><a href="#LTE-2953"><span class="linenos">2953</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27345,8 +27456,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Mod"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-2951"><a href="#Mod-2951"><span class="linenos">2951</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Mod-2952"><a href="#Mod-2952"><span class="linenos">2952</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-2956"><a href="#Mod-2956"><span class="linenos">2956</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Mod-2957"><a href="#Mod-2957"><span class="linenos">2957</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27407,8 +27518,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Mul"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-2955"><a href="#Mul-2955"><span class="linenos">2955</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Mul-2956"><a href="#Mul-2956"><span class="linenos">2956</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-2960"><a href="#Mul-2960"><span class="linenos">2960</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Mul-2961"><a href="#Mul-2961"><span class="linenos">2961</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27469,8 +27580,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#NEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-2959"><a href="#NEQ-2959"><span class="linenos">2959</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="NEQ-2960"><a href="#NEQ-2960"><span class="linenos">2960</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-2964"><a href="#NEQ-2964"><span class="linenos">2964</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="NEQ-2965"><a href="#NEQ-2965"><span class="linenos">2965</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27537,8 +27648,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#SimilarTo"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-2963"><a href="#SimilarTo-2963"><span class="linenos">2963</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
-</span><span id="SimilarTo-2964"><a href="#SimilarTo-2964"><span class="linenos">2964</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-2968"><a href="#SimilarTo-2968"><span class="linenos">2968</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
+</span><span id="SimilarTo-2969"><a href="#SimilarTo-2969"><span class="linenos">2969</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27605,8 +27716,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Slice"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-2967"><a href="#Slice-2967"><span class="linenos">2967</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Slice-2968"><a href="#Slice-2968"><span class="linenos">2968</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-2972"><a href="#Slice-2972"><span class="linenos">2972</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Slice-2973"><a href="#Slice-2973"><span class="linenos">2973</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></pre></div>
@@ -27667,8 +27778,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Sub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-2971"><a href="#Sub-2971"><span class="linenos">2971</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Sub-2972"><a href="#Sub-2972"><span class="linenos">2972</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-2976"><a href="#Sub-2976"><span class="linenos">2976</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Sub-2977"><a href="#Sub-2977"><span class="linenos">2977</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27718,6 +27829,68 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</dl>
</div>
</section>
+ <section id="ArrayOverlaps">
+ <input id="ArrayOverlaps-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">ArrayOverlaps</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
+
+ <label class="view-source-button" for="ArrayOverlaps-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#ArrayOverlaps"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-2980"><a href="#ArrayOverlaps-2980"><span class="linenos">2980</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="ArrayOverlaps-2981"><a href="#ArrayOverlaps-2981"><span class="linenos">2981</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="ArrayOverlaps.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="ArrayOverlaps.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="ArrayOverlaps.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="ArrayOverlaps.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="ArrayOverlaps.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="ArrayOverlaps.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="ArrayOverlaps.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="ArrayOverlaps.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="ArrayOverlaps.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="ArrayOverlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayOverlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="ArrayOverlaps.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="ArrayOverlaps.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="ArrayOverlaps.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="ArrayOverlaps.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="ArrayOverlaps.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="ArrayOverlaps.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="ArrayOverlaps.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="ArrayOverlaps.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="ArrayOverlaps.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="ArrayOverlaps.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="ArrayOverlaps.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="ArrayOverlaps.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="ArrayOverlaps.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="ArrayOverlaps.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="ArrayOverlaps.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="ArrayOverlaps.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayOverlaps.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="ArrayOverlaps.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="ArrayOverlaps.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="ArrayOverlaps.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="ArrayOverlaps.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="ArrayOverlaps.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="ArrayOverlaps.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="ArrayOverlaps.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Unary">
<input id="Unary-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -27729,8 +27902,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Unary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-2977"><a href="#Unary-2977"><span class="linenos">2977</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Unary-2978"><a href="#Unary-2978"><span class="linenos">2978</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-2986"><a href="#Unary-2986"><span class="linenos">2986</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Unary-2987"><a href="#Unary-2987"><span class="linenos">2987</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27791,8 +27964,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#BitwiseNot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-2981"><a href="#BitwiseNot-2981"><span class="linenos">2981</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="BitwiseNot-2982"><a href="#BitwiseNot-2982"><span class="linenos">2982</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-2990"><a href="#BitwiseNot-2990"><span class="linenos">2990</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="BitwiseNot-2991"><a href="#BitwiseNot-2991"><span class="linenos">2991</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27853,8 +28026,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Not"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Not-2985"><a href="#Not-2985"><span class="linenos">2985</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="Not-2986"><a href="#Not-2986"><span class="linenos">2986</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Not-2994"><a href="#Not-2994"><span class="linenos">2994</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="Not-2995"><a href="#Not-2995"><span class="linenos">2995</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -27921,8 +28094,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-2989"><a href="#Paren-2989"><span class="linenos">2989</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
-</span><span id="Paren-2990"><a href="#Paren-2990"><span class="linenos">2990</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;with&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="Paren-2998"><a href="#Paren-2998"><span class="linenos">2998</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
+</span><span id="Paren-2999"><a href="#Paren-2999"><span class="linenos">2999</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;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -27989,8 +28162,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Neg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-2993"><a href="#Neg-2993"><span class="linenos">2993</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="Neg-2994"><a href="#Neg-2994"><span class="linenos">2994</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3002"><a href="#Neg-3002"><span class="linenos">3002</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
+</span><span id="Neg-3003"><a href="#Neg-3003"><span class="linenos">3003</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28051,12 +28224,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Alias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-2998"><a href="#Alias-2998"><span class="linenos">2998</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Alias-2999"><a href="#Alias-2999"><span class="linenos">2999</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;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Alias-3000"><a href="#Alias-3000"><span class="linenos">3000</span></a>
-</span><span id="Alias-3001"><a href="#Alias-3001"><span class="linenos">3001</span></a> <span class="nd">@property</span>
-</span><span id="Alias-3002"><a href="#Alias-3002"><span class="linenos">3002</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Alias-3003"><a href="#Alias-3003"><span class="linenos">3003</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-3007"><a href="#Alias-3007"><span class="linenos">3007</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Alias-3008"><a href="#Alias-3008"><span class="linenos">3008</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;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Alias-3009"><a href="#Alias-3009"><span class="linenos">3009</span></a>
+</span><span id="Alias-3010"><a href="#Alias-3010"><span class="linenos">3010</span></a> <span class="nd">@property</span>
+</span><span id="Alias-3011"><a href="#Alias-3011"><span class="linenos">3011</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Alias-3012"><a href="#Alias-3012"><span class="linenos">3012</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -28146,12 +28319,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Aliases"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3006"><a href="#Aliases-3006"><span class="linenos">3006</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Aliases-3007"><a href="#Aliases-3007"><span class="linenos">3007</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><span id="Aliases-3008"><a href="#Aliases-3008"><span class="linenos">3008</span></a>
-</span><span id="Aliases-3009"><a href="#Aliases-3009"><span class="linenos">3009</span></a> <span class="nd">@property</span>
-</span><span id="Aliases-3010"><a href="#Aliases-3010"><span class="linenos">3010</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Aliases-3011"><a href="#Aliases-3011"><span class="linenos">3011</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3015"><a href="#Aliases-3015"><span class="linenos">3015</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Aliases-3016"><a href="#Aliases-3016"><span class="linenos">3016</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><span id="Aliases-3017"><a href="#Aliases-3017"><span class="linenos">3017</span></a>
+</span><span id="Aliases-3018"><a href="#Aliases-3018"><span class="linenos">3018</span></a> <span class="nd">@property</span>
+</span><span id="Aliases-3019"><a href="#Aliases-3019"><span class="linenos">3019</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Aliases-3020"><a href="#Aliases-3020"><span class="linenos">3020</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -28212,8 +28385,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#AtTimeZone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-3014"><a href="#AtTimeZone-3014"><span class="linenos">3014</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="AtTimeZone-3015"><a href="#AtTimeZone-3015"><span class="linenos">3015</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;zone&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="AtTimeZone-3023"><a href="#AtTimeZone-3023"><span class="linenos">3023</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="AtTimeZone-3024"><a href="#AtTimeZone-3024"><span class="linenos">3024</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;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -28274,8 +28447,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Between-3018"><a href="#Between-3018"><span class="linenos">3018</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
-</span><span id="Between-3019"><a href="#Between-3019"><span class="linenos">3019</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;low&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;high&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="Between-3027"><a href="#Between-3027"><span class="linenos">3027</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="Between-3028"><a href="#Between-3028"><span class="linenos">3028</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;low&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;high&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -28342,8 +28515,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Bracket"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3022"><a href="#Bracket-3022"><span class="linenos">3022</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Bracket-3023"><a href="#Bracket-3023"><span class="linenos">3023</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3031"><a href="#Bracket-3031"><span class="linenos">3031</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Bracket-3032"><a href="#Bracket-3032"><span class="linenos">3032</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></pre></div>
@@ -28410,8 +28583,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-3026"><a href="#Distinct-3026"><span class="linenos">3026</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Distinct-3027"><a href="#Distinct-3027"><span class="linenos">3027</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">False</span><span class="p">,</span> <span class="s2">&quot;on&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="Distinct-3035"><a href="#Distinct-3035"><span class="linenos">3035</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Distinct-3036"><a href="#Distinct-3036"><span class="linenos">3036</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">False</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -28472,15 +28645,15 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#In"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="In-3030"><a href="#In-3030"><span class="linenos">3030</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
-</span><span id="In-3031"><a href="#In-3031"><span class="linenos">3031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="In-3032"><a href="#In-3032"><span class="linenos">3032</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="In-3033"><a href="#In-3033"><span class="linenos">3033</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="In-3034"><a href="#In-3034"><span class="linenos">3034</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="In-3035"><a href="#In-3035"><span class="linenos">3035</span></a> <span class="s2">&quot;unnest&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="In-3036"><a href="#In-3036"><span class="linenos">3036</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="In-3037"><a href="#In-3037"><span class="linenos">3037</span></a> <span class="s2">&quot;is_global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="In-3038"><a href="#In-3038"><span class="linenos">3038</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="In-3039"><a href="#In-3039"><span class="linenos">3039</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
+</span><span id="In-3040"><a href="#In-3040"><span class="linenos">3040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="In-3041"><a href="#In-3041"><span class="linenos">3041</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="In-3042"><a href="#In-3042"><span class="linenos">3042</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="In-3043"><a href="#In-3043"><span class="linenos">3043</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="In-3044"><a href="#In-3044"><span class="linenos">3044</span></a> <span class="s2">&quot;unnest&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="In-3045"><a href="#In-3045"><span class="linenos">3045</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="In-3046"><a href="#In-3046"><span class="linenos">3046</span></a> <span class="s2">&quot;is_global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="In-3047"><a href="#In-3047"><span class="linenos">3047</span></a> <span class="p">}</span>
</span></pre></div>
@@ -28547,18 +28720,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TimeUnit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3041"><a href="#TimeUnit-3041"><span class="linenos">3041</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="TimeUnit-3042"><a href="#TimeUnit-3042"><span class="linenos">3042</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Automatically converts unit arg into a var.&quot;&quot;&quot;</span>
-</span><span id="TimeUnit-3043"><a href="#TimeUnit-3043"><span class="linenos">3043</span></a>
-</span><span id="TimeUnit-3044"><a href="#TimeUnit-3044"><span class="linenos">3044</span></a> <span class="n">arg_types</span> <span class="o">=</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="TimeUnit-3045"><a href="#TimeUnit-3045"><span class="linenos">3045</span></a>
-</span><span id="TimeUnit-3046"><a href="#TimeUnit-3046"><span class="linenos">3046</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
-</span><span id="TimeUnit-3047"><a href="#TimeUnit-3047"><span class="linenos">3047</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
-</span><span id="TimeUnit-3048"><a href="#TimeUnit-3048"><span class="linenos">3048</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="TimeUnit-3049"><a href="#TimeUnit-3049"><span class="linenos">3049</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</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">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit-3050"><a href="#TimeUnit-3050"><span class="linenos">3050</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
-</span><span id="TimeUnit-3051"><a href="#TimeUnit-3051"><span class="linenos">3051</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
-</span><span id="TimeUnit-3052"><a href="#TimeUnit-3052"><span class="linenos">3052</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3050"><a href="#TimeUnit-3050"><span class="linenos">3050</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="TimeUnit-3051"><a href="#TimeUnit-3051"><span class="linenos">3051</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Automatically converts unit arg into a var.&quot;&quot;&quot;</span>
+</span><span id="TimeUnit-3052"><a href="#TimeUnit-3052"><span class="linenos">3052</span></a>
+</span><span id="TimeUnit-3053"><a href="#TimeUnit-3053"><span class="linenos">3053</span></a> <span class="n">arg_types</span> <span class="o">=</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="TimeUnit-3054"><a href="#TimeUnit-3054"><span class="linenos">3054</span></a>
+</span><span id="TimeUnit-3055"><a href="#TimeUnit-3055"><span class="linenos">3055</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
+</span><span id="TimeUnit-3056"><a href="#TimeUnit-3056"><span class="linenos">3056</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="TimeUnit-3057"><a href="#TimeUnit-3057"><span class="linenos">3057</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="TimeUnit-3058"><a href="#TimeUnit-3058"><span class="linenos">3058</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</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">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="TimeUnit-3059"><a href="#TimeUnit-3059"><span class="linenos">3059</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
+</span><span id="TimeUnit-3060"><a href="#TimeUnit-3060"><span class="linenos">3060</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+</span><span id="TimeUnit-3061"><a href="#TimeUnit-3061"><span class="linenos">3061</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
</span></pre></div>
@@ -28576,13 +28749,13 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#TimeUnit.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3046"><a href="#TimeUnit.__init__-3046"><span class="linenos">3046</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
-</span><span id="TimeUnit.__init__-3047"><a href="#TimeUnit.__init__-3047"><span class="linenos">3047</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
-</span><span id="TimeUnit.__init__-3048"><a href="#TimeUnit.__init__-3048"><span class="linenos">3048</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
-</span><span id="TimeUnit.__init__-3049"><a href="#TimeUnit.__init__-3049"><span class="linenos">3049</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</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">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="TimeUnit.__init__-3050"><a href="#TimeUnit.__init__-3050"><span class="linenos">3050</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
-</span><span id="TimeUnit.__init__-3051"><a href="#TimeUnit.__init__-3051"><span class="linenos">3051</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
-</span><span id="TimeUnit.__init__-3052"><a href="#TimeUnit.__init__-3052"><span class="linenos">3052</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3055"><a href="#TimeUnit.__init__-3055"><span class="linenos">3055</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
+</span><span id="TimeUnit.__init__-3056"><a href="#TimeUnit.__init__-3056"><span class="linenos">3056</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="TimeUnit.__init__-3057"><a href="#TimeUnit.__init__-3057"><span class="linenos">3057</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
+</span><span id="TimeUnit.__init__-3058"><a href="#TimeUnit.__init__-3058"><span class="linenos">3058</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</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">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="TimeUnit.__init__-3059"><a href="#TimeUnit.__init__-3059"><span class="linenos">3059</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
+</span><span id="TimeUnit.__init__-3060"><a href="#TimeUnit.__init__-3060"><span class="linenos">3060</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+</span><span id="TimeUnit.__init__-3061"><a href="#TimeUnit.__init__-3061"><span class="linenos">3061</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
</span></pre></div>
@@ -28643,8 +28816,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-3055"><a href="#Interval-3055"><span class="linenos">3055</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="Interval-3056"><a href="#Interval-3056"><span class="linenos">3056</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;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="Interval-3064"><a href="#Interval-3064"><span class="linenos">3064</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="Interval-3065"><a href="#Interval-3065"><span class="linenos">3065</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;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -28708,8 +28881,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#IgnoreNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3059"><a href="#IgnoreNulls-3059"><span class="linenos">3059</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="IgnoreNulls-3060"><a href="#IgnoreNulls-3060"><span class="linenos">3060</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3068"><a href="#IgnoreNulls-3068"><span class="linenos">3068</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="IgnoreNulls-3069"><a href="#IgnoreNulls-3069"><span class="linenos">3069</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28770,8 +28943,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#RespectNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3063"><a href="#RespectNulls-3063"><span class="linenos">3063</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="RespectNulls-3064"><a href="#RespectNulls-3064"><span class="linenos">3064</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3072"><a href="#RespectNulls-3072"><span class="linenos">3072</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="RespectNulls-3073"><a href="#RespectNulls-3073"><span class="linenos">3073</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -28832,53 +29005,53 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func-3068"><a href="#Func-3068"><span class="linenos">3068</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Func-3069"><a href="#Func-3069"><span class="linenos">3069</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Func-3070"><a href="#Func-3070"><span class="linenos">3070</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="Func-3071"><a href="#Func-3071"><span class="linenos">3071</span></a>
-</span><span id="Func-3072"><a href="#Func-3072"><span class="linenos">3072</span></a><span class="sd"> Attributes:</span>
-</span><span id="Func-3073"><a href="#Func-3073"><span class="linenos">3073</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span>
-</span><span id="Func-3074"><a href="#Func-3074"><span class="linenos">3074</span></a><span class="sd"> treated as a variable length argument and the argument&#39;s value will be stored as a list.</span>
-</span><span id="Func-3075"><a href="#Func-3075"><span class="linenos">3075</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
-</span><span id="Func-3076"><a href="#Func-3076"><span class="linenos">3076</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
-</span><span id="Func-3077"><a href="#Func-3077"><span class="linenos">3077</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
-</span><span id="Func-3078"><a href="#Func-3078"><span class="linenos">3078</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="Func-3079"><a href="#Func-3079"><span class="linenos">3079</span></a><span class="sd"> &quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Func-3077"><a href="#Func-3077"><span class="linenos">3077</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Func-3078"><a href="#Func-3078"><span class="linenos">3078</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Func-3079"><a href="#Func-3079"><span class="linenos">3079</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="Func-3080"><a href="#Func-3080"><span class="linenos">3080</span></a>
-</span><span id="Func-3081"><a href="#Func-3081"><span class="linenos">3081</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="Func-3082"><a href="#Func-3082"><span class="linenos">3082</span></a>
-</span><span id="Func-3083"><a href="#Func-3083"><span class="linenos">3083</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3084"><a href="#Func-3084"><span class="linenos">3084</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
-</span><span id="Func-3085"><a href="#Func-3085"><span class="linenos">3085</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
-</span><span id="Func-3086"><a href="#Func-3086"><span class="linenos">3086</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="Func-3087"><a href="#Func-3087"><span class="linenos">3087</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="Func-3088"><a href="#Func-3088"><span class="linenos">3088</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
-</span><span id="Func-3089"><a href="#Func-3089"><span class="linenos">3089</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
-</span><span id="Func-3090"><a href="#Func-3090"><span class="linenos">3090</span></a>
-</span><span id="Func-3091"><a href="#Func-3091"><span class="linenos">3091</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
-</span><span id="Func-3092"><a href="#Func-3092"><span class="linenos">3092</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
-</span><span id="Func-3093"><a href="#Func-3093"><span class="linenos">3093</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func-3094"><a href="#Func-3094"><span class="linenos">3094</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
-</span><span id="Func-3095"><a href="#Func-3095"><span class="linenos">3095</span></a>
-</span><span id="Func-3096"><a href="#Func-3096"><span class="linenos">3096</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
-</span><span id="Func-3097"><a href="#Func-3097"><span class="linenos">3097</span></a>
-</span><span id="Func-3098"><a href="#Func-3098"><span class="linenos">3098</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3099"><a href="#Func-3099"><span class="linenos">3099</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="Func-3100"><a href="#Func-3100"><span class="linenos">3100</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="Func-3101"><a href="#Func-3101"><span class="linenos">3101</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func-3102"><a href="#Func-3102"><span class="linenos">3102</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func-3103"><a href="#Func-3103"><span class="linenos">3103</span></a> <span class="p">)</span>
-</span><span id="Func-3104"><a href="#Func-3104"><span class="linenos">3104</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
-</span><span id="Func-3105"><a href="#Func-3105"><span class="linenos">3105</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
-</span><span id="Func-3106"><a href="#Func-3106"><span class="linenos">3106</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
-</span><span id="Func-3107"><a href="#Func-3107"><span class="linenos">3107</span></a>
-</span><span id="Func-3108"><a href="#Func-3108"><span class="linenos">3108</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3109"><a href="#Func-3109"><span class="linenos">3109</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="Func-3110"><a href="#Func-3110"><span class="linenos">3110</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
-</span><span id="Func-3111"><a href="#Func-3111"><span class="linenos">3111</span></a>
-</span><span id="Func-3112"><a href="#Func-3112"><span class="linenos">3112</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-3113"><a href="#Func-3113"><span class="linenos">3113</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="Func-3114"><a href="#Func-3114"><span class="linenos">3114</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
+</span><span id="Func-3081"><a href="#Func-3081"><span class="linenos">3081</span></a><span class="sd"> Attributes:</span>
+</span><span id="Func-3082"><a href="#Func-3082"><span class="linenos">3082</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span>
+</span><span id="Func-3083"><a href="#Func-3083"><span class="linenos">3083</span></a><span class="sd"> treated as a variable length argument and the argument&#39;s value will be stored as a list.</span>
+</span><span id="Func-3084"><a href="#Func-3084"><span class="linenos">3084</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
+</span><span id="Func-3085"><a href="#Func-3085"><span class="linenos">3085</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
+</span><span id="Func-3086"><a href="#Func-3086"><span class="linenos">3086</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
+</span><span id="Func-3087"><a href="#Func-3087"><span class="linenos">3087</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="Func-3088"><a href="#Func-3088"><span class="linenos">3088</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Func-3089"><a href="#Func-3089"><span class="linenos">3089</span></a>
+</span><span id="Func-3090"><a href="#Func-3090"><span class="linenos">3090</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="Func-3091"><a href="#Func-3091"><span class="linenos">3091</span></a>
+</span><span id="Func-3092"><a href="#Func-3092"><span class="linenos">3092</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3093"><a href="#Func-3093"><span class="linenos">3093</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
+</span><span id="Func-3094"><a href="#Func-3094"><span class="linenos">3094</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
+</span><span id="Func-3095"><a href="#Func-3095"><span class="linenos">3095</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="Func-3096"><a href="#Func-3096"><span class="linenos">3096</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="Func-3097"><a href="#Func-3097"><span class="linenos">3097</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
+</span><span id="Func-3098"><a href="#Func-3098"><span class="linenos">3098</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
+</span><span id="Func-3099"><a href="#Func-3099"><span class="linenos">3099</span></a>
+</span><span id="Func-3100"><a href="#Func-3100"><span class="linenos">3100</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
+</span><span id="Func-3101"><a href="#Func-3101"><span class="linenos">3101</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
+</span><span id="Func-3102"><a href="#Func-3102"><span class="linenos">3102</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func-3103"><a href="#Func-3103"><span class="linenos">3103</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
+</span><span id="Func-3104"><a href="#Func-3104"><span class="linenos">3104</span></a>
+</span><span id="Func-3105"><a href="#Func-3105"><span class="linenos">3105</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
+</span><span id="Func-3106"><a href="#Func-3106"><span class="linenos">3106</span></a>
+</span><span id="Func-3107"><a href="#Func-3107"><span class="linenos">3107</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3108"><a href="#Func-3108"><span class="linenos">3108</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="Func-3109"><a href="#Func-3109"><span class="linenos">3109</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="Func-3110"><a href="#Func-3110"><span class="linenos">3110</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func-3111"><a href="#Func-3111"><span class="linenos">3111</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func-3112"><a href="#Func-3112"><span class="linenos">3112</span></a> <span class="p">)</span>
+</span><span id="Func-3113"><a href="#Func-3113"><span class="linenos">3113</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
+</span><span id="Func-3114"><a href="#Func-3114"><span class="linenos">3114</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
+</span><span id="Func-3115"><a href="#Func-3115"><span class="linenos">3115</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
+</span><span id="Func-3116"><a href="#Func-3116"><span class="linenos">3116</span></a>
+</span><span id="Func-3117"><a href="#Func-3117"><span class="linenos">3117</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3118"><a href="#Func-3118"><span class="linenos">3118</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="Func-3119"><a href="#Func-3119"><span class="linenos">3119</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+</span><span id="Func-3120"><a href="#Func-3120"><span class="linenos">3120</span></a>
+</span><span id="Func-3121"><a href="#Func-3121"><span class="linenos">3121</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-3122"><a href="#Func-3122"><span class="linenos">3122</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="Func-3123"><a href="#Func-3123"><span class="linenos">3123</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
</span></pre></div>
@@ -28909,20 +29082,20 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Func.from_arg_list"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func.from_arg_list-3083"><a href="#Func.from_arg_list-3083"><span class="linenos">3083</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.from_arg_list-3084"><a href="#Func.from_arg_list-3084"><span class="linenos">3084</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
-</span><span id="Func.from_arg_list-3085"><a href="#Func.from_arg_list-3085"><span class="linenos">3085</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
-</span><span id="Func.from_arg_list-3086"><a href="#Func.from_arg_list-3086"><span class="linenos">3086</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
-</span><span id="Func.from_arg_list-3087"><a href="#Func.from_arg_list-3087"><span class="linenos">3087</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="Func.from_arg_list-3088"><a href="#Func.from_arg_list-3088"><span class="linenos">3088</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
-</span><span id="Func.from_arg_list-3089"><a href="#Func.from_arg_list-3089"><span class="linenos">3089</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
-</span><span id="Func.from_arg_list-3090"><a href="#Func.from_arg_list-3090"><span class="linenos">3090</span></a>
-</span><span id="Func.from_arg_list-3091"><a href="#Func.from_arg_list-3091"><span class="linenos">3091</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
-</span><span id="Func.from_arg_list-3092"><a href="#Func.from_arg_list-3092"><span class="linenos">3092</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
-</span><span id="Func.from_arg_list-3093"><a href="#Func.from_arg_list-3093"><span class="linenos">3093</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func.from_arg_list-3094"><a href="#Func.from_arg_list-3094"><span class="linenos">3094</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
-</span><span id="Func.from_arg_list-3095"><a href="#Func.from_arg_list-3095"><span class="linenos">3095</span></a>
-</span><span id="Func.from_arg_list-3096"><a href="#Func.from_arg_list-3096"><span class="linenos">3096</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Func.from_arg_list-3092"><a href="#Func.from_arg_list-3092"><span class="linenos">3092</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.from_arg_list-3093"><a href="#Func.from_arg_list-3093"><span class="linenos">3093</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
+</span><span id="Func.from_arg_list-3094"><a href="#Func.from_arg_list-3094"><span class="linenos">3094</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
+</span><span id="Func.from_arg_list-3095"><a href="#Func.from_arg_list-3095"><span class="linenos">3095</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
+</span><span id="Func.from_arg_list-3096"><a href="#Func.from_arg_list-3096"><span class="linenos">3096</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="Func.from_arg_list-3097"><a href="#Func.from_arg_list-3097"><span class="linenos">3097</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
+</span><span id="Func.from_arg_list-3098"><a href="#Func.from_arg_list-3098"><span class="linenos">3098</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
+</span><span id="Func.from_arg_list-3099"><a href="#Func.from_arg_list-3099"><span class="linenos">3099</span></a>
+</span><span id="Func.from_arg_list-3100"><a href="#Func.from_arg_list-3100"><span class="linenos">3100</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
+</span><span id="Func.from_arg_list-3101"><a href="#Func.from_arg_list-3101"><span class="linenos">3101</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
+</span><span id="Func.from_arg_list-3102"><a href="#Func.from_arg_list-3102"><span class="linenos">3102</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func.from_arg_list-3103"><a href="#Func.from_arg_list-3103"><span class="linenos">3103</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
+</span><span id="Func.from_arg_list-3104"><a href="#Func.from_arg_list-3104"><span class="linenos">3104</span></a>
+</span><span id="Func.from_arg_list-3105"><a href="#Func.from_arg_list-3105"><span class="linenos">3105</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
</span></pre></div>
@@ -28941,15 +29114,15 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Func.sql_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_names-3098"><a href="#Func.sql_names-3098"><span class="linenos">3098</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_names-3099"><a href="#Func.sql_names-3099"><span class="linenos">3099</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="Func.sql_names-3100"><a href="#Func.sql_names-3100"><span class="linenos">3100</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
-</span><span id="Func.sql_names-3101"><a href="#Func.sql_names-3101"><span class="linenos">3101</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func.sql_names-3102"><a href="#Func.sql_names-3102"><span class="linenos">3102</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func.sql_names-3103"><a href="#Func.sql_names-3103"><span class="linenos">3103</span></a> <span class="p">)</span>
-</span><span id="Func.sql_names-3104"><a href="#Func.sql_names-3104"><span class="linenos">3104</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
-</span><span id="Func.sql_names-3105"><a href="#Func.sql_names-3105"><span class="linenos">3105</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
-</span><span id="Func.sql_names-3106"><a href="#Func.sql_names-3106"><span class="linenos">3106</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_names-3107"><a href="#Func.sql_names-3107"><span class="linenos">3107</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_names-3108"><a href="#Func.sql_names-3108"><span class="linenos">3108</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="Func.sql_names-3109"><a href="#Func.sql_names-3109"><span class="linenos">3109</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
+</span><span id="Func.sql_names-3110"><a href="#Func.sql_names-3110"><span class="linenos">3110</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func.sql_names-3111"><a href="#Func.sql_names-3111"><span class="linenos">3111</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func.sql_names-3112"><a href="#Func.sql_names-3112"><span class="linenos">3112</span></a> <span class="p">)</span>
+</span><span id="Func.sql_names-3113"><a href="#Func.sql_names-3113"><span class="linenos">3113</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
+</span><span id="Func.sql_names-3114"><a href="#Func.sql_names-3114"><span class="linenos">3114</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
+</span><span id="Func.sql_names-3115"><a href="#Func.sql_names-3115"><span class="linenos">3115</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
</span></pre></div>
@@ -28968,9 +29141,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Func.sql_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_name-3108"><a href="#Func.sql_name-3108"><span class="linenos">3108</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_name-3109"><a href="#Func.sql_name-3109"><span class="linenos">3109</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="Func.sql_name-3110"><a href="#Func.sql_name-3110"><span class="linenos">3110</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_name-3117"><a href="#Func.sql_name-3117"><span class="linenos">3117</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_name-3118"><a href="#Func.sql_name-3118"><span class="linenos">3118</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="Func.sql_name-3119"><a href="#Func.sql_name-3119"><span class="linenos">3119</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
</span></pre></div>
@@ -28989,9 +29162,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Func.default_parser_mappings"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func.default_parser_mappings-3112"><a href="#Func.default_parser_mappings-3112"><span class="linenos">3112</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.default_parser_mappings-3113"><a href="#Func.default_parser_mappings-3113"><span class="linenos">3113</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
-</span><span id="Func.default_parser_mappings-3114"><a href="#Func.default_parser_mappings-3114"><span class="linenos">3114</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Func.default_parser_mappings-3121"><a href="#Func.default_parser_mappings-3121"><span class="linenos">3121</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.default_parser_mappings-3122"><a href="#Func.default_parser_mappings-3122"><span class="linenos">3122</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
+</span><span id="Func.default_parser_mappings-3123"><a href="#Func.default_parser_mappings-3123"><span class="linenos">3123</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
</span></pre></div>
@@ -29059,8 +29232,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#AggFunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3117"><a href="#AggFunc-3117"><span class="linenos">3117</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="AggFunc-3118"><a href="#AggFunc-3118"><span class="linenos">3118</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3126"><a href="#AggFunc-3126"><span class="linenos">3126</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="AggFunc-3127"><a href="#AggFunc-3127"><span class="linenos">3127</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29134,8 +29307,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Abs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3121"><a href="#Abs-3121"><span class="linenos">3121</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Abs-3122"><a href="#Abs-3122"><span class="linenos">3122</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3130"><a href="#Abs-3130"><span class="linenos">3130</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Abs-3131"><a href="#Abs-3131"><span class="linenos">3131</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29209,9 +29382,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Anonymous"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-3125"><a href="#Anonymous-3125"><span class="linenos">3125</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Anonymous-3126"><a href="#Anonymous-3126"><span class="linenos">3126</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="Anonymous-3127"><a href="#Anonymous-3127"><span class="linenos">3127</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="Anonymous-3134"><a href="#Anonymous-3134"><span class="linenos">3134</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Anonymous-3135"><a href="#Anonymous-3135"><span class="linenos">3135</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="Anonymous-3136"><a href="#Anonymous-3136"><span class="linenos">3136</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -29285,8 +29458,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxDistinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3130"><a href="#ApproxDistinct-3130"><span class="linenos">3130</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ApproxDistinct-3131"><a href="#ApproxDistinct-3131"><span class="linenos">3131</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;accuracy&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="ApproxDistinct-3139"><a href="#ApproxDistinct-3139"><span class="linenos">3139</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ApproxDistinct-3140"><a href="#ApproxDistinct-3140"><span class="linenos">3140</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;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -29360,9 +29533,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Array"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Array-3134"><a href="#Array-3134"><span class="linenos">3134</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Array-3135"><a href="#Array-3135"><span class="linenos">3135</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">False</span><span class="p">}</span>
-</span><span id="Array-3136"><a href="#Array-3136"><span class="linenos">3136</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="Array-3143"><a href="#Array-3143"><span class="linenos">3143</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Array-3144"><a href="#Array-3144"><span class="linenos">3144</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">False</span><span class="p">}</span>
+</span><span id="Array-3145"><a href="#Array-3145"><span class="linenos">3145</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -29436,8 +29609,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#GenerateSeries"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GenerateSeries-3139"><a href="#GenerateSeries-3139"><span class="linenos">3139</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="GenerateSeries-3140"><a href="#GenerateSeries-3140"><span class="linenos">3140</span></a> <span class="n">arg_types</span> <span class="o">=</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;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&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="GenerateSeries-3148"><a href="#GenerateSeries-3148"><span class="linenos">3148</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="GenerateSeries-3149"><a href="#GenerateSeries-3149"><span class="linenos">3149</span></a> <span class="n">arg_types</span> <span class="o">=</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;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -29511,8 +29684,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3143"><a href="#ArrayAgg-3143"><span class="linenos">3143</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArrayAgg-3144"><a href="#ArrayAgg-3144"><span class="linenos">3144</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3152"><a href="#ArrayAgg-3152"><span class="linenos">3152</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArrayAgg-3153"><a href="#ArrayAgg-3153"><span class="linenos">3153</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29586,8 +29759,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayAll"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAll-3147"><a href="#ArrayAll-3147"><span class="linenos">3147</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayAll-3148"><a href="#ArrayAll-3148"><span class="linenos">3148</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="ArrayAll-3156"><a href="#ArrayAll-3156"><span class="linenos">3156</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayAll-3157"><a href="#ArrayAll-3157"><span class="linenos">3157</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>
@@ -29661,8 +29834,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAny-3151"><a href="#ArrayAny-3151"><span class="linenos">3151</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayAny-3152"><a href="#ArrayAny-3152"><span class="linenos">3152</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="ArrayAny-3160"><a href="#ArrayAny-3160"><span class="linenos">3160</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayAny-3161"><a href="#ArrayAny-3161"><span class="linenos">3161</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>
@@ -29736,9 +29909,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-3155"><a href="#ArrayConcat-3155"><span class="linenos">3155</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayConcat-3156"><a href="#ArrayConcat-3156"><span class="linenos">3156</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="ArrayConcat-3157"><a href="#ArrayConcat-3157"><span class="linenos">3157</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="ArrayConcat-3164"><a href="#ArrayConcat-3164"><span class="linenos">3164</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayConcat-3165"><a href="#ArrayConcat-3165"><span class="linenos">3165</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="ArrayConcat-3166"><a href="#ArrayConcat-3166"><span class="linenos">3166</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -29806,14 +29979,14 @@ name is set to the expression's class name transformed to snake case.</li>
<div class="attr class">
<span class="def">class</span>
- <span class="name">ArrayContains</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+ <span class="name">ArrayContains</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayContains-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-3160"><a href="#ArrayContains-3160"><span class="linenos">3160</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayContains-3161"><a href="#ArrayContains-3161"><span class="linenos">3161</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="ArrayContains-3169"><a href="#ArrayContains-3169"><span class="linenos">3169</span></a><span class="k">class</span> <span class="nc">ArrayContains</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="ArrayContains-3170"><a href="#ArrayContains-3170"><span class="linenos">3170</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29876,6 +30049,68 @@ name is set to the expression's class name transformed to snake case.</li>
</dl>
</div>
</section>
+ <section id="ArrayContained">
+ <input id="ArrayContained-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">ArrayContained</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
+
+ <label class="view-source-button" for="ArrayContained-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#ArrayContained"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-3173"><a href="#ArrayContained-3173"><span class="linenos">3173</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="ArrayContained-3174"><a href="#ArrayContained-3174"><span class="linenos">3174</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="ArrayContained.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="ArrayContained.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="ArrayContained.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="ArrayContained.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="ArrayContained.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="ArrayContained.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="ArrayContained.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="ArrayContained.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="ArrayContained.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="ArrayContained.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="ArrayContained.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="ArrayContained.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="ArrayContained.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="ArrayContained.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="ArrayContained.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="ArrayContained.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="ArrayContained.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="ArrayContained.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="ArrayContained.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="ArrayContained.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="ArrayContained.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="ArrayContained.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="ArrayContained.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="ArrayContained.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="ArrayContained.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="ArrayContained.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="ArrayContained.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="ArrayContained.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="ArrayContained.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="ArrayContained.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="ArrayContained.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="ArrayContained.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="ArrayContained.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="ArrayContained.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="ArrayContained.load" class="function"><a href="#Expression.load">load</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="ArrayFilter">
<input id="ArrayFilter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -29887,9 +30122,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayFilter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayFilter-3164"><a href="#ArrayFilter-3164"><span class="linenos">3164</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayFilter-3165"><a href="#ArrayFilter-3165"><span class="linenos">3165</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="ArrayFilter-3166"><a href="#ArrayFilter-3166"><span class="linenos">3166</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayFilter-3177"><a href="#ArrayFilter-3177"><span class="linenos">3177</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayFilter-3178"><a href="#ArrayFilter-3178"><span class="linenos">3178</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="ArrayFilter-3179"><a href="#ArrayFilter-3179"><span class="linenos">3179</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -29963,8 +30198,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayJoin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayJoin-3169"><a href="#ArrayJoin-3169"><span class="linenos">3169</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayJoin-3170"><a href="#ArrayJoin-3170"><span class="linenos">3170</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;null&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="ArrayJoin-3182"><a href="#ArrayJoin-3182"><span class="linenos">3182</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayJoin-3183"><a href="#ArrayJoin-3183"><span class="linenos">3183</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;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -30038,8 +30273,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArraySize"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3173"><a href="#ArraySize-3173"><span class="linenos">3173</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArraySize-3174"><a href="#ArraySize-3174"><span class="linenos">3174</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="ArraySize-3186"><a href="#ArraySize-3186"><span class="linenos">3186</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArraySize-3187"><a href="#ArraySize-3187"><span class="linenos">3187</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>
@@ -30113,8 +30348,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArraySort"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySort-3177"><a href="#ArraySort-3177"><span class="linenos">3177</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArraySort-3178"><a href="#ArraySort-3178"><span class="linenos">3178</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="ArraySort-3190"><a href="#ArraySort-3190"><span class="linenos">3190</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArraySort-3191"><a href="#ArraySort-3191"><span class="linenos">3191</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>
@@ -30188,8 +30423,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArraySum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3181"><a href="#ArraySum-3181"><span class="linenos">3181</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArraySum-3182"><a href="#ArraySum-3182"><span class="linenos">3182</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3194"><a href="#ArraySum-3194"><span class="linenos">3194</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArraySum-3195"><a href="#ArraySum-3195"><span class="linenos">3195</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30263,8 +30498,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayUnionAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3185"><a href="#ArrayUnionAgg-3185"><span class="linenos">3185</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArrayUnionAgg-3186"><a href="#ArrayUnionAgg-3186"><span class="linenos">3186</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3198"><a href="#ArrayUnionAgg-3198"><span class="linenos">3198</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArrayUnionAgg-3199"><a href="#ArrayUnionAgg-3199"><span class="linenos">3199</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30338,8 +30573,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Avg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3189"><a href="#Avg-3189"><span class="linenos">3189</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Avg-3190"><a href="#Avg-3190"><span class="linenos">3190</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3202"><a href="#Avg-3202"><span class="linenos">3202</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Avg-3203"><a href="#Avg-3203"><span class="linenos">3203</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30413,8 +30648,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#AnyValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3193"><a href="#AnyValue-3193"><span class="linenos">3193</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="AnyValue-3194"><a href="#AnyValue-3194"><span class="linenos">3194</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3206"><a href="#AnyValue-3206"><span class="linenos">3206</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="AnyValue-3207"><a href="#AnyValue-3207"><span class="linenos">3207</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30488,8 +30723,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case-3197"><a href="#Case-3197"><span class="linenos">3197</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Case-3198"><a href="#Case-3198"><span class="linenos">3198</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;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&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="Case-3210"><a href="#Case-3210"><span class="linenos">3210</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Case-3211"><a href="#Case-3211"><span class="linenos">3211</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;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -30563,23 +30798,23 @@ 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-3201"><a href="#Cast-3201"><span class="linenos">3201</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-3202"><a href="#Cast-3202"><span class="linenos">3202</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><span id="Cast-3203"><a href="#Cast-3203"><span class="linenos">3203</span></a>
-</span><span id="Cast-3204"><a href="#Cast-3204"><span class="linenos">3204</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3205"><a href="#Cast-3205"><span class="linenos">3205</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Cast-3206"><a href="#Cast-3206"><span class="linenos">3206</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Cast-3207"><a href="#Cast-3207"><span class="linenos">3207</span></a>
-</span><span id="Cast-3208"><a href="#Cast-3208"><span class="linenos">3208</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3209"><a href="#Cast-3209"><span class="linenos">3209</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Cast-3210"><a href="#Cast-3210"><span class="linenos">3210</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;to&quot;</span><span class="p">]</span>
-</span><span id="Cast-3211"><a href="#Cast-3211"><span class="linenos">3211</span></a>
-</span><span id="Cast-3212"><a href="#Cast-3212"><span class="linenos">3212</span></a> <span class="nd">@property</span>
-</span><span id="Cast-3213"><a href="#Cast-3213"><span class="linenos">3213</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Cast-3214"><a href="#Cast-3214"><span class="linenos">3214</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Cast-3215"><a href="#Cast-3215"><span class="linenos">3215</span></a>
-</span><span id="Cast-3216"><a href="#Cast-3216"><span class="linenos">3216</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast-3217"><a href="#Cast-3217"><span class="linenos">3217</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3214"><a href="#Cast-3214"><span class="linenos">3214</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-3215"><a href="#Cast-3215"><span class="linenos">3215</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><span id="Cast-3216"><a href="#Cast-3216"><span class="linenos">3216</span></a>
+</span><span id="Cast-3217"><a href="#Cast-3217"><span class="linenos">3217</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3218"><a href="#Cast-3218"><span class="linenos">3218</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Cast-3219"><a href="#Cast-3219"><span class="linenos">3219</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Cast-3220"><a href="#Cast-3220"><span class="linenos">3220</span></a>
+</span><span id="Cast-3221"><a href="#Cast-3221"><span class="linenos">3221</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3222"><a href="#Cast-3222"><span class="linenos">3222</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Cast-3223"><a href="#Cast-3223"><span class="linenos">3223</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;to&quot;</span><span class="p">]</span>
+</span><span id="Cast-3224"><a href="#Cast-3224"><span class="linenos">3224</span></a>
+</span><span id="Cast-3225"><a href="#Cast-3225"><span class="linenos">3225</span></a> <span class="nd">@property</span>
+</span><span id="Cast-3226"><a href="#Cast-3226"><span class="linenos">3226</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Cast-3227"><a href="#Cast-3227"><span class="linenos">3227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Cast-3228"><a href="#Cast-3228"><span class="linenos">3228</span></a>
+</span><span id="Cast-3229"><a href="#Cast-3229"><span class="linenos">3229</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast-3230"><a href="#Cast-3230"><span class="linenos">3230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
@@ -30626,8 +30861,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3216"><a href="#Cast.is_type-3216"><span class="linenos">3216</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast.is_type-3217"><a href="#Cast.is_type-3217"><span class="linenos">3217</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3229"><a href="#Cast.is_type-3229"><span class="linenos">3229</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast.is_type-3230"><a href="#Cast.is_type-3230"><span class="linenos">3230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
@@ -30701,8 +30936,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Collate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3220"><a href="#Collate-3220"><span class="linenos">3220</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Collate-3221"><a href="#Collate-3221"><span class="linenos">3221</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3233"><a href="#Collate-3233"><span class="linenos">3233</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Collate-3234"><a href="#Collate-3234"><span class="linenos">3234</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30763,8 +30998,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TryCast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3224"><a href="#TryCast-3224"><span class="linenos">3224</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
-</span><span id="TryCast-3225"><a href="#TryCast-3225"><span class="linenos">3225</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3237"><a href="#TryCast-3237"><span class="linenos">3237</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
+</span><span id="TryCast-3238"><a href="#TryCast-3238"><span class="linenos">3238</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30842,9 +31077,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Ceil"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3228"><a href="#Ceil-3228"><span class="linenos">3228</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Ceil-3229"><a href="#Ceil-3229"><span class="linenos">3229</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="Ceil-3230"><a href="#Ceil-3230"><span class="linenos">3230</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3241"><a href="#Ceil-3241"><span class="linenos">3241</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Ceil-3242"><a href="#Ceil-3242"><span class="linenos">3242</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="Ceil-3243"><a href="#Ceil-3243"><span class="linenos">3243</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -30918,9 +31153,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Coalesce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3233"><a href="#Coalesce-3233"><span class="linenos">3233</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Coalesce-3234"><a href="#Coalesce-3234"><span class="linenos">3234</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="Coalesce-3235"><a href="#Coalesce-3235"><span class="linenos">3235</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="Coalesce-3246"><a href="#Coalesce-3246"><span class="linenos">3246</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Coalesce-3247"><a href="#Coalesce-3247"><span class="linenos">3247</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="Coalesce-3248"><a href="#Coalesce-3248"><span class="linenos">3248</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -30994,9 +31229,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Concat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-3238"><a href="#Concat-3238"><span class="linenos">3238</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Concat-3239"><a href="#Concat-3239"><span class="linenos">3239</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="Concat-3240"><a href="#Concat-3240"><span class="linenos">3240</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="Concat-3251"><a href="#Concat-3251"><span class="linenos">3251</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Concat-3252"><a href="#Concat-3252"><span class="linenos">3252</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="Concat-3253"><a href="#Concat-3253"><span class="linenos">3253</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -31070,8 +31305,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ConcatWs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3243"><a href="#ConcatWs-3243"><span class="linenos">3243</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
-</span><span id="ConcatWs-3244"><a href="#ConcatWs-3244"><span class="linenos">3244</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CONCAT_WS&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3256"><a href="#ConcatWs-3256"><span class="linenos">3256</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
+</span><span id="ConcatWs-3257"><a href="#ConcatWs-3257"><span class="linenos">3257</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CONCAT_WS&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -31145,8 +31380,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Count"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3247"><a href="#Count-3247"><span class="linenos">3247</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Count-3248"><a href="#Count-3248"><span class="linenos">3248</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3260"><a href="#Count-3260"><span class="linenos">3260</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Count-3261"><a href="#Count-3261"><span class="linenos">3261</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></pre></div>
@@ -31220,8 +31455,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3251"><a href="#CurrentDate-3251"><span class="linenos">3251</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CurrentDate-3252"><a href="#CurrentDate-3252"><span class="linenos">3252</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3264"><a href="#CurrentDate-3264"><span class="linenos">3264</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CurrentDate-3265"><a href="#CurrentDate-3265"><span class="linenos">3265</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></pre></div>
@@ -31295,8 +31530,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentDatetime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3255"><a href="#CurrentDatetime-3255"><span class="linenos">3255</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CurrentDatetime-3256"><a href="#CurrentDatetime-3256"><span class="linenos">3256</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3268"><a href="#CurrentDatetime-3268"><span class="linenos">3268</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CurrentDatetime-3269"><a href="#CurrentDatetime-3269"><span class="linenos">3269</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></pre></div>
@@ -31370,8 +31605,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3259"><a href="#CurrentTime-3259"><span class="linenos">3259</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CurrentTime-3260"><a href="#CurrentTime-3260"><span class="linenos">3260</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3272"><a href="#CurrentTime-3272"><span class="linenos">3272</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CurrentTime-3273"><a href="#CurrentTime-3273"><span class="linenos">3273</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></pre></div>
@@ -31445,8 +31680,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CurrentTimestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3263"><a href="#CurrentTimestamp-3263"><span class="linenos">3263</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CurrentTimestamp-3264"><a href="#CurrentTimestamp-3264"><span class="linenos">3264</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3276"><a href="#CurrentTimestamp-3276"><span class="linenos">3276</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CurrentTimestamp-3277"><a href="#CurrentTimestamp-3277"><span class="linenos">3277</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></pre></div>
@@ -31520,8 +31755,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-3267"><a href="#DateAdd-3267"><span class="linenos">3267</span></a><span class="k">class</span> <span class="nc">DateAdd</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="DateAdd-3268"><a href="#DateAdd-3268"><span class="linenos">3268</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="DateAdd-3280"><a href="#DateAdd-3280"><span class="linenos">3280</span></a><span class="k">class</span> <span class="nc">DateAdd</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="DateAdd-3281"><a href="#DateAdd-3281"><span class="linenos">3281</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>
@@ -31598,8 +31833,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-3271"><a href="#DateSub-3271"><span class="linenos">3271</span></a><span class="k">class</span> <span class="nc">DateSub</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="DateSub-3272"><a href="#DateSub-3272"><span class="linenos">3272</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="DateSub-3284"><a href="#DateSub-3284"><span class="linenos">3284</span></a><span class="k">class</span> <span class="nc">DateSub</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="DateSub-3285"><a href="#DateSub-3285"><span class="linenos">3285</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>
@@ -31676,8 +31911,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-3275"><a href="#DateDiff-3275"><span class="linenos">3275</span></a><span class="k">class</span> <span class="nc">DateDiff</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="DateDiff-3276"><a href="#DateDiff-3276"><span class="linenos">3276</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="DateDiff-3288"><a href="#DateDiff-3288"><span class="linenos">3288</span></a><span class="k">class</span> <span class="nc">DateDiff</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="DateDiff-3289"><a href="#DateDiff-3289"><span class="linenos">3289</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
+</span><span id="DateDiff-3290"><a href="#DateDiff-3290"><span class="linenos">3290</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>
@@ -31754,8 +31990,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3279"><a href="#DateTrunc-3279"><span class="linenos">3279</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DateTrunc-3280"><a href="#DateTrunc-3280"><span class="linenos">3280</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</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;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="DateTrunc-3293"><a href="#DateTrunc-3293"><span class="linenos">3293</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DateTrunc-3294"><a href="#DateTrunc-3294"><span class="linenos">3294</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -31829,8 +32065,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-3283"><a href="#DatetimeAdd-3283"><span class="linenos">3283</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</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="DatetimeAdd-3284"><a href="#DatetimeAdd-3284"><span class="linenos">3284</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="DatetimeAdd-3297"><a href="#DatetimeAdd-3297"><span class="linenos">3297</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</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="DatetimeAdd-3298"><a href="#DatetimeAdd-3298"><span class="linenos">3298</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>
@@ -31907,8 +32143,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-3287"><a href="#DatetimeSub-3287"><span class="linenos">3287</span></a><span class="k">class</span> <span class="nc">DatetimeSub</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="DatetimeSub-3288"><a href="#DatetimeSub-3288"><span class="linenos">3288</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="DatetimeSub-3301"><a href="#DatetimeSub-3301"><span class="linenos">3301</span></a><span class="k">class</span> <span class="nc">DatetimeSub</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="DatetimeSub-3302"><a href="#DatetimeSub-3302"><span class="linenos">3302</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>
@@ -31985,8 +32221,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-3291"><a href="#DatetimeDiff-3291"><span class="linenos">3291</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</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="DatetimeDiff-3292"><a href="#DatetimeDiff-3292"><span class="linenos">3292</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="DatetimeDiff-3305"><a href="#DatetimeDiff-3305"><span class="linenos">3305</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</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="DatetimeDiff-3306"><a href="#DatetimeDiff-3306"><span class="linenos">3306</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>
@@ -32063,8 +32299,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DatetimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-3295"><a href="#DatetimeTrunc-3295"><span class="linenos">3295</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</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="DatetimeTrunc-3296"><a href="#DatetimeTrunc-3296"><span class="linenos">3296</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;unit&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="DatetimeTrunc-3309"><a href="#DatetimeTrunc-3309"><span class="linenos">3309</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</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="DatetimeTrunc-3310"><a href="#DatetimeTrunc-3310"><span class="linenos">3310</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;unit&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>
@@ -32141,8 +32377,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfWeek"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3299"><a href="#DayOfWeek-3299"><span class="linenos">3299</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DayOfWeek-3300"><a href="#DayOfWeek-3300"><span class="linenos">3300</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_WEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFWEEK&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3313"><a href="#DayOfWeek-3313"><span class="linenos">3313</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DayOfWeek-3314"><a href="#DayOfWeek-3314"><span class="linenos">3314</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_WEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFWEEK&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -32216,8 +32452,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3303"><a href="#DayOfMonth-3303"><span class="linenos">3303</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DayOfMonth-3304"><a href="#DayOfMonth-3304"><span class="linenos">3304</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_MONTH&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFMONTH&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3317"><a href="#DayOfMonth-3317"><span class="linenos">3317</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DayOfMonth-3318"><a href="#DayOfMonth-3318"><span class="linenos">3318</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_MONTH&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFMONTH&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -32291,8 +32527,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DayOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3307"><a href="#DayOfYear-3307"><span class="linenos">3307</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DayOfYear-3308"><a href="#DayOfYear-3308"><span class="linenos">3308</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3321"><a href="#DayOfYear-3321"><span class="linenos">3321</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DayOfYear-3322"><a href="#DayOfYear-3322"><span class="linenos">3322</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -32366,8 +32602,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#WeekOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3311"><a href="#WeekOfYear-3311"><span class="linenos">3311</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="WeekOfYear-3312"><a href="#WeekOfYear-3312"><span class="linenos">3312</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3325"><a href="#WeekOfYear-3325"><span class="linenos">3325</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="WeekOfYear-3326"><a href="#WeekOfYear-3326"><span class="linenos">3326</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -32441,8 +32677,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LastDateOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3315"><a href="#LastDateOfMonth-3315"><span class="linenos">3315</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="LastDateOfMonth-3316"><a href="#LastDateOfMonth-3316"><span class="linenos">3316</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3329"><a href="#LastDateOfMonth-3329"><span class="linenos">3329</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="LastDateOfMonth-3330"><a href="#LastDateOfMonth-3330"><span class="linenos">3330</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32516,8 +32752,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Extract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-3319"><a href="#Extract-3319"><span class="linenos">3319</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Extract-3320"><a href="#Extract-3320"><span class="linenos">3320</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="Extract-3333"><a href="#Extract-3333"><span class="linenos">3333</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Extract-3334"><a href="#Extract-3334"><span class="linenos">3334</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>
@@ -32591,8 +32827,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-3323"><a href="#TimestampAdd-3323"><span class="linenos">3323</span></a><span class="k">class</span> <span class="nc">TimestampAdd</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="TimestampAdd-3324"><a href="#TimestampAdd-3324"><span class="linenos">3324</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="TimestampAdd-3337"><a href="#TimestampAdd-3337"><span class="linenos">3337</span></a><span class="k">class</span> <span class="nc">TimestampAdd</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="TimestampAdd-3338"><a href="#TimestampAdd-3338"><span class="linenos">3338</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>
@@ -32669,8 +32905,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-3327"><a href="#TimestampSub-3327"><span class="linenos">3327</span></a><span class="k">class</span> <span class="nc">TimestampSub</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="TimestampSub-3328"><a href="#TimestampSub-3328"><span class="linenos">3328</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="TimestampSub-3341"><a href="#TimestampSub-3341"><span class="linenos">3341</span></a><span class="k">class</span> <span class="nc">TimestampSub</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="TimestampSub-3342"><a href="#TimestampSub-3342"><span class="linenos">3342</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>
@@ -32747,8 +32983,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-3331"><a href="#TimestampDiff-3331"><span class="linenos">3331</span></a><span class="k">class</span> <span class="nc">TimestampDiff</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="TimestampDiff-3332"><a href="#TimestampDiff-3332"><span class="linenos">3332</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="TimestampDiff-3345"><a href="#TimestampDiff-3345"><span class="linenos">3345</span></a><span class="k">class</span> <span class="nc">TimestampDiff</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="TimestampDiff-3346"><a href="#TimestampDiff-3346"><span class="linenos">3346</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>
@@ -32825,8 +33061,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimestampTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-3335"><a href="#TimestampTrunc-3335"><span class="linenos">3335</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</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="TimestampTrunc-3336"><a href="#TimestampTrunc-3336"><span class="linenos">3336</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;unit&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="TimestampTrunc-3349"><a href="#TimestampTrunc-3349"><span class="linenos">3349</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</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="TimestampTrunc-3350"><a href="#TimestampTrunc-3350"><span class="linenos">3350</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;unit&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>
@@ -32903,8 +33139,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-3339"><a href="#TimeAdd-3339"><span class="linenos">3339</span></a><span class="k">class</span> <span class="nc">TimeAdd</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="TimeAdd-3340"><a href="#TimeAdd-3340"><span class="linenos">3340</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="TimeAdd-3353"><a href="#TimeAdd-3353"><span class="linenos">3353</span></a><span class="k">class</span> <span class="nc">TimeAdd</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="TimeAdd-3354"><a href="#TimeAdd-3354"><span class="linenos">3354</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>
@@ -32981,8 +33217,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-3343"><a href="#TimeSub-3343"><span class="linenos">3343</span></a><span class="k">class</span> <span class="nc">TimeSub</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="TimeSub-3344"><a href="#TimeSub-3344"><span class="linenos">3344</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="TimeSub-3357"><a href="#TimeSub-3357"><span class="linenos">3357</span></a><span class="k">class</span> <span class="nc">TimeSub</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="TimeSub-3358"><a href="#TimeSub-3358"><span class="linenos">3358</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>
@@ -33059,8 +33295,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-3347"><a href="#TimeDiff-3347"><span class="linenos">3347</span></a><span class="k">class</span> <span class="nc">TimeDiff</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="TimeDiff-3348"><a href="#TimeDiff-3348"><span class="linenos">3348</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="TimeDiff-3361"><a href="#TimeDiff-3361"><span class="linenos">3361</span></a><span class="k">class</span> <span class="nc">TimeDiff</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="TimeDiff-3362"><a href="#TimeDiff-3362"><span class="linenos">3362</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>
@@ -33137,8 +33373,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#TimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-3351"><a href="#TimeTrunc-3351"><span class="linenos">3351</span></a><span class="k">class</span> <span class="nc">TimeTrunc</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="TimeTrunc-3352"><a href="#TimeTrunc-3352"><span class="linenos">3352</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;unit&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="TimeTrunc-3365"><a href="#TimeTrunc-3365"><span class="linenos">3365</span></a><span class="k">class</span> <span class="nc">TimeTrunc</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="TimeTrunc-3366"><a href="#TimeTrunc-3366"><span class="linenos">3366</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;unit&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>
@@ -33215,9 +33451,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-3355"><a href="#DateFromParts-3355"><span class="linenos">3355</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DateFromParts-3356"><a href="#DateFromParts-3356"><span class="linenos">3356</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="DateFromParts-3357"><a href="#DateFromParts-3357"><span class="linenos">3357</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;day&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="DateFromParts-3369"><a href="#DateFromParts-3369"><span class="linenos">3369</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DateFromParts-3370"><a href="#DateFromParts-3370"><span class="linenos">3370</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="DateFromParts-3371"><a href="#DateFromParts-3371"><span class="linenos">3371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -33291,8 +33527,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3360"><a href="#DateStrToDate-3360"><span class="linenos">3360</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DateStrToDate-3361"><a href="#DateStrToDate-3361"><span class="linenos">3361</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3374"><a href="#DateStrToDate-3374"><span class="linenos">3374</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DateStrToDate-3375"><a href="#DateStrToDate-3375"><span class="linenos">3375</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33366,8 +33602,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3364"><a href="#DateToDateStr-3364"><span class="linenos">3364</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DateToDateStr-3365"><a href="#DateToDateStr-3365"><span class="linenos">3365</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3378"><a href="#DateToDateStr-3378"><span class="linenos">3378</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DateToDateStr-3379"><a href="#DateToDateStr-3379"><span class="linenos">3379</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33441,8 +33677,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DateToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3368"><a href="#DateToDi-3368"><span class="linenos">3368</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DateToDi-3369"><a href="#DateToDi-3369"><span class="linenos">3369</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3382"><a href="#DateToDi-3382"><span class="linenos">3382</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DateToDi-3383"><a href="#DateToDi-3383"><span class="linenos">3383</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33516,8 +33752,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Day"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3372"><a href="#Day-3372"><span class="linenos">3372</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Day-3373"><a href="#Day-3373"><span class="linenos">3373</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3386"><a href="#Day-3386"><span class="linenos">3386</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Day-3387"><a href="#Day-3387"><span class="linenos">3387</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33591,8 +33827,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Decode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-3376"><a href="#Decode-3376"><span class="linenos">3376</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Decode-3377"><a href="#Decode-3377"><span class="linenos">3377</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;replace&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="Decode-3390"><a href="#Decode-3390"><span class="linenos">3390</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Decode-3391"><a href="#Decode-3391"><span class="linenos">3391</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33666,8 +33902,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#DiToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3380"><a href="#DiToDate-3380"><span class="linenos">3380</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="DiToDate-3381"><a href="#DiToDate-3381"><span class="linenos">3381</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3394"><a href="#DiToDate-3394"><span class="linenos">3394</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="DiToDate-3395"><a href="#DiToDate-3395"><span class="linenos">3395</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33741,8 +33977,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Encode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-3384"><a href="#Encode-3384"><span class="linenos">3384</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Encode-3385"><a href="#Encode-3385"><span class="linenos">3385</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;charset&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="Encode-3398"><a href="#Encode-3398"><span class="linenos">3398</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Encode-3399"><a href="#Encode-3399"><span class="linenos">3399</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;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -33816,8 +34052,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Exp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3388"><a href="#Exp-3388"><span class="linenos">3388</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Exp-3389"><a href="#Exp-3389"><span class="linenos">3389</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3402"><a href="#Exp-3402"><span class="linenos">3402</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Exp-3403"><a href="#Exp-3403"><span class="linenos">3403</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33891,8 +34127,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Explode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3392"><a href="#Explode-3392"><span class="linenos">3392</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Explode-3393"><a href="#Explode-3393"><span class="linenos">3393</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3406"><a href="#Explode-3406"><span class="linenos">3406</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Explode-3407"><a href="#Explode-3407"><span class="linenos">3407</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -33966,8 +34202,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Floor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-3396"><a href="#Floor-3396"><span class="linenos">3396</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-3397"><a href="#Floor-3397"><span class="linenos">3397</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-3410"><a href="#Floor-3410"><span class="linenos">3410</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-3411"><a href="#Floor-3411"><span class="linenos">3411</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>
@@ -34041,9 +34277,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Greatest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-3400"><a href="#Greatest-3400"><span class="linenos">3400</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-3401"><a href="#Greatest-3401"><span class="linenos">3401</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-3402"><a href="#Greatest-3402"><span class="linenos">3402</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-3414"><a href="#Greatest-3414"><span class="linenos">3414</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-3415"><a href="#Greatest-3415"><span class="linenos">3415</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-3416"><a href="#Greatest-3416"><span class="linenos">3416</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -34117,8 +34353,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#GroupConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-3405"><a href="#GroupConcat-3405"><span class="linenos">3405</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="GroupConcat-3406"><a href="#GroupConcat-3406"><span class="linenos">3406</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-3419"><a href="#GroupConcat-3419"><span class="linenos">3419</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="GroupConcat-3420"><a href="#GroupConcat-3420"><span class="linenos">3420</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>
@@ -34192,8 +34428,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Hex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3409"><a href="#Hex-3409"><span class="linenos">3409</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-3410"><a href="#Hex-3410"><span class="linenos">3410</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3423"><a href="#Hex-3423"><span class="linenos">3423</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-3424"><a href="#Hex-3424"><span class="linenos">3424</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34267,8 +34503,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#If"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="If-3413"><a href="#If-3413"><span class="linenos">3413</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-3414"><a href="#If-3414"><span class="linenos">3414</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-3427"><a href="#If-3427"><span class="linenos">3427</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-3428"><a href="#If-3428"><span class="linenos">3428</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>
@@ -34342,9 +34578,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#IfNull"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3417"><a href="#IfNull-3417"><span class="linenos">3417</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IfNull-3418"><a href="#IfNull-3418"><span class="linenos">3418</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="IfNull-3419"><a href="#IfNull-3419"><span class="linenos">3419</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3431"><a href="#IfNull-3431"><span class="linenos">3431</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IfNull-3432"><a href="#IfNull-3432"><span class="linenos">3432</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="IfNull-3433"><a href="#IfNull-3433"><span class="linenos">3433</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -34418,8 +34654,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Initcap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3422"><a href="#Initcap-3422"><span class="linenos">3422</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-3423"><a href="#Initcap-3423"><span class="linenos">3423</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3436"><a href="#Initcap-3436"><span class="linenos">3436</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-3437"><a href="#Initcap-3437"><span class="linenos">3437</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34493,8 +34729,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-3426"><a href="#JSONBContains-3426"><span class="linenos">3426</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-3427"><a href="#JSONBContains-3427"><span class="linenos">3427</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-3440"><a href="#JSONBContains-3440"><span class="linenos">3440</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-3441"><a href="#JSONBContains-3441"><span class="linenos">3441</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>
@@ -34555,8 +34791,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-3430"><a href="#JSONExtract-3430"><span class="linenos">3430</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-3431"><a href="#JSONExtract-3431"><span class="linenos">3431</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-3444"><a href="#JSONExtract-3444"><span class="linenos">3444</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-3445"><a href="#JSONExtract-3445"><span class="linenos">3445</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>
@@ -34630,8 +34866,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-3434"><a href="#JSONExtractScalar-3434"><span class="linenos">3434</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-3435"><a href="#JSONExtractScalar-3435"><span class="linenos">3435</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-3448"><a href="#JSONExtractScalar-3448"><span class="linenos">3448</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-3449"><a href="#JSONExtractScalar-3449"><span class="linenos">3449</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>
@@ -34705,8 +34941,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-3438"><a href="#JSONBExtract-3438"><span class="linenos">3438</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-3439"><a href="#JSONBExtract-3439"><span class="linenos">3439</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-3452"><a href="#JSONBExtract-3452"><span class="linenos">3452</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-3453"><a href="#JSONBExtract-3453"><span class="linenos">3453</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>
@@ -34780,8 +35016,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-3442"><a href="#JSONBExtractScalar-3442"><span class="linenos">3442</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-3443"><a href="#JSONBExtractScalar-3443"><span class="linenos">3443</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-3456"><a href="#JSONBExtractScalar-3456"><span class="linenos">3456</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-3457"><a href="#JSONBExtractScalar-3457"><span class="linenos">3457</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>
@@ -34855,9 +35091,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Least"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Least-3446"><a href="#Least-3446"><span class="linenos">3446</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-3447"><a href="#Least-3447"><span class="linenos">3447</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">False</span><span class="p">}</span>
-</span><span id="Least-3448"><a href="#Least-3448"><span class="linenos">3448</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-3460"><a href="#Least-3460"><span class="linenos">3460</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-3461"><a href="#Least-3461"><span class="linenos">3461</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">False</span><span class="p">}</span>
+</span><span id="Least-3462"><a href="#Least-3462"><span class="linenos">3462</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -34931,8 +35167,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Length"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3451"><a href="#Length-3451"><span class="linenos">3451</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-3452"><a href="#Length-3452"><span class="linenos">3452</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3465"><a href="#Length-3465"><span class="linenos">3465</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-3466"><a href="#Length-3466"><span class="linenos">3466</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35006,14 +35242,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Levenshtein"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3455"><a href="#Levenshtein-3455"><span class="linenos">3455</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-3456"><a href="#Levenshtein-3456"><span class="linenos">3456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Levenshtein-3457"><a href="#Levenshtein-3457"><span class="linenos">3457</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-3458"><a href="#Levenshtein-3458"><span class="linenos">3458</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-3459"><a href="#Levenshtein-3459"><span class="linenos">3459</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-3460"><a href="#Levenshtein-3460"><span class="linenos">3460</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-3461"><a href="#Levenshtein-3461"><span class="linenos">3461</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-3462"><a href="#Levenshtein-3462"><span class="linenos">3462</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3469"><a href="#Levenshtein-3469"><span class="linenos">3469</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-3470"><a href="#Levenshtein-3470"><span class="linenos">3470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Levenshtein-3471"><a href="#Levenshtein-3471"><span class="linenos">3471</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-3472"><a href="#Levenshtein-3472"><span class="linenos">3472</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-3473"><a href="#Levenshtein-3473"><span class="linenos">3473</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-3474"><a href="#Levenshtein-3474"><span class="linenos">3474</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-3475"><a href="#Levenshtein-3475"><span class="linenos">3475</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-3476"><a href="#Levenshtein-3476"><span class="linenos">3476</span></a> <span class="p">}</span>
</span></pre></div>
@@ -35087,8 +35323,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Ln"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3465"><a href="#Ln-3465"><span class="linenos">3465</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-3466"><a href="#Ln-3466"><span class="linenos">3466</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3479"><a href="#Ln-3479"><span class="linenos">3479</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-3480"><a href="#Ln-3480"><span class="linenos">3480</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35162,8 +35398,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log-3469"><a href="#Log-3469"><span class="linenos">3469</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-3470"><a href="#Log-3470"><span class="linenos">3470</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-3483"><a href="#Log-3483"><span class="linenos">3483</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-3484"><a href="#Log-3484"><span class="linenos">3484</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>
@@ -35237,8 +35473,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3473"><a href="#Log2-3473"><span class="linenos">3473</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-3474"><a href="#Log2-3474"><span class="linenos">3474</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3487"><a href="#Log2-3487"><span class="linenos">3487</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-3488"><a href="#Log2-3488"><span class="linenos">3488</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35312,8 +35548,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Log10"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3477"><a href="#Log10-3477"><span class="linenos">3477</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-3478"><a href="#Log10-3478"><span class="linenos">3478</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3491"><a href="#Log10-3491"><span class="linenos">3491</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-3492"><a href="#Log10-3492"><span class="linenos">3492</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35387,8 +35623,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LogicalOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-3481"><a href="#LogicalOr-3481"><span class="linenos">3481</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-3482"><a href="#LogicalOr-3482"><span class="linenos">3482</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-3495"><a href="#LogicalOr-3495"><span class="linenos">3495</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-3496"><a href="#LogicalOr-3496"><span class="linenos">3496</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></pre></div>
@@ -35462,8 +35698,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Lower"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-3485"><a href="#Lower-3485"><span class="linenos">3485</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-3486"><a href="#Lower-3486"><span class="linenos">3486</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-3499"><a href="#Lower-3499"><span class="linenos">3499</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-3500"><a href="#Lower-3500"><span class="linenos">3500</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>
@@ -35537,8 +35773,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Map"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map-3489"><a href="#Map-3489"><span class="linenos">3489</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-3490"><a href="#Map-3490"><span class="linenos">3490</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-3503"><a href="#Map-3503"><span class="linenos">3503</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-3504"><a href="#Map-3504"><span class="linenos">3504</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>
@@ -35612,9 +35848,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#VarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-3493"><a href="#VarMap-3493"><span class="linenos">3493</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-3494"><a href="#VarMap-3494"><span class="linenos">3494</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-3495"><a href="#VarMap-3495"><span class="linenos">3495</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="VarMap-3507"><a href="#VarMap-3507"><span class="linenos">3507</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-3508"><a href="#VarMap-3508"><span class="linenos">3508</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-3509"><a href="#VarMap-3509"><span class="linenos">3509</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -35688,14 +35924,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Matches"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Matches-3498"><a href="#Matches-3498"><span class="linenos">3498</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Matches-3499"><a href="#Matches-3499"><span class="linenos">3499</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Oracle/Snowflake decode.</span>
-</span><span id="Matches-3500"><a href="#Matches-3500"><span class="linenos">3500</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span>
-</span><span id="Matches-3501"><a href="#Matches-3501"><span class="linenos">3501</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span>
-</span><span id="Matches-3502"><a href="#Matches-3502"><span class="linenos">3502</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Matches-3503"><a href="#Matches-3503"><span class="linenos">3503</span></a>
-</span><span id="Matches-3504"><a href="#Matches-3504"><span class="linenos">3504</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><span id="Matches-3505"><a href="#Matches-3505"><span class="linenos">3505</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="Matches-3512"><a href="#Matches-3512"><span class="linenos">3512</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Matches-3513"><a href="#Matches-3513"><span class="linenos">3513</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Oracle/Snowflake decode.</span>
+</span><span id="Matches-3514"><a href="#Matches-3514"><span class="linenos">3514</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span>
+</span><span id="Matches-3515"><a href="#Matches-3515"><span class="linenos">3515</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span>
+</span><span id="Matches-3516"><a href="#Matches-3516"><span class="linenos">3516</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Matches-3517"><a href="#Matches-3517"><span class="linenos">3517</span></a>
+</span><span id="Matches-3518"><a href="#Matches-3518"><span class="linenos">3518</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><span id="Matches-3519"><a href="#Matches-3519"><span class="linenos">3519</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -35773,9 +36009,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Max"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Max-3508"><a href="#Max-3508"><span class="linenos">3508</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-3509"><a href="#Max-3509"><span class="linenos">3509</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-3510"><a href="#Max-3510"><span class="linenos">3510</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-3522"><a href="#Max-3522"><span class="linenos">3522</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-3523"><a href="#Max-3523"><span class="linenos">3523</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-3524"><a href="#Max-3524"><span class="linenos">3524</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -35849,9 +36085,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Min"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Min-3513"><a href="#Min-3513"><span class="linenos">3513</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-3514"><a href="#Min-3514"><span class="linenos">3514</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-3515"><a href="#Min-3515"><span class="linenos">3515</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-3527"><a href="#Min-3527"><span class="linenos">3527</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-3528"><a href="#Min-3528"><span class="linenos">3528</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-3529"><a href="#Min-3529"><span class="linenos">3529</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -35925,8 +36161,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Month"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3518"><a href="#Month-3518"><span class="linenos">3518</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-3519"><a href="#Month-3519"><span class="linenos">3519</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3532"><a href="#Month-3532"><span class="linenos">3532</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-3533"><a href="#Month-3533"><span class="linenos">3533</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36000,8 +36236,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Nvl2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-3522"><a href="#Nvl2-3522"><span class="linenos">3522</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-3523"><a href="#Nvl2-3523"><span class="linenos">3523</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-3536"><a href="#Nvl2-3536"><span class="linenos">3536</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-3537"><a href="#Nvl2-3537"><span class="linenos">3537</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>
@@ -36075,8 +36311,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Posexplode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3526"><a href="#Posexplode-3526"><span class="linenos">3526</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-3527"><a href="#Posexplode-3527"><span class="linenos">3527</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3540"><a href="#Posexplode-3540"><span class="linenos">3540</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-3541"><a href="#Posexplode-3541"><span class="linenos">3541</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36150,8 +36386,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Pow"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-3530"><a href="#Pow-3530"><span class="linenos">3530</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-3531"><a href="#Pow-3531"><span class="linenos">3531</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-3544"><a href="#Pow-3544"><span class="linenos">3544</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-3545"><a href="#Pow-3545"><span class="linenos">3545</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>
@@ -36225,8 +36461,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#PercentileCont"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3534"><a href="#PercentileCont-3534"><span class="linenos">3534</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-3535"><a href="#PercentileCont-3535"><span class="linenos">3535</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3548"><a href="#PercentileCont-3548"><span class="linenos">3548</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-3549"><a href="#PercentileCont-3549"><span class="linenos">3549</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36300,8 +36536,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3538"><a href="#PercentileDisc-3538"><span class="linenos">3538</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-3539"><a href="#PercentileDisc-3539"><span class="linenos">3539</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3552"><a href="#PercentileDisc-3552"><span class="linenos">3552</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-3553"><a href="#PercentileDisc-3553"><span class="linenos">3553</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -36375,8 +36611,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Quantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-3542"><a href="#Quantile-3542"><span class="linenos">3542</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-3543"><a href="#Quantile-3543"><span class="linenos">3543</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-3556"><a href="#Quantile-3556"><span class="linenos">3556</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-3557"><a href="#Quantile-3557"><span class="linenos">3557</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>
@@ -36450,8 +36686,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Quantiles"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantiles-3548"><a href="#Quantiles-3548"><span class="linenos">3548</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Quantiles-3549"><a href="#Quantiles-3549"><span class="linenos">3549</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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="Quantiles-3562"><a href="#Quantiles-3562"><span class="linenos">3562</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Quantiles-3563"><a href="#Quantiles-3563"><span class="linenos">3563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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>
@@ -36525,8 +36761,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#QuantileIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="QuantileIf-3552"><a href="#QuantileIf-3552"><span class="linenos">3552</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="QuantileIf-3553"><a href="#QuantileIf-3553"><span class="linenos">3553</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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="QuantileIf-3566"><a href="#QuantileIf-3566"><span class="linenos">3566</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="QuantileIf-3567"><a href="#QuantileIf-3567"><span class="linenos">3567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;parameters&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>
@@ -36600,8 +36836,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-3556"><a href="#ApproxQuantile-3556"><span class="linenos">3556</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-3557"><a href="#ApproxQuantile-3557"><span class="linenos">3557</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-3570"><a href="#ApproxQuantile-3570"><span class="linenos">3570</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-3571"><a href="#ApproxQuantile-3571"><span class="linenos">3571</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>
@@ -36675,8 +36911,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#RangeN"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-3560"><a href="#RangeN-3560"><span class="linenos">3560</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-3561"><a href="#RangeN-3561"><span class="linenos">3561</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-3574"><a href="#RangeN-3574"><span class="linenos">3574</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-3575"><a href="#RangeN-3575"><span class="linenos">3575</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>
@@ -36750,10 +36986,10 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#ReadCSV"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-3564"><a href="#ReadCSV-3564"><span class="linenos">3564</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-3565"><a href="#ReadCSV-3565"><span class="linenos">3565</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-3566"><a href="#ReadCSV-3566"><span class="linenos">3566</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="ReadCSV-3567"><a href="#ReadCSV-3567"><span class="linenos">3567</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-3578"><a href="#ReadCSV-3578"><span class="linenos">3578</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-3579"><a href="#ReadCSV-3579"><span class="linenos">3579</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-3580"><a href="#ReadCSV-3580"><span class="linenos">3580</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="ReadCSV-3581"><a href="#ReadCSV-3581"><span class="linenos">3581</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>
@@ -36827,8 +37063,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Reduce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-3570"><a href="#Reduce-3570"><span class="linenos">3570</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-3571"><a href="#Reduce-3571"><span class="linenos">3571</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-3584"><a href="#Reduce-3584"><span class="linenos">3584</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-3585"><a href="#Reduce-3585"><span class="linenos">3585</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>
@@ -36902,14 +37138,14 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3574"><a href="#RegexpExtract-3574"><span class="linenos">3574</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-3575"><a href="#RegexpExtract-3575"><span class="linenos">3575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpExtract-3576"><a href="#RegexpExtract-3576"><span class="linenos">3576</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-3577"><a href="#RegexpExtract-3577"><span class="linenos">3577</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-3578"><a href="#RegexpExtract-3578"><span class="linenos">3578</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-3579"><a href="#RegexpExtract-3579"><span class="linenos">3579</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-3580"><a href="#RegexpExtract-3580"><span class="linenos">3580</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-3581"><a href="#RegexpExtract-3581"><span class="linenos">3581</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3588"><a href="#RegexpExtract-3588"><span class="linenos">3588</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-3589"><a href="#RegexpExtract-3589"><span class="linenos">3589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpExtract-3590"><a href="#RegexpExtract-3590"><span class="linenos">3590</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-3591"><a href="#RegexpExtract-3591"><span class="linenos">3591</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-3592"><a href="#RegexpExtract-3592"><span class="linenos">3592</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-3593"><a href="#RegexpExtract-3593"><span class="linenos">3593</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-3594"><a href="#RegexpExtract-3594"><span class="linenos">3594</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-3595"><a href="#RegexpExtract-3595"><span class="linenos">3595</span></a> <span class="p">}</span>
</span></pre></div>
@@ -36983,8 +37219,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#RegexpLike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-3584"><a href="#RegexpLike-3584"><span class="linenos">3584</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpLike-3585"><a href="#RegexpLike-3585"><span class="linenos">3585</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-3598"><a href="#RegexpLike-3598"><span class="linenos">3598</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpLike-3599"><a href="#RegexpLike-3599"><span class="linenos">3599</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>
@@ -37058,8 +37294,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#RegexpILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-3588"><a href="#RegexpILike-3588"><span class="linenos">3588</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-3589"><a href="#RegexpILike-3589"><span class="linenos">3589</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-3602"><a href="#RegexpILike-3602"><span class="linenos">3602</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-3603"><a href="#RegexpILike-3603"><span class="linenos">3603</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>
@@ -37133,8 +37369,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-3592"><a href="#RegexpSplit-3592"><span class="linenos">3592</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-3593"><a href="#RegexpSplit-3593"><span class="linenos">3593</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="RegexpSplit-3606"><a href="#RegexpSplit-3606"><span class="linenos">3606</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-3607"><a href="#RegexpSplit-3607"><span class="linenos">3607</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>
@@ -37208,8 +37444,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Repeat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-3596"><a href="#Repeat-3596"><span class="linenos">3596</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-3597"><a href="#Repeat-3597"><span class="linenos">3597</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-3610"><a href="#Repeat-3610"><span class="linenos">3610</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-3611"><a href="#Repeat-3611"><span class="linenos">3611</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>
@@ -37283,8 +37519,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Round"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Round-3600"><a href="#Round-3600"><span class="linenos">3600</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-3601"><a href="#Round-3601"><span class="linenos">3601</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-3614"><a href="#Round-3614"><span class="linenos">3614</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-3615"><a href="#Round-3615"><span class="linenos">3615</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>
@@ -37358,8 +37594,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#RowNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-3604"><a href="#RowNumber-3604"><span class="linenos">3604</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-3605"><a href="#RowNumber-3605"><span class="linenos">3605</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-3618"><a href="#RowNumber-3618"><span class="linenos">3618</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-3619"><a href="#RowNumber-3619"><span class="linenos">3619</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>
@@ -37433,8 +37669,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#SafeDivide"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-3608"><a href="#SafeDivide-3608"><span class="linenos">3608</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-3609"><a href="#SafeDivide-3609"><span class="linenos">3609</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-3622"><a href="#SafeDivide-3622"><span class="linenos">3622</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-3623"><a href="#SafeDivide-3623"><span class="linenos">3623</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>
@@ -37508,8 +37744,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#SetAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-3612"><a href="#SetAgg-3612"><span class="linenos">3612</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-3613"><a href="#SetAgg-3613"><span class="linenos">3613</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-3626"><a href="#SetAgg-3626"><span class="linenos">3626</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-3627"><a href="#SetAgg-3627"><span class="linenos">3627</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -37583,8 +37819,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#SortArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-3616"><a href="#SortArray-3616"><span class="linenos">3616</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-3617"><a href="#SortArray-3617"><span class="linenos">3617</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-3630"><a href="#SortArray-3630"><span class="linenos">3630</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-3631"><a href="#SortArray-3631"><span class="linenos">3631</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>
@@ -37658,8 +37894,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Split"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Split-3620"><a href="#Split-3620"><span class="linenos">3620</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-3621"><a href="#Split-3621"><span class="linenos">3621</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-3634"><a href="#Split-3634"><span class="linenos">3634</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-3635"><a href="#Split-3635"><span class="linenos">3635</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>
@@ -37733,8 +37969,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Substring"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-3626"><a href="#Substring-3626"><span class="linenos">3626</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-3627"><a href="#Substring-3627"><span class="linenos">3627</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-3640"><a href="#Substring-3640"><span class="linenos">3640</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-3641"><a href="#Substring-3641"><span class="linenos">3641</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>
@@ -37808,13 +38044,13 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StrPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-3630"><a href="#StrPosition-3630"><span class="linenos">3630</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-3631"><a href="#StrPosition-3631"><span class="linenos">3631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrPosition-3632"><a href="#StrPosition-3632"><span class="linenos">3632</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-3633"><a href="#StrPosition-3633"><span class="linenos">3633</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-3634"><a href="#StrPosition-3634"><span class="linenos">3634</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-3635"><a href="#StrPosition-3635"><span class="linenos">3635</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-3636"><a href="#StrPosition-3636"><span class="linenos">3636</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-3644"><a href="#StrPosition-3644"><span class="linenos">3644</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-3645"><a href="#StrPosition-3645"><span class="linenos">3645</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrPosition-3646"><a href="#StrPosition-3646"><span class="linenos">3646</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-3647"><a href="#StrPosition-3647"><span class="linenos">3647</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-3648"><a href="#StrPosition-3648"><span class="linenos">3648</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-3649"><a href="#StrPosition-3649"><span class="linenos">3649</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-3650"><a href="#StrPosition-3650"><span class="linenos">3650</span></a> <span class="p">}</span>
</span></pre></div>
@@ -37888,8 +38124,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-3639"><a href="#StrToDate-3639"><span class="linenos">3639</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-3640"><a href="#StrToDate-3640"><span class="linenos">3640</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-3653"><a href="#StrToDate-3653"><span class="linenos">3653</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-3654"><a href="#StrToDate-3654"><span class="linenos">3654</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>
@@ -37963,8 +38199,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-3643"><a href="#StrToTime-3643"><span class="linenos">3643</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-3644"><a href="#StrToTime-3644"><span class="linenos">3644</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="StrToTime-3657"><a href="#StrToTime-3657"><span class="linenos">3657</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-3658"><a href="#StrToTime-3658"><span class="linenos">3658</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>
@@ -38038,8 +38274,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-3649"><a href="#StrToUnix-3649"><span class="linenos">3649</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-3650"><a href="#StrToUnix-3650"><span class="linenos">3650</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-3663"><a href="#StrToUnix-3663"><span class="linenos">3663</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-3664"><a href="#StrToUnix-3664"><span class="linenos">3664</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>
@@ -38113,8 +38349,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#NumberToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-3653"><a href="#NumberToStr-3653"><span class="linenos">3653</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-3654"><a href="#NumberToStr-3654"><span class="linenos">3654</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="NumberToStr-3667"><a href="#NumberToStr-3667"><span class="linenos">3667</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-3668"><a href="#NumberToStr-3668"><span class="linenos">3668</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>
@@ -38188,9 +38424,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Struct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-3657"><a href="#Struct-3657"><span class="linenos">3657</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-3658"><a href="#Struct-3658"><span class="linenos">3658</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-3659"><a href="#Struct-3659"><span class="linenos">3659</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-3671"><a href="#Struct-3671"><span class="linenos">3671</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-3672"><a href="#Struct-3672"><span class="linenos">3672</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-3673"><a href="#Struct-3673"><span class="linenos">3673</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -38264,8 +38500,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StructExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-3662"><a href="#StructExtract-3662"><span class="linenos">3662</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-3663"><a href="#StructExtract-3663"><span class="linenos">3663</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-3676"><a href="#StructExtract-3676"><span class="linenos">3676</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-3677"><a href="#StructExtract-3677"><span class="linenos">3677</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>
@@ -38339,8 +38575,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Sum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-3666"><a href="#Sum-3666"><span class="linenos">3666</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-3667"><a href="#Sum-3667"><span class="linenos">3667</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-3680"><a href="#Sum-3680"><span class="linenos">3680</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-3681"><a href="#Sum-3681"><span class="linenos">3681</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38414,8 +38650,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Sqrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-3670"><a href="#Sqrt-3670"><span class="linenos">3670</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-3671"><a href="#Sqrt-3671"><span class="linenos">3671</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-3684"><a href="#Sqrt-3684"><span class="linenos">3684</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-3685"><a href="#Sqrt-3685"><span class="linenos">3685</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38489,8 +38725,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Stddev"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-3674"><a href="#Stddev-3674"><span class="linenos">3674</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-3675"><a href="#Stddev-3675"><span class="linenos">3675</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-3688"><a href="#Stddev-3688"><span class="linenos">3688</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-3689"><a href="#Stddev-3689"><span class="linenos">3689</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38564,8 +38800,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StddevPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-3678"><a href="#StddevPop-3678"><span class="linenos">3678</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-3679"><a href="#StddevPop-3679"><span class="linenos">3679</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-3692"><a href="#StddevPop-3692"><span class="linenos">3692</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-3693"><a href="#StddevPop-3693"><span class="linenos">3693</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38639,8 +38875,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#StddevSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-3682"><a href="#StddevSamp-3682"><span class="linenos">3682</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-3683"><a href="#StddevSamp-3683"><span class="linenos">3683</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-3696"><a href="#StddevSamp-3696"><span class="linenos">3696</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-3697"><a href="#StddevSamp-3697"><span class="linenos">3697</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38714,8 +38950,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TimeToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-3686"><a href="#TimeToStr-3686"><span class="linenos">3686</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-3687"><a href="#TimeToStr-3687"><span class="linenos">3687</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="TimeToStr-3700"><a href="#TimeToStr-3700"><span class="linenos">3700</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-3701"><a href="#TimeToStr-3701"><span class="linenos">3701</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>
@@ -38789,8 +39025,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-3690"><a href="#TimeToTimeStr-3690"><span class="linenos">3690</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-3691"><a href="#TimeToTimeStr-3691"><span class="linenos">3691</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-3704"><a href="#TimeToTimeStr-3704"><span class="linenos">3704</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-3705"><a href="#TimeToTimeStr-3705"><span class="linenos">3705</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38864,8 +39100,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-3694"><a href="#TimeToUnix-3694"><span class="linenos">3694</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-3695"><a href="#TimeToUnix-3695"><span class="linenos">3695</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-3708"><a href="#TimeToUnix-3708"><span class="linenos">3708</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-3709"><a href="#TimeToUnix-3709"><span class="linenos">3709</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -38939,8 +39175,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-3698"><a href="#TimeStrToDate-3698"><span class="linenos">3698</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-3699"><a href="#TimeStrToDate-3699"><span class="linenos">3699</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-3712"><a href="#TimeStrToDate-3712"><span class="linenos">3712</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-3713"><a href="#TimeStrToDate-3713"><span class="linenos">3713</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39014,8 +39250,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-3702"><a href="#TimeStrToTime-3702"><span class="linenos">3702</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-3703"><a href="#TimeStrToTime-3703"><span class="linenos">3703</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-3716"><a href="#TimeStrToTime-3716"><span class="linenos">3716</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-3717"><a href="#TimeStrToTime-3717"><span class="linenos">3717</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39089,8 +39325,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-3706"><a href="#TimeStrToUnix-3706"><span class="linenos">3706</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-3707"><a href="#TimeStrToUnix-3707"><span class="linenos">3707</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-3720"><a href="#TimeStrToUnix-3720"><span class="linenos">3720</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-3721"><a href="#TimeStrToUnix-3721"><span class="linenos">3721</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39164,13 +39400,13 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Trim"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-3710"><a href="#Trim-3710"><span class="linenos">3710</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-3711"><a href="#Trim-3711"><span class="linenos">3711</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Trim-3712"><a href="#Trim-3712"><span class="linenos">3712</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-3713"><a href="#Trim-3713"><span class="linenos">3713</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-3714"><a href="#Trim-3714"><span class="linenos">3714</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-3715"><a href="#Trim-3715"><span class="linenos">3715</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-3716"><a href="#Trim-3716"><span class="linenos">3716</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-3724"><a href="#Trim-3724"><span class="linenos">3724</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-3725"><a href="#Trim-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Trim-3726"><a href="#Trim-3726"><span class="linenos">3726</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-3727"><a href="#Trim-3727"><span class="linenos">3727</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-3728"><a href="#Trim-3728"><span class="linenos">3728</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-3729"><a href="#Trim-3729"><span class="linenos">3729</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-3730"><a href="#Trim-3730"><span class="linenos">3730</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39244,8 +39480,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-3719"><a href="#TsOrDsAdd-3719"><span class="linenos">3719</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-3720"><a href="#TsOrDsAdd-3720"><span class="linenos">3720</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-3733"><a href="#TsOrDsAdd-3733"><span class="linenos">3733</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-3734"><a href="#TsOrDsAdd-3734"><span class="linenos">3734</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>
@@ -39322,8 +39558,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-3723"><a href="#TsOrDsToDateStr-3723"><span class="linenos">3723</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-3724"><a href="#TsOrDsToDateStr-3724"><span class="linenos">3724</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-3737"><a href="#TsOrDsToDateStr-3737"><span class="linenos">3737</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-3738"><a href="#TsOrDsToDateStr-3738"><span class="linenos">3738</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39397,8 +39633,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-3727"><a href="#TsOrDsToDate-3727"><span class="linenos">3727</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-3728"><a href="#TsOrDsToDate-3728"><span class="linenos">3728</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-3741"><a href="#TsOrDsToDate-3741"><span class="linenos">3741</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-3742"><a href="#TsOrDsToDate-3742"><span class="linenos">3742</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>
@@ -39472,8 +39708,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-3731"><a href="#TsOrDiToDi-3731"><span class="linenos">3731</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-3732"><a href="#TsOrDiToDi-3732"><span class="linenos">3732</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-3745"><a href="#TsOrDiToDi-3745"><span class="linenos">3745</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-3746"><a href="#TsOrDiToDi-3746"><span class="linenos">3746</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39547,8 +39783,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Unhex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-3735"><a href="#Unhex-3735"><span class="linenos">3735</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-3736"><a href="#Unhex-3736"><span class="linenos">3736</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-3749"><a href="#Unhex-3749"><span class="linenos">3749</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-3750"><a href="#Unhex-3750"><span class="linenos">3750</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39622,8 +39858,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#UnixToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-3739"><a href="#UnixToStr-3739"><span class="linenos">3739</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-3740"><a href="#UnixToStr-3740"><span class="linenos">3740</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-3753"><a href="#UnixToStr-3753"><span class="linenos">3753</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-3754"><a href="#UnixToStr-3754"><span class="linenos">3754</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>
@@ -39697,12 +39933,12 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#UnixToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-3745"><a href="#UnixToTime-3745"><span class="linenos">3745</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-3746"><a href="#UnixToTime-3746"><span class="linenos">3746</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-3747"><a href="#UnixToTime-3747"><span class="linenos">3747</span></a>
-</span><span id="UnixToTime-3748"><a href="#UnixToTime-3748"><span class="linenos">3748</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-3749"><a href="#UnixToTime-3749"><span class="linenos">3749</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-3750"><a href="#UnixToTime-3750"><span class="linenos">3750</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-3759"><a href="#UnixToTime-3759"><span class="linenos">3759</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-3760"><a href="#UnixToTime-3760"><span class="linenos">3760</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-3761"><a href="#UnixToTime-3761"><span class="linenos">3761</span></a>
+</span><span id="UnixToTime-3762"><a href="#UnixToTime-3762"><span class="linenos">3762</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-3763"><a href="#UnixToTime-3763"><span class="linenos">3763</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-3764"><a href="#UnixToTime-3764"><span class="linenos">3764</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>
@@ -39776,8 +40012,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-3753"><a href="#UnixToTimeStr-3753"><span class="linenos">3753</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-3754"><a href="#UnixToTimeStr-3754"><span class="linenos">3754</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-3767"><a href="#UnixToTimeStr-3767"><span class="linenos">3767</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-3768"><a href="#UnixToTimeStr-3768"><span class="linenos">3768</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39851,8 +40087,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Upper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-3757"><a href="#Upper-3757"><span class="linenos">3757</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-3758"><a href="#Upper-3758"><span class="linenos">3758</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-3771"><a href="#Upper-3771"><span class="linenos">3771</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-3772"><a href="#Upper-3772"><span class="linenos">3772</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>
@@ -39926,8 +40162,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Variance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-3761"><a href="#Variance-3761"><span class="linenos">3761</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-3762"><a href="#Variance-3762"><span class="linenos">3762</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-3775"><a href="#Variance-3775"><span class="linenos">3775</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-3776"><a href="#Variance-3776"><span class="linenos">3776</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>
@@ -40001,8 +40237,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#VariancePop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-3765"><a href="#VariancePop-3765"><span class="linenos">3765</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-3766"><a href="#VariancePop-3766"><span class="linenos">3766</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-3779"><a href="#VariancePop-3779"><span class="linenos">3779</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-3780"><a href="#VariancePop-3780"><span class="linenos">3780</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>
@@ -40076,8 +40312,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Week"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Week-3769"><a href="#Week-3769"><span class="linenos">3769</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-3770"><a href="#Week-3770"><span class="linenos">3770</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-3783"><a href="#Week-3783"><span class="linenos">3783</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-3784"><a href="#Week-3784"><span class="linenos">3784</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>
@@ -40151,8 +40387,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#XMLTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-3773"><a href="#XMLTable-3773"><span class="linenos">3773</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-3774"><a href="#XMLTable-3774"><span class="linenos">3774</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-3787"><a href="#XMLTable-3787"><span class="linenos">3787</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-3788"><a href="#XMLTable-3788"><span class="linenos">3788</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>
@@ -40226,8 +40462,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Year"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Year-3777"><a href="#Year-3777"><span class="linenos">3777</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-3778"><a href="#Year-3778"><span class="linenos">3778</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Year-3791"><a href="#Year-3791"><span class="linenos">3791</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-3792"><a href="#Year-3792"><span class="linenos">3792</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -40301,8 +40537,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Use"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Use-3781"><a href="#Use-3781"><span class="linenos">3781</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-3782"><a href="#Use-3782"><span class="linenos">3782</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-3795"><a href="#Use-3795"><span class="linenos">3795</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-3796"><a href="#Use-3796"><span class="linenos">3796</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>
@@ -40363,8 +40599,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#Merge"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-3785"><a href="#Merge-3785"><span class="linenos">3785</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-3786"><a href="#Merge-3786"><span class="linenos">3786</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-3799"><a href="#Merge-3799"><span class="linenos">3799</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-3800"><a href="#Merge-3800"><span class="linenos">3800</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>
@@ -40425,8 +40661,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#When"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="When-3789"><a href="#When-3789"><span class="linenos">3789</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-3790"><a href="#When-3790"><span class="linenos">3790</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-3803"><a href="#When-3803"><span class="linenos">3803</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-3804"><a href="#When-3804"><span class="linenos">3804</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>
@@ -40500,48 +40736,48 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>
</div>
<a class="headerlink" href="#maybe_parse"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-3818"><a href="#maybe_parse-3818"><span class="linenos">3818</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="maybe_parse-3819"><a href="#maybe_parse-3819"><span class="linenos">3819</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">Expression</span><span class="p">,</span>
-</span><span id="maybe_parse-3820"><a href="#maybe_parse-3820"><span class="linenos">3820</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="maybe_parse-3821"><a href="#maybe_parse-3821"><span class="linenos">3821</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-3822"><a href="#maybe_parse-3822"><span class="linenos">3822</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-3823"><a href="#maybe_parse-3823"><span class="linenos">3823</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-3824"><a href="#maybe_parse-3824"><span class="linenos">3824</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-3825"><a href="#maybe_parse-3825"><span class="linenos">3825</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="maybe_parse-3826"><a href="#maybe_parse-3826"><span class="linenos">3826</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-3827"><a href="#maybe_parse-3827"><span class="linenos">3827</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-3828"><a href="#maybe_parse-3828"><span class="linenos">3828</span></a>
-</span><span id="maybe_parse-3829"><a href="#maybe_parse-3829"><span class="linenos">3829</span></a><span class="sd"> Example:</span>
-</span><span id="maybe_parse-3830"><a href="#maybe_parse-3830"><span class="linenos">3830</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="maybe_parse-3831"><a href="#maybe_parse-3831"><span class="linenos">3831</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
-</span><span id="maybe_parse-3832"><a href="#maybe_parse-3832"><span class="linenos">3832</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="maybe_parse-3833"><a href="#maybe_parse-3833"><span class="linenos">3833</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
-</span><span id="maybe_parse-3834"><a href="#maybe_parse-3834"><span class="linenos">3834</span></a>
-</span><span id="maybe_parse-3835"><a href="#maybe_parse-3835"><span class="linenos">3835</span></a><span class="sd"> Args:</span>
-</span><span id="maybe_parse-3836"><a href="#maybe_parse-3836"><span class="linenos">3836</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="maybe_parse-3837"><a href="#maybe_parse-3837"><span class="linenos">3837</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="maybe_parse-3838"><a href="#maybe_parse-3838"><span class="linenos">3838</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-3839"><a href="#maybe_parse-3839"><span class="linenos">3839</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="maybe_parse-3840"><a href="#maybe_parse-3840"><span class="linenos">3840</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="maybe_parse-3841"><a href="#maybe_parse-3841"><span class="linenos">3841</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="maybe_parse-3842"><a href="#maybe_parse-3842"><span class="linenos">3842</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
-</span><span id="maybe_parse-3843"><a href="#maybe_parse-3843"><span class="linenos">3843</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-3844"><a href="#maybe_parse-3844"><span class="linenos">3844</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="maybe_parse-3845"><a href="#maybe_parse-3845"><span class="linenos">3845</span></a>
-</span><span id="maybe_parse-3846"><a href="#maybe_parse-3846"><span class="linenos">3846</span></a><span class="sd"> Returns:</span>
-</span><span id="maybe_parse-3847"><a href="#maybe_parse-3847"><span class="linenos">3847</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="maybe_parse-3848"><a href="#maybe_parse-3848"><span class="linenos">3848</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="maybe_parse-3849"><a href="#maybe_parse-3849"><span class="linenos">3849</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-3850"><a href="#maybe_parse-3850"><span class="linenos">3850</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="maybe_parse-3851"><a href="#maybe_parse-3851"><span class="linenos">3851</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-3852"><a href="#maybe_parse-3852"><span class="linenos">3852</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="maybe_parse-3853"><a href="#maybe_parse-3853"><span class="linenos">3853</span></a>
-</span><span id="maybe_parse-3854"><a href="#maybe_parse-3854"><span class="linenos">3854</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="maybe_parse-3855"><a href="#maybe_parse-3855"><span class="linenos">3855</span></a>
-</span><span id="maybe_parse-3856"><a href="#maybe_parse-3856"><span class="linenos">3856</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-3857"><a href="#maybe_parse-3857"><span class="linenos">3857</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="maybe_parse-3858"><a href="#maybe_parse-3858"><span class="linenos">3858</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-3859"><a href="#maybe_parse-3859"><span class="linenos">3859</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-3832"><a href="#maybe_parse-3832"><span class="linenos">3832</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="maybe_parse-3833"><a href="#maybe_parse-3833"><span class="linenos">3833</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">Expression</span><span class="p">,</span>
+</span><span id="maybe_parse-3834"><a href="#maybe_parse-3834"><span class="linenos">3834</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="maybe_parse-3835"><a href="#maybe_parse-3835"><span class="linenos">3835</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-3836"><a href="#maybe_parse-3836"><span class="linenos">3836</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-3837"><a href="#maybe_parse-3837"><span class="linenos">3837</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-3838"><a href="#maybe_parse-3838"><span class="linenos">3838</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-3839"><a href="#maybe_parse-3839"><span class="linenos">3839</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="maybe_parse-3840"><a href="#maybe_parse-3840"><span class="linenos">3840</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-3841"><a href="#maybe_parse-3841"><span class="linenos">3841</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-3842"><a href="#maybe_parse-3842"><span class="linenos">3842</span></a>
+</span><span id="maybe_parse-3843"><a href="#maybe_parse-3843"><span class="linenos">3843</span></a><span class="sd"> Example:</span>
+</span><span id="maybe_parse-3844"><a href="#maybe_parse-3844"><span class="linenos">3844</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="maybe_parse-3845"><a href="#maybe_parse-3845"><span class="linenos">3845</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
+</span><span id="maybe_parse-3846"><a href="#maybe_parse-3846"><span class="linenos">3846</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="maybe_parse-3847"><a href="#maybe_parse-3847"><span class="linenos">3847</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
+</span><span id="maybe_parse-3848"><a href="#maybe_parse-3848"><span class="linenos">3848</span></a>
+</span><span id="maybe_parse-3849"><a href="#maybe_parse-3849"><span class="linenos">3849</span></a><span class="sd"> Args:</span>
+</span><span id="maybe_parse-3850"><a href="#maybe_parse-3850"><span class="linenos">3850</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="maybe_parse-3851"><a href="#maybe_parse-3851"><span class="linenos">3851</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="maybe_parse-3852"><a href="#maybe_parse-3852"><span class="linenos">3852</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-3853"><a href="#maybe_parse-3853"><span class="linenos">3853</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="maybe_parse-3854"><a href="#maybe_parse-3854"><span class="linenos">3854</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="maybe_parse-3855"><a href="#maybe_parse-3855"><span class="linenos">3855</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="maybe_parse-3856"><a href="#maybe_parse-3856"><span class="linenos">3856</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
+</span><span id="maybe_parse-3857"><a href="#maybe_parse-3857"><span class="linenos">3857</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-3858"><a href="#maybe_parse-3858"><span class="linenos">3858</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="maybe_parse-3859"><a href="#maybe_parse-3859"><span class="linenos">3859</span></a>
+</span><span id="maybe_parse-3860"><a href="#maybe_parse-3860"><span class="linenos">3860</span></a><span class="sd"> Returns:</span>
+</span><span id="maybe_parse-3861"><a href="#maybe_parse-3861"><span class="linenos">3861</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="maybe_parse-3862"><a href="#maybe_parse-3862"><span class="linenos">3862</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="maybe_parse-3863"><a href="#maybe_parse-3863"><span class="linenos">3863</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-3864"><a href="#maybe_parse-3864"><span class="linenos">3864</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="maybe_parse-3865"><a href="#maybe_parse-3865"><span class="linenos">3865</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-3866"><a href="#maybe_parse-3866"><span class="linenos">3866</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="maybe_parse-3867"><a href="#maybe_parse-3867"><span class="linenos">3867</span></a>
+</span><span id="maybe_parse-3868"><a href="#maybe_parse-3868"><span class="linenos">3868</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="maybe_parse-3869"><a href="#maybe_parse-3869"><span class="linenos">3869</span></a>
+</span><span id="maybe_parse-3870"><a href="#maybe_parse-3870"><span class="linenos">3870</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-3871"><a href="#maybe_parse-3871"><span class="linenos">3871</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="maybe_parse-3872"><a href="#maybe_parse-3872"><span class="linenos">3872</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-3873"><a href="#maybe_parse-3873"><span class="linenos">3873</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>
@@ -40593,29 +40829,29 @@ 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-4005"><a href="#union-4005"><span class="linenos">4005</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="union-4006"><a href="#union-4006"><span class="linenos">4006</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-4007"><a href="#union-4007"><span class="linenos">4007</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-4008"><a href="#union-4008"><span class="linenos">4008</span></a>
-</span><span id="union-4009"><a href="#union-4009"><span class="linenos">4009</span></a><span class="sd"> Example:</span>
-</span><span id="union-4010"><a href="#union-4010"><span class="linenos">4010</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-4011"><a href="#union-4011"><span class="linenos">4011</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-4012"><a href="#union-4012"><span class="linenos">4012</span></a>
-</span><span id="union-4013"><a href="#union-4013"><span class="linenos">4013</span></a><span class="sd"> Args:</span>
-</span><span id="union-4014"><a href="#union-4014"><span class="linenos">4014</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-4015"><a href="#union-4015"><span class="linenos">4015</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-4016"><a href="#union-4016"><span class="linenos">4016</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-4017"><a href="#union-4017"><span class="linenos">4017</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-4018"><a href="#union-4018"><span class="linenos">4018</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-4019"><a href="#union-4019"><span class="linenos">4019</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="union-4020"><a href="#union-4020"><span class="linenos">4020</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="union-4021"><a href="#union-4021"><span class="linenos">4021</span></a><span class="sd"> Returns:</span>
-</span><span id="union-4022"><a href="#union-4022"><span class="linenos">4022</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
-</span><span id="union-4023"><a href="#union-4023"><span class="linenos">4023</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-4024"><a href="#union-4024"><span class="linenos">4024</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-4025"><a href="#union-4025"><span class="linenos">4025</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="union-4019"><a href="#union-4019"><span class="linenos">4019</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="union-4020"><a href="#union-4020"><span class="linenos">4020</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-4021"><a href="#union-4021"><span class="linenos">4021</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-4022"><a href="#union-4022"><span class="linenos">4022</span></a>
+</span><span id="union-4023"><a href="#union-4023"><span class="linenos">4023</span></a><span class="sd"> Example:</span>
+</span><span id="union-4024"><a href="#union-4024"><span class="linenos">4024</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-4025"><a href="#union-4025"><span class="linenos">4025</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="union-4026"><a href="#union-4026"><span class="linenos">4026</span></a>
-</span><span id="union-4027"><a href="#union-4027"><span class="linenos">4027</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="union-4027"><a href="#union-4027"><span class="linenos">4027</span></a><span class="sd"> Args:</span>
+</span><span id="union-4028"><a href="#union-4028"><span class="linenos">4028</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-4029"><a href="#union-4029"><span class="linenos">4029</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-4030"><a href="#union-4030"><span class="linenos">4030</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-4031"><a href="#union-4031"><span class="linenos">4031</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-4032"><a href="#union-4032"><span class="linenos">4032</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-4033"><a href="#union-4033"><span class="linenos">4033</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="union-4034"><a href="#union-4034"><span class="linenos">4034</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="union-4035"><a href="#union-4035"><span class="linenos">4035</span></a><span class="sd"> Returns:</span>
+</span><span id="union-4036"><a href="#union-4036"><span class="linenos">4036</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span>
+</span><span id="union-4037"><a href="#union-4037"><span class="linenos">4037</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-4038"><a href="#union-4038"><span class="linenos">4038</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-4039"><a href="#union-4039"><span class="linenos">4039</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-4040"><a href="#union-4040"><span class="linenos">4040</span></a>
+</span><span id="union-4041"><a href="#union-4041"><span class="linenos">4041</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>
@@ -40663,29 +40899,29 @@ 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-4030"><a href="#intersect-4030"><span class="linenos">4030</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="intersect-4031"><a href="#intersect-4031"><span class="linenos">4031</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-4032"><a href="#intersect-4032"><span class="linenos">4032</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-4033"><a href="#intersect-4033"><span class="linenos">4033</span></a>
-</span><span id="intersect-4034"><a href="#intersect-4034"><span class="linenos">4034</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-4035"><a href="#intersect-4035"><span class="linenos">4035</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-4036"><a href="#intersect-4036"><span class="linenos">4036</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-4037"><a href="#intersect-4037"><span class="linenos">4037</span></a>
-</span><span id="intersect-4038"><a href="#intersect-4038"><span class="linenos">4038</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-4039"><a href="#intersect-4039"><span class="linenos">4039</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-4040"><a href="#intersect-4040"><span class="linenos">4040</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-4041"><a href="#intersect-4041"><span class="linenos">4041</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-4042"><a href="#intersect-4042"><span class="linenos">4042</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-4043"><a href="#intersect-4043"><span class="linenos">4043</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-4044"><a href="#intersect-4044"><span class="linenos">4044</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="intersect-4045"><a href="#intersect-4045"><span class="linenos">4045</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="intersect-4046"><a href="#intersect-4046"><span class="linenos">4046</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-4047"><a href="#intersect-4047"><span class="linenos">4047</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
-</span><span id="intersect-4048"><a href="#intersect-4048"><span class="linenos">4048</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-4049"><a href="#intersect-4049"><span class="linenos">4049</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-4050"><a href="#intersect-4050"><span class="linenos">4050</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-4044"><a href="#intersect-4044"><span class="linenos">4044</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="intersect-4045"><a href="#intersect-4045"><span class="linenos">4045</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-4046"><a href="#intersect-4046"><span class="linenos">4046</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-4047"><a href="#intersect-4047"><span class="linenos">4047</span></a>
+</span><span id="intersect-4048"><a href="#intersect-4048"><span class="linenos">4048</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-4049"><a href="#intersect-4049"><span class="linenos">4049</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-4050"><a href="#intersect-4050"><span class="linenos">4050</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="intersect-4051"><a href="#intersect-4051"><span class="linenos">4051</span></a>
-</span><span id="intersect-4052"><a href="#intersect-4052"><span class="linenos">4052</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="intersect-4052"><a href="#intersect-4052"><span class="linenos">4052</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-4053"><a href="#intersect-4053"><span class="linenos">4053</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-4054"><a href="#intersect-4054"><span class="linenos">4054</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-4055"><a href="#intersect-4055"><span class="linenos">4055</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-4056"><a href="#intersect-4056"><span class="linenos">4056</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-4057"><a href="#intersect-4057"><span class="linenos">4057</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-4058"><a href="#intersect-4058"><span class="linenos">4058</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="intersect-4059"><a href="#intersect-4059"><span class="linenos">4059</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="intersect-4060"><a href="#intersect-4060"><span class="linenos">4060</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-4061"><a href="#intersect-4061"><span class="linenos">4061</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span>
+</span><span id="intersect-4062"><a href="#intersect-4062"><span class="linenos">4062</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-4063"><a href="#intersect-4063"><span class="linenos">4063</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-4064"><a href="#intersect-4064"><span class="linenos">4064</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-4065"><a href="#intersect-4065"><span class="linenos">4065</span></a>
+</span><span id="intersect-4066"><a href="#intersect-4066"><span class="linenos">4066</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>
@@ -40733,29 +40969,29 @@ 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_-4055"><a href="#except_-4055"><span class="linenos">4055</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="except_-4056"><a href="#except_-4056"><span class="linenos">4056</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-4057"><a href="#except_-4057"><span class="linenos">4057</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-4058"><a href="#except_-4058"><span class="linenos">4058</span></a>
-</span><span id="except_-4059"><a href="#except_-4059"><span class="linenos">4059</span></a><span class="sd"> Example:</span>
-</span><span id="except_-4060"><a href="#except_-4060"><span class="linenos">4060</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_-4061"><a href="#except_-4061"><span class="linenos">4061</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-4062"><a href="#except_-4062"><span class="linenos">4062</span></a>
-</span><span id="except_-4063"><a href="#except_-4063"><span class="linenos">4063</span></a><span class="sd"> Args:</span>
-</span><span id="except_-4064"><a href="#except_-4064"><span class="linenos">4064</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-4065"><a href="#except_-4065"><span class="linenos">4065</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-4066"><a href="#except_-4066"><span class="linenos">4066</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-4067"><a href="#except_-4067"><span class="linenos">4067</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-4068"><a href="#except_-4068"><span class="linenos">4068</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-4069"><a href="#except_-4069"><span class="linenos">4069</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="except_-4070"><a href="#except_-4070"><span class="linenos">4070</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
-</span><span id="except_-4071"><a href="#except_-4071"><span class="linenos">4071</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-4072"><a href="#except_-4072"><span class="linenos">4072</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
-</span><span id="except_-4073"><a href="#except_-4073"><span class="linenos">4073</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-4074"><a href="#except_-4074"><span class="linenos">4074</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_-4075"><a href="#except_-4075"><span class="linenos">4075</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="except_-4069"><a href="#except_-4069"><span class="linenos">4069</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</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><span id="except_-4070"><a href="#except_-4070"><span class="linenos">4070</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-4071"><a href="#except_-4071"><span class="linenos">4071</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-4072"><a href="#except_-4072"><span class="linenos">4072</span></a>
+</span><span id="except_-4073"><a href="#except_-4073"><span class="linenos">4073</span></a><span class="sd"> Example:</span>
+</span><span id="except_-4074"><a href="#except_-4074"><span class="linenos">4074</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_-4075"><a href="#except_-4075"><span class="linenos">4075</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="except_-4076"><a href="#except_-4076"><span class="linenos">4076</span></a>
-</span><span id="except_-4077"><a href="#except_-4077"><span class="linenos">4077</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="except_-4077"><a href="#except_-4077"><span class="linenos">4077</span></a><span class="sd"> Args:</span>
+</span><span id="except_-4078"><a href="#except_-4078"><span class="linenos">4078</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-4079"><a href="#except_-4079"><span class="linenos">4079</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-4080"><a href="#except_-4080"><span class="linenos">4080</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-4081"><a href="#except_-4081"><span class="linenos">4081</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-4082"><a href="#except_-4082"><span class="linenos">4082</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-4083"><a href="#except_-4083"><span class="linenos">4083</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="except_-4084"><a href="#except_-4084"><span class="linenos">4084</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span>
+</span><span id="except_-4085"><a href="#except_-4085"><span class="linenos">4085</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-4086"><a href="#except_-4086"><span class="linenos">4086</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span>
+</span><span id="except_-4087"><a href="#except_-4087"><span class="linenos">4087</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-4088"><a href="#except_-4088"><span class="linenos">4088</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_-4089"><a href="#except_-4089"><span class="linenos">4089</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_-4090"><a href="#except_-4090"><span class="linenos">4090</span></a>
+</span><span id="except_-4091"><a href="#except_-4091"><span class="linenos">4091</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>
@@ -40803,26 +41039,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-4080"><a href="#select-4080"><span class="linenos">4080</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4081"><a href="#select-4081"><span class="linenos">4081</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-4082"><a href="#select-4082"><span class="linenos">4082</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-4083"><a href="#select-4083"><span class="linenos">4083</span></a>
-</span><span id="select-4084"><a href="#select-4084"><span class="linenos">4084</span></a><span class="sd"> Example:</span>
-</span><span id="select-4085"><a href="#select-4085"><span class="linenos">4085</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-4086"><a href="#select-4086"><span class="linenos">4086</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-4087"><a href="#select-4087"><span class="linenos">4087</span></a>
-</span><span id="select-4088"><a href="#select-4088"><span class="linenos">4088</span></a><span class="sd"> Args:</span>
-</span><span id="select-4089"><a href="#select-4089"><span class="linenos">4089</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-4090"><a href="#select-4090"><span class="linenos">4090</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-4091"><a href="#select-4091"><span class="linenos">4091</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-4092"><a href="#select-4092"><span class="linenos">4092</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-4093"><a href="#select-4093"><span class="linenos">4093</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-4094"><a href="#select-4094"><span class="linenos">4094</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="select-4095"><a href="#select-4095"><span class="linenos">4095</span></a>
-</span><span id="select-4096"><a href="#select-4096"><span class="linenos">4096</span></a><span class="sd"> Returns:</span>
-</span><span id="select-4097"><a href="#select-4097"><span class="linenos">4097</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-4098"><a href="#select-4098"><span class="linenos">4098</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-4099"><a href="#select-4099"><span class="linenos">4099</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="select-4094"><a href="#select-4094"><span class="linenos">4094</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4095"><a href="#select-4095"><span class="linenos">4095</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-4096"><a href="#select-4096"><span class="linenos">4096</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="select-4097"><a href="#select-4097"><span class="linenos">4097</span></a>
+</span><span id="select-4098"><a href="#select-4098"><span class="linenos">4098</span></a><span class="sd"> Example:</span>
+</span><span id="select-4099"><a href="#select-4099"><span class="linenos">4099</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-4100"><a href="#select-4100"><span class="linenos">4100</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-4101"><a href="#select-4101"><span class="linenos">4101</span></a>
+</span><span id="select-4102"><a href="#select-4102"><span class="linenos">4102</span></a><span class="sd"> Args:</span>
+</span><span id="select-4103"><a href="#select-4103"><span class="linenos">4103</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-4104"><a href="#select-4104"><span class="linenos">4104</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-4105"><a href="#select-4105"><span class="linenos">4105</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-4106"><a href="#select-4106"><span class="linenos">4106</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-4107"><a href="#select-4107"><span class="linenos">4107</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-4108"><a href="#select-4108"><span class="linenos">4108</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-4109"><a href="#select-4109"><span class="linenos">4109</span></a>
+</span><span id="select-4110"><a href="#select-4110"><span class="linenos">4110</span></a><span class="sd"> Returns:</span>
+</span><span id="select-4111"><a href="#select-4111"><span class="linenos">4111</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-4112"><a href="#select-4112"><span class="linenos">4112</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-4113"><a href="#select-4113"><span class="linenos">4113</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>
@@ -40869,26 +41105,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_-4102"><a href="#from_-4102"><span class="linenos">4102</span></a><span class="k">def</span> <span class="nf">from_</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="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_-4103"><a href="#from_-4103"><span class="linenos">4103</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-4104"><a href="#from_-4104"><span class="linenos">4104</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-4105"><a href="#from_-4105"><span class="linenos">4105</span></a>
-</span><span id="from_-4106"><a href="#from_-4106"><span class="linenos">4106</span></a><span class="sd"> Example:</span>
-</span><span id="from_-4107"><a href="#from_-4107"><span class="linenos">4107</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_-4108"><a href="#from_-4108"><span class="linenos">4108</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-4109"><a href="#from_-4109"><span class="linenos">4109</span></a>
-</span><span id="from_-4110"><a href="#from_-4110"><span class="linenos">4110</span></a><span class="sd"> Args:</span>
-</span><span id="from_-4111"><a href="#from_-4111"><span class="linenos">4111</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-4112"><a href="#from_-4112"><span class="linenos">4112</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-4113"><a href="#from_-4113"><span class="linenos">4113</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-4114"><a href="#from_-4114"><span class="linenos">4114</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-4115"><a href="#from_-4115"><span class="linenos">4115</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-4116"><a href="#from_-4116"><span class="linenos">4116</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="from_-4117"><a href="#from_-4117"><span class="linenos">4117</span></a>
-</span><span id="from_-4118"><a href="#from_-4118"><span class="linenos">4118</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-4119"><a href="#from_-4119"><span class="linenos">4119</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-4120"><a href="#from_-4120"><span class="linenos">4120</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-4121"><a href="#from_-4121"><span class="linenos">4121</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="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-4116"><a href="#from_-4116"><span class="linenos">4116</span></a><span class="k">def</span> <span class="nf">from_</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="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_-4117"><a href="#from_-4117"><span class="linenos">4117</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-4118"><a href="#from_-4118"><span class="linenos">4118</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="from_-4119"><a href="#from_-4119"><span class="linenos">4119</span></a>
+</span><span id="from_-4120"><a href="#from_-4120"><span class="linenos">4120</span></a><span class="sd"> Example:</span>
+</span><span id="from_-4121"><a href="#from_-4121"><span class="linenos">4121</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_-4122"><a href="#from_-4122"><span class="linenos">4122</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-4123"><a href="#from_-4123"><span class="linenos">4123</span></a>
+</span><span id="from_-4124"><a href="#from_-4124"><span class="linenos">4124</span></a><span class="sd"> Args:</span>
+</span><span id="from_-4125"><a href="#from_-4125"><span class="linenos">4125</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-4126"><a href="#from_-4126"><span class="linenos">4126</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-4127"><a href="#from_-4127"><span class="linenos">4127</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-4128"><a href="#from_-4128"><span class="linenos">4128</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-4129"><a href="#from_-4129"><span class="linenos">4129</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-4130"><a href="#from_-4130"><span class="linenos">4130</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-4131"><a href="#from_-4131"><span class="linenos">4131</span></a>
+</span><span id="from_-4132"><a href="#from_-4132"><span class="linenos">4132</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-4133"><a href="#from_-4133"><span class="linenos">4133</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-4134"><a href="#from_-4134"><span class="linenos">4134</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-4135"><a href="#from_-4135"><span class="linenos">4135</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="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>
@@ -40935,46 +41171,46 @@ 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-4124"><a href="#update-4124"><span class="linenos">4124</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Update</span><span class="p">:</span>
-</span><span id="update-4125"><a href="#update-4125"><span class="linenos">4125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-4126"><a href="#update-4126"><span class="linenos">4126</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-4127"><a href="#update-4127"><span class="linenos">4127</span></a>
-</span><span id="update-4128"><a href="#update-4128"><span class="linenos">4128</span></a><span class="sd"> Example:</span>
-</span><span id="update-4129"><a href="#update-4129"><span class="linenos">4129</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-4130"><a href="#update-4130"><span class="linenos">4130</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-4131"><a href="#update-4131"><span class="linenos">4131</span></a>
-</span><span id="update-4132"><a href="#update-4132"><span class="linenos">4132</span></a><span class="sd"> Args:</span>
-</span><span id="update-4133"><a href="#update-4133"><span class="linenos">4133</span></a><span class="sd"> *properties (Dict[str, Any]): dictionary of properties to set which are</span>
-</span><span id="update-4134"><a href="#update-4134"><span class="linenos">4134</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-4135"><a href="#update-4135"><span class="linenos">4135</span></a><span class="sd"> where (str): sql conditional parsed into a WHERE statement</span>
-</span><span id="update-4136"><a href="#update-4136"><span class="linenos">4136</span></a><span class="sd"> from_ (str): sql statement parsed into a FROM statement</span>
-</span><span id="update-4137"><a href="#update-4137"><span class="linenos">4137</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="update-4138"><a href="#update-4138"><span class="linenos">4138</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="update-4139"><a href="#update-4139"><span class="linenos">4139</span></a>
-</span><span id="update-4140"><a href="#update-4140"><span class="linenos">4140</span></a><span class="sd"> Returns:</span>
-</span><span id="update-4141"><a href="#update-4141"><span class="linenos">4141</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-4142"><a href="#update-4142"><span class="linenos">4142</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-4143"><a href="#update-4143"><span class="linenos">4143</span></a> <span class="n">update</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-4144"><a href="#update-4144"><span class="linenos">4144</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-4145"><a href="#update-4145"><span class="linenos">4145</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-4146"><a href="#update-4146"><span class="linenos">4146</span></a> <span class="p">[</span>
-</span><span id="update-4147"><a href="#update-4147"><span class="linenos">4147</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-4148"><a href="#update-4148"><span class="linenos">4148</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-4149"><a href="#update-4149"><span class="linenos">4149</span></a> <span class="p">],</span>
-</span><span id="update-4150"><a href="#update-4150"><span class="linenos">4150</span></a> <span class="p">)</span>
-</span><span id="update-4151"><a href="#update-4151"><span class="linenos">4151</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-4152"><a href="#update-4152"><span class="linenos">4152</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-4153"><a href="#update-4153"><span class="linenos">4153</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-4154"><a href="#update-4154"><span class="linenos">4154</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-4155"><a href="#update-4155"><span class="linenos">4155</span></a> <span class="p">)</span>
-</span><span id="update-4156"><a href="#update-4156"><span class="linenos">4156</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-4157"><a href="#update-4157"><span class="linenos">4157</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-4158"><a href="#update-4158"><span class="linenos">4158</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-4159"><a href="#update-4159"><span class="linenos">4159</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-4160"><a href="#update-4160"><span class="linenos">4160</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-4161"><a href="#update-4161"><span class="linenos">4161</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-4162"><a href="#update-4162"><span class="linenos">4162</span></a> <span class="p">)</span>
-</span><span id="update-4163"><a href="#update-4163"><span class="linenos">4163</span></a> <span class="k">return</span> <span class="n">update</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="update-4138"><a href="#update-4138"><span class="linenos">4138</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Update</span><span class="p">:</span>
+</span><span id="update-4139"><a href="#update-4139"><span class="linenos">4139</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-4140"><a href="#update-4140"><span class="linenos">4140</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="update-4141"><a href="#update-4141"><span class="linenos">4141</span></a>
+</span><span id="update-4142"><a href="#update-4142"><span class="linenos">4142</span></a><span class="sd"> Example:</span>
+</span><span id="update-4143"><a href="#update-4143"><span class="linenos">4143</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-4144"><a href="#update-4144"><span class="linenos">4144</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-4145"><a href="#update-4145"><span class="linenos">4145</span></a>
+</span><span id="update-4146"><a href="#update-4146"><span class="linenos">4146</span></a><span class="sd"> Args:</span>
+</span><span id="update-4147"><a href="#update-4147"><span class="linenos">4147</span></a><span class="sd"> *properties (Dict[str, Any]): dictionary of properties to set which are</span>
+</span><span id="update-4148"><a href="#update-4148"><span class="linenos">4148</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-4149"><a href="#update-4149"><span class="linenos">4149</span></a><span class="sd"> where (str): sql conditional parsed into a WHERE statement</span>
+</span><span id="update-4150"><a href="#update-4150"><span class="linenos">4150</span></a><span class="sd"> from_ (str): sql statement parsed into a FROM statement</span>
+</span><span id="update-4151"><a href="#update-4151"><span class="linenos">4151</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="update-4152"><a href="#update-4152"><span class="linenos">4152</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-4153"><a href="#update-4153"><span class="linenos">4153</span></a>
+</span><span id="update-4154"><a href="#update-4154"><span class="linenos">4154</span></a><span class="sd"> Returns:</span>
+</span><span id="update-4155"><a href="#update-4155"><span class="linenos">4155</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-4156"><a href="#update-4156"><span class="linenos">4156</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-4157"><a href="#update-4157"><span class="linenos">4157</span></a> <span class="n">update</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-4158"><a href="#update-4158"><span class="linenos">4158</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-4159"><a href="#update-4159"><span class="linenos">4159</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-4160"><a href="#update-4160"><span class="linenos">4160</span></a> <span class="p">[</span>
+</span><span id="update-4161"><a href="#update-4161"><span class="linenos">4161</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-4162"><a href="#update-4162"><span class="linenos">4162</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-4163"><a href="#update-4163"><span class="linenos">4163</span></a> <span class="p">],</span>
+</span><span id="update-4164"><a href="#update-4164"><span class="linenos">4164</span></a> <span class="p">)</span>
+</span><span id="update-4165"><a href="#update-4165"><span class="linenos">4165</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-4166"><a href="#update-4166"><span class="linenos">4166</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-4167"><a href="#update-4167"><span class="linenos">4167</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-4168"><a href="#update-4168"><span class="linenos">4168</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-4169"><a href="#update-4169"><span class="linenos">4169</span></a> <span class="p">)</span>
+</span><span id="update-4170"><a href="#update-4170"><span class="linenos">4170</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-4171"><a href="#update-4171"><span class="linenos">4171</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-4172"><a href="#update-4172"><span class="linenos">4172</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-4173"><a href="#update-4173"><span class="linenos">4173</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-4174"><a href="#update-4174"><span class="linenos">4174</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-4175"><a href="#update-4175"><span class="linenos">4175</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-4176"><a href="#update-4176"><span class="linenos">4176</span></a> <span class="p">)</span>
+</span><span id="update-4177"><a href="#update-4177"><span class="linenos">4177</span></a> <span class="k">return</span> <span class="n">update</span>
</span></pre></div>
@@ -41021,28 +41257,28 @@ 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-4166"><a href="#delete-4166"><span class="linenos">4166</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Delete</span><span class="p">:</span>
-</span><span id="delete-4167"><a href="#delete-4167"><span class="linenos">4167</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-4168"><a href="#delete-4168"><span class="linenos">4168</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-4169"><a href="#delete-4169"><span class="linenos">4169</span></a>
-</span><span id="delete-4170"><a href="#delete-4170"><span class="linenos">4170</span></a><span class="sd"> Example:</span>
-</span><span id="delete-4171"><a href="#delete-4171"><span class="linenos">4171</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-4172"><a href="#delete-4172"><span class="linenos">4172</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-4173"><a href="#delete-4173"><span class="linenos">4173</span></a>
-</span><span id="delete-4174"><a href="#delete-4174"><span class="linenos">4174</span></a><span class="sd"> Args:</span>
-</span><span id="delete-4175"><a href="#delete-4175"><span class="linenos">4175</span></a><span class="sd"> where (str|Condition): sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-4176"><a href="#delete-4176"><span class="linenos">4176</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
-</span><span id="delete-4177"><a href="#delete-4177"><span class="linenos">4177</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="delete-4178"><a href="#delete-4178"><span class="linenos">4178</span></a>
-</span><span id="delete-4179"><a href="#delete-4179"><span class="linenos">4179</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-4180"><a href="#delete-4180"><span class="linenos">4180</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-4181"><a href="#delete-4181"><span class="linenos">4181</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-4182"><a href="#delete-4182"><span class="linenos">4182</span></a> <span class="k">return</span> <span class="n">Delete</span><span class="p">(</span>
-</span><span id="delete-4183"><a href="#delete-4183"><span class="linenos">4183</span></a> <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 class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="delete-4184"><a href="#delete-4184"><span class="linenos">4184</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="delete-4185"><a href="#delete-4185"><span class="linenos">4185</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="delete-4186"><a href="#delete-4186"><span class="linenos">4186</span></a> <span class="k">else</span> <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="delete-4187"><a href="#delete-4187"><span class="linenos">4187</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4180"><a href="#delete-4180"><span class="linenos">4180</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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">Delete</span><span class="p">:</span>
+</span><span id="delete-4181"><a href="#delete-4181"><span class="linenos">4181</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-4182"><a href="#delete-4182"><span class="linenos">4182</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="delete-4183"><a href="#delete-4183"><span class="linenos">4183</span></a>
+</span><span id="delete-4184"><a href="#delete-4184"><span class="linenos">4184</span></a><span class="sd"> Example:</span>
+</span><span id="delete-4185"><a href="#delete-4185"><span class="linenos">4185</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-4186"><a href="#delete-4186"><span class="linenos">4186</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-4187"><a href="#delete-4187"><span class="linenos">4187</span></a>
+</span><span id="delete-4188"><a href="#delete-4188"><span class="linenos">4188</span></a><span class="sd"> Args:</span>
+</span><span id="delete-4189"><a href="#delete-4189"><span class="linenos">4189</span></a><span class="sd"> where (str|Condition): sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-4190"><a href="#delete-4190"><span class="linenos">4190</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span>
+</span><span id="delete-4191"><a href="#delete-4191"><span class="linenos">4191</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-4192"><a href="#delete-4192"><span class="linenos">4192</span></a>
+</span><span id="delete-4193"><a href="#delete-4193"><span class="linenos">4193</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-4194"><a href="#delete-4194"><span class="linenos">4194</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-4195"><a href="#delete-4195"><span class="linenos">4195</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-4196"><a href="#delete-4196"><span class="linenos">4196</span></a> <span class="k">return</span> <span class="n">Delete</span><span class="p">(</span>
+</span><span id="delete-4197"><a href="#delete-4197"><span class="linenos">4197</span></a> <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 class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="delete-4198"><a href="#delete-4198"><span class="linenos">4198</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="delete-4199"><a href="#delete-4199"><span class="linenos">4199</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="delete-4200"><a href="#delete-4200"><span class="linenos">4200</span></a> <span class="k">else</span> <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="delete-4201"><a href="#delete-4201"><span class="linenos">4201</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41086,37 +41322,37 @@ 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-4190"><a href="#condition-4190"><span class="linenos">4190</span></a><span class="k">def</span> <span class="nf">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="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">Condition</span><span class="p">:</span>
-</span><span id="condition-4191"><a href="#condition-4191"><span class="linenos">4191</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-4192"><a href="#condition-4192"><span class="linenos">4192</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-4193"><a href="#condition-4193"><span class="linenos">4193</span></a>
-</span><span id="condition-4194"><a href="#condition-4194"><span class="linenos">4194</span></a><span class="sd"> Example:</span>
-</span><span id="condition-4195"><a href="#condition-4195"><span class="linenos">4195</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-4196"><a href="#condition-4196"><span class="linenos">4196</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-4197"><a href="#condition-4197"><span class="linenos">4197</span></a>
-</span><span id="condition-4198"><a href="#condition-4198"><span class="linenos">4198</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-4199"><a href="#condition-4199"><span class="linenos">4199</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-4200"><a href="#condition-4200"><span class="linenos">4200</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-4201"><a href="#condition-4201"><span class="linenos">4201</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-4202"><a href="#condition-4202"><span class="linenos">4202</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="condition-4203"><a href="#condition-4203"><span class="linenos">4203</span></a>
-</span><span id="condition-4204"><a href="#condition-4204"><span class="linenos">4204</span></a><span class="sd"> Args:</span>
-</span><span id="condition-4205"><a href="#condition-4205"><span class="linenos">4205</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
-</span><span id="condition-4206"><a href="#condition-4206"><span class="linenos">4206</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-4207"><a href="#condition-4207"><span class="linenos">4207</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-4208"><a href="#condition-4208"><span class="linenos">4208</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-4209"><a href="#condition-4209"><span class="linenos">4209</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-4210"><a href="#condition-4210"><span class="linenos">4210</span></a><span class="sd"> that the input expression is a SQL string).</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-4204"><a href="#condition-4204"><span class="linenos">4204</span></a><span class="k">def</span> <span class="nf">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="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">Condition</span><span class="p">:</span>
+</span><span id="condition-4205"><a href="#condition-4205"><span class="linenos">4205</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-4206"><a href="#condition-4206"><span class="linenos">4206</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="condition-4207"><a href="#condition-4207"><span class="linenos">4207</span></a>
+</span><span id="condition-4208"><a href="#condition-4208"><span class="linenos">4208</span></a><span class="sd"> Example:</span>
+</span><span id="condition-4209"><a href="#condition-4209"><span class="linenos">4209</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-4210"><a href="#condition-4210"><span class="linenos">4210</span></a><span class="sd"> &#39;x = 1&#39;</span>
</span><span id="condition-4211"><a href="#condition-4211"><span class="linenos">4211</span></a>
-</span><span id="condition-4212"><a href="#condition-4212"><span class="linenos">4212</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-4213"><a href="#condition-4213"><span class="linenos">4213</span></a><span class="sd"> Condition: the expression</span>
-</span><span id="condition-4214"><a href="#condition-4214"><span class="linenos">4214</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-4215"><a href="#condition-4215"><span class="linenos">4215</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
-</span><span id="condition-4216"><a href="#condition-4216"><span class="linenos">4216</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-4217"><a href="#condition-4217"><span class="linenos">4217</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-4218"><a href="#condition-4218"><span class="linenos">4218</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-4219"><a href="#condition-4219"><span class="linenos">4219</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-4220"><a href="#condition-4220"><span class="linenos">4220</span></a> <span class="p">)</span>
+</span><span id="condition-4212"><a href="#condition-4212"><span class="linenos">4212</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-4213"><a href="#condition-4213"><span class="linenos">4213</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-4214"><a href="#condition-4214"><span class="linenos">4214</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-4215"><a href="#condition-4215"><span class="linenos">4215</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-4216"><a href="#condition-4216"><span class="linenos">4216</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-4217"><a href="#condition-4217"><span class="linenos">4217</span></a>
+</span><span id="condition-4218"><a href="#condition-4218"><span class="linenos">4218</span></a><span class="sd"> Args:</span>
+</span><span id="condition-4219"><a href="#condition-4219"><span class="linenos">4219</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span>
+</span><span id="condition-4220"><a href="#condition-4220"><span class="linenos">4220</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-4221"><a href="#condition-4221"><span class="linenos">4221</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-4222"><a href="#condition-4222"><span class="linenos">4222</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-4223"><a href="#condition-4223"><span class="linenos">4223</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-4224"><a href="#condition-4224"><span class="linenos">4224</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-4225"><a href="#condition-4225"><span class="linenos">4225</span></a>
+</span><span id="condition-4226"><a href="#condition-4226"><span class="linenos">4226</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-4227"><a href="#condition-4227"><span class="linenos">4227</span></a><span class="sd"> Condition: the expression</span>
+</span><span id="condition-4228"><a href="#condition-4228"><span class="linenos">4228</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-4229"><a href="#condition-4229"><span class="linenos">4229</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span>
+</span><span id="condition-4230"><a href="#condition-4230"><span class="linenos">4230</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-4231"><a href="#condition-4231"><span class="linenos">4231</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-4232"><a href="#condition-4232"><span class="linenos">4232</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-4233"><a href="#condition-4233"><span class="linenos">4233</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-4234"><a href="#condition-4234"><span class="linenos">4234</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41173,24 +41409,24 @@ 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_-4223"><a href="#and_-4223"><span class="linenos">4223</span></a><span class="k">def</span> <span class="nf">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="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">And</span><span class="p">:</span>
-</span><span id="and_-4224"><a href="#and_-4224"><span class="linenos">4224</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-4225"><a href="#and_-4225"><span class="linenos">4225</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-4226"><a href="#and_-4226"><span class="linenos">4226</span></a>
-</span><span id="and_-4227"><a href="#and_-4227"><span class="linenos">4227</span></a><span class="sd"> Example:</span>
-</span><span id="and_-4228"><a href="#and_-4228"><span class="linenos">4228</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_-4229"><a href="#and_-4229"><span class="linenos">4229</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-4230"><a href="#and_-4230"><span class="linenos">4230</span></a>
-</span><span id="and_-4231"><a href="#and_-4231"><span class="linenos">4231</span></a><span class="sd"> Args:</span>
-</span><span id="and_-4232"><a href="#and_-4232"><span class="linenos">4232</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="and_-4233"><a href="#and_-4233"><span class="linenos">4233</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-4234"><a href="#and_-4234"><span class="linenos">4234</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="and_-4235"><a href="#and_-4235"><span class="linenos">4235</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-4236"><a href="#and_-4236"><span class="linenos">4236</span></a>
-</span><span id="and_-4237"><a href="#and_-4237"><span class="linenos">4237</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-4238"><a href="#and_-4238"><span class="linenos">4238</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-4239"><a href="#and_-4239"><span class="linenos">4239</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-4240"><a href="#and_-4240"><span class="linenos">4240</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="and_-4237"><a href="#and_-4237"><span class="linenos">4237</span></a><span class="k">def</span> <span class="nf">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="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">And</span><span class="p">:</span>
+</span><span id="and_-4238"><a href="#and_-4238"><span class="linenos">4238</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-4239"><a href="#and_-4239"><span class="linenos">4239</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-4240"><a href="#and_-4240"><span class="linenos">4240</span></a>
+</span><span id="and_-4241"><a href="#and_-4241"><span class="linenos">4241</span></a><span class="sd"> Example:</span>
+</span><span id="and_-4242"><a href="#and_-4242"><span class="linenos">4242</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_-4243"><a href="#and_-4243"><span class="linenos">4243</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-4244"><a href="#and_-4244"><span class="linenos">4244</span></a>
+</span><span id="and_-4245"><a href="#and_-4245"><span class="linenos">4245</span></a><span class="sd"> Args:</span>
+</span><span id="and_-4246"><a href="#and_-4246"><span class="linenos">4246</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="and_-4247"><a href="#and_-4247"><span class="linenos">4247</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-4248"><a href="#and_-4248"><span class="linenos">4248</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="and_-4249"><a href="#and_-4249"><span class="linenos">4249</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-4250"><a href="#and_-4250"><span class="linenos">4250</span></a>
+</span><span id="and_-4251"><a href="#and_-4251"><span class="linenos">4251</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-4252"><a href="#and_-4252"><span class="linenos">4252</span></a><span class="sd"> And: the new condition</span>
+</span><span id="and_-4253"><a href="#and_-4253"><span class="linenos">4253</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-4254"><a href="#and_-4254"><span class="linenos">4254</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -41235,24 +41471,24 @@ 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_-4243"><a href="#or_-4243"><span class="linenos">4243</span></a><span class="k">def</span> <span class="nf">or_</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="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">Or</span><span class="p">:</span>
-</span><span id="or_-4244"><a href="#or_-4244"><span class="linenos">4244</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-4245"><a href="#or_-4245"><span class="linenos">4245</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-4246"><a href="#or_-4246"><span class="linenos">4246</span></a>
-</span><span id="or_-4247"><a href="#or_-4247"><span class="linenos">4247</span></a><span class="sd"> Example:</span>
-</span><span id="or_-4248"><a href="#or_-4248"><span class="linenos">4248</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_-4249"><a href="#or_-4249"><span class="linenos">4249</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-4250"><a href="#or_-4250"><span class="linenos">4250</span></a>
-</span><span id="or_-4251"><a href="#or_-4251"><span class="linenos">4251</span></a><span class="sd"> Args:</span>
-</span><span id="or_-4252"><a href="#or_-4252"><span class="linenos">4252</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
-</span><span id="or_-4253"><a href="#or_-4253"><span class="linenos">4253</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-4254"><a href="#or_-4254"><span class="linenos">4254</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="or_-4255"><a href="#or_-4255"><span class="linenos">4255</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-4256"><a href="#or_-4256"><span class="linenos">4256</span></a>
-</span><span id="or_-4257"><a href="#or_-4257"><span class="linenos">4257</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-4258"><a href="#or_-4258"><span class="linenos">4258</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-4259"><a href="#or_-4259"><span class="linenos">4259</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-4260"><a href="#or_-4260"><span class="linenos">4260</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="or_-4257"><a href="#or_-4257"><span class="linenos">4257</span></a><span class="k">def</span> <span class="nf">or_</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="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">Or</span><span class="p">:</span>
+</span><span id="or_-4258"><a href="#or_-4258"><span class="linenos">4258</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-4259"><a href="#or_-4259"><span class="linenos">4259</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-4260"><a href="#or_-4260"><span class="linenos">4260</span></a>
+</span><span id="or_-4261"><a href="#or_-4261"><span class="linenos">4261</span></a><span class="sd"> Example:</span>
+</span><span id="or_-4262"><a href="#or_-4262"><span class="linenos">4262</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_-4263"><a href="#or_-4263"><span class="linenos">4263</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-4264"><a href="#or_-4264"><span class="linenos">4264</span></a>
+</span><span id="or_-4265"><a href="#or_-4265"><span class="linenos">4265</span></a><span class="sd"> Args:</span>
+</span><span id="or_-4266"><a href="#or_-4266"><span class="linenos">4266</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span>
+</span><span id="or_-4267"><a href="#or_-4267"><span class="linenos">4267</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-4268"><a href="#or_-4268"><span class="linenos">4268</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="or_-4269"><a href="#or_-4269"><span class="linenos">4269</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-4270"><a href="#or_-4270"><span class="linenos">4270</span></a>
+</span><span id="or_-4271"><a href="#or_-4271"><span class="linenos">4271</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-4272"><a href="#or_-4272"><span class="linenos">4272</span></a><span class="sd"> Or: the new condition</span>
+</span><span id="or_-4273"><a href="#or_-4273"><span class="linenos">4273</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-4274"><a href="#or_-4274"><span class="linenos">4274</span></a> <span class="k">return</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="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
@@ -41297,29 +41533,29 @@ 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_-4263"><a href="#not_-4263"><span class="linenos">4263</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">dialect</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">Not</span><span class="p">:</span>
-</span><span id="not_-4264"><a href="#not_-4264"><span class="linenos">4264</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-4265"><a href="#not_-4265"><span class="linenos">4265</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-4266"><a href="#not_-4266"><span class="linenos">4266</span></a>
-</span><span id="not_-4267"><a href="#not_-4267"><span class="linenos">4267</span></a><span class="sd"> Example:</span>
-</span><span id="not_-4268"><a href="#not_-4268"><span class="linenos">4268</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-4269"><a href="#not_-4269"><span class="linenos">4269</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-4270"><a href="#not_-4270"><span class="linenos">4270</span></a>
-</span><span id="not_-4271"><a href="#not_-4271"><span class="linenos">4271</span></a><span class="sd"> Args:</span>
-</span><span id="not_-4272"><a href="#not_-4272"><span class="linenos">4272</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="not_-4273"><a href="#not_-4273"><span class="linenos">4273</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-4274"><a href="#not_-4274"><span class="linenos">4274</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="not_-4275"><a href="#not_-4275"><span class="linenos">4275</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-4276"><a href="#not_-4276"><span class="linenos">4276</span></a>
-</span><span id="not_-4277"><a href="#not_-4277"><span class="linenos">4277</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-4278"><a href="#not_-4278"><span class="linenos">4278</span></a><span class="sd"> Not: the new condition</span>
-</span><span id="not_-4279"><a href="#not_-4279"><span class="linenos">4279</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-4280"><a href="#not_-4280"><span class="linenos">4280</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-4281"><a href="#not_-4281"><span class="linenos">4281</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-4282"><a href="#not_-4282"><span class="linenos">4282</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-4283"><a href="#not_-4283"><span class="linenos">4283</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-4284"><a href="#not_-4284"><span class="linenos">4284</span></a> <span class="p">)</span>
-</span><span id="not_-4285"><a href="#not_-4285"><span class="linenos">4285</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_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="not_-4277"><a href="#not_-4277"><span class="linenos">4277</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">dialect</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">Not</span><span class="p">:</span>
+</span><span id="not_-4278"><a href="#not_-4278"><span class="linenos">4278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-4279"><a href="#not_-4279"><span class="linenos">4279</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-4280"><a href="#not_-4280"><span class="linenos">4280</span></a>
+</span><span id="not_-4281"><a href="#not_-4281"><span class="linenos">4281</span></a><span class="sd"> Example:</span>
+</span><span id="not_-4282"><a href="#not_-4282"><span class="linenos">4282</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-4283"><a href="#not_-4283"><span class="linenos">4283</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-4284"><a href="#not_-4284"><span class="linenos">4284</span></a>
+</span><span id="not_-4285"><a href="#not_-4285"><span class="linenos">4285</span></a><span class="sd"> Args:</span>
+</span><span id="not_-4286"><a href="#not_-4286"><span class="linenos">4286</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="not_-4287"><a href="#not_-4287"><span class="linenos">4287</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-4288"><a href="#not_-4288"><span class="linenos">4288</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="not_-4289"><a href="#not_-4289"><span class="linenos">4289</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-4290"><a href="#not_-4290"><span class="linenos">4290</span></a>
+</span><span id="not_-4291"><a href="#not_-4291"><span class="linenos">4291</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-4292"><a href="#not_-4292"><span class="linenos">4292</span></a><span class="sd"> Not: the new condition</span>
+</span><span id="not_-4293"><a href="#not_-4293"><span class="linenos">4293</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-4294"><a href="#not_-4294"><span class="linenos">4294</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-4295"><a href="#not_-4295"><span class="linenos">4295</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-4296"><a href="#not_-4296"><span class="linenos">4296</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-4297"><a href="#not_-4297"><span class="linenos">4297</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-4298"><a href="#not_-4298"><span class="linenos">4298</span></a> <span class="p">)</span>
+</span><span id="not_-4299"><a href="#not_-4299"><span class="linenos">4299</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_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span>
</span></pre></div>
@@ -41364,8 +41600,8 @@ 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-4288"><a href="#paren-4288"><span class="linenos">4288</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="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="paren-4289"><a href="#paren-4289"><span class="linenos">4289</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="paren-4302"><a href="#paren-4302"><span class="linenos">4302</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="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="paren-4303"><a href="#paren-4303"><span class="linenos">4303</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></pre></div>
@@ -41383,30 +41619,30 @@ 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-4305"><a href="#to_identifier-4305"><span class="linenos">4305</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><span id="to_identifier-4306"><a href="#to_identifier-4306"><span class="linenos">4306</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-4307"><a href="#to_identifier-4307"><span class="linenos">4307</span></a>
-</span><span id="to_identifier-4308"><a href="#to_identifier-4308"><span class="linenos">4308</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-4309"><a href="#to_identifier-4309"><span class="linenos">4309</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-4310"><a href="#to_identifier-4310"><span class="linenos">4310</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
-</span><span id="to_identifier-4311"><a href="#to_identifier-4311"><span class="linenos">4311</span></a>
-</span><span id="to_identifier-4312"><a href="#to_identifier-4312"><span class="linenos">4312</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-4313"><a href="#to_identifier-4313"><span class="linenos">4313</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-4314"><a href="#to_identifier-4314"><span class="linenos">4314</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-4315"><a href="#to_identifier-4315"><span class="linenos">4315</span></a>
-</span><span id="to_identifier-4316"><a href="#to_identifier-4316"><span class="linenos">4316</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-4317"><a href="#to_identifier-4317"><span class="linenos">4317</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="to_identifier-4318"><a href="#to_identifier-4318"><span class="linenos">4318</span></a>
-</span><span id="to_identifier-4319"><a href="#to_identifier-4319"><span class="linenos">4319</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-4320"><a href="#to_identifier-4320"><span class="linenos">4320</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
-</span><span id="to_identifier-4321"><a href="#to_identifier-4321"><span class="linenos">4321</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-4322"><a href="#to_identifier-4322"><span class="linenos">4322</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-4323"><a href="#to_identifier-4323"><span class="linenos">4323</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-4324"><a href="#to_identifier-4324"><span class="linenos">4324</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</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-4325"><a href="#to_identifier-4325"><span class="linenos">4325</span></a> <span class="p">)</span>
-</span><span id="to_identifier-4326"><a href="#to_identifier-4326"><span class="linenos">4326</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-4327"><a href="#to_identifier-4327"><span class="linenos">4327</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-4328"><a href="#to_identifier-4328"><span class="linenos">4328</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-4319"><a href="#to_identifier-4319"><span class="linenos">4319</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><span id="to_identifier-4320"><a href="#to_identifier-4320"><span class="linenos">4320</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="to_identifier-4321"><a href="#to_identifier-4321"><span class="linenos">4321</span></a>
+</span><span id="to_identifier-4322"><a href="#to_identifier-4322"><span class="linenos">4322</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-4323"><a href="#to_identifier-4323"><span class="linenos">4323</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-4324"><a href="#to_identifier-4324"><span class="linenos">4324</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
+</span><span id="to_identifier-4325"><a href="#to_identifier-4325"><span class="linenos">4325</span></a>
+</span><span id="to_identifier-4326"><a href="#to_identifier-4326"><span class="linenos">4326</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-4327"><a href="#to_identifier-4327"><span class="linenos">4327</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-4328"><a href="#to_identifier-4328"><span class="linenos">4328</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-4329"><a href="#to_identifier-4329"><span class="linenos">4329</span></a>
+</span><span id="to_identifier-4330"><a href="#to_identifier-4330"><span class="linenos">4330</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-4331"><a href="#to_identifier-4331"><span class="linenos">4331</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-4332"><a href="#to_identifier-4332"><span class="linenos">4332</span></a>
+</span><span id="to_identifier-4333"><a href="#to_identifier-4333"><span class="linenos">4333</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-4334"><a href="#to_identifier-4334"><span class="linenos">4334</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span>
+</span><span id="to_identifier-4335"><a href="#to_identifier-4335"><span class="linenos">4335</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-4336"><a href="#to_identifier-4336"><span class="linenos">4336</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-4337"><a href="#to_identifier-4337"><span class="linenos">4337</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-4338"><a href="#to_identifier-4338"><span class="linenos">4338</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</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-4339"><a href="#to_identifier-4339"><span class="linenos">4339</span></a> <span class="p">)</span>
+</span><span id="to_identifier-4340"><a href="#to_identifier-4340"><span class="linenos">4340</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-4341"><a href="#to_identifier-4341"><span class="linenos">4341</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-4342"><a href="#to_identifier-4342"><span class="linenos">4342</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -41439,23 +41675,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-4334"><a href="#to_interval-4334"><span class="linenos">4334</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-4335"><a href="#to_interval-4335"><span class="linenos">4335</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-4336"><a href="#to_interval-4336"><span class="linenos">4336</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-4337"><a href="#to_interval-4337"><span class="linenos">4337</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-4338"><a href="#to_interval-4338"><span class="linenos">4338</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-4339"><a href="#to_interval-4339"><span class="linenos">4339</span></a>
-</span><span id="to_interval-4340"><a href="#to_interval-4340"><span class="linenos">4340</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-4341"><a href="#to_interval-4341"><span class="linenos">4341</span></a>
-</span><span id="to_interval-4342"><a href="#to_interval-4342"><span class="linenos">4342</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-4343"><a href="#to_interval-4343"><span class="linenos">4343</span></a>
-</span><span id="to_interval-4344"><a href="#to_interval-4344"><span class="linenos">4344</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-4345"><a href="#to_interval-4345"><span class="linenos">4345</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-4346"><a href="#to_interval-4346"><span class="linenos">4346</span></a>
-</span><span id="to_interval-4347"><a href="#to_interval-4347"><span class="linenos">4347</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-4348"><a href="#to_interval-4348"><span class="linenos">4348</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-4349"><a href="#to_interval-4349"><span class="linenos">4349</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-4350"><a href="#to_interval-4350"><span class="linenos">4350</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-4348"><a href="#to_interval-4348"><span class="linenos">4348</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-4349"><a href="#to_interval-4349"><span class="linenos">4349</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-4350"><a href="#to_interval-4350"><span class="linenos">4350</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-4351"><a href="#to_interval-4351"><span class="linenos">4351</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-4352"><a href="#to_interval-4352"><span class="linenos">4352</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-4353"><a href="#to_interval-4353"><span class="linenos">4353</span></a>
+</span><span id="to_interval-4354"><a href="#to_interval-4354"><span class="linenos">4354</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-4355"><a href="#to_interval-4355"><span class="linenos">4355</span></a>
+</span><span id="to_interval-4356"><a href="#to_interval-4356"><span class="linenos">4356</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-4357"><a href="#to_interval-4357"><span class="linenos">4357</span></a>
+</span><span id="to_interval-4358"><a href="#to_interval-4358"><span class="linenos">4358</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-4359"><a href="#to_interval-4359"><span class="linenos">4359</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-4360"><a href="#to_interval-4360"><span class="linenos">4360</span></a>
+</span><span id="to_interval-4361"><a href="#to_interval-4361"><span class="linenos">4361</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-4362"><a href="#to_interval-4362"><span class="linenos">4362</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-4363"><a href="#to_interval-4363"><span class="linenos">4363</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-4364"><a href="#to_interval-4364"><span class="linenos">4364</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41475,24 +41711,24 @@ 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-4363"><a href="#to_table-4363"><span class="linenos">4363</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="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="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
-</span><span id="to_table-4364"><a href="#to_table-4364"><span class="linenos">4364</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-4365"><a href="#to_table-4365"><span class="linenos">4365</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-4366"><a href="#to_table-4366"><span class="linenos">4366</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-4367"><a href="#to_table-4367"><span class="linenos">4367</span></a>
-</span><span id="to_table-4368"><a href="#to_table-4368"><span class="linenos">4368</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-4369"><a href="#to_table-4369"><span class="linenos">4369</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-4370"><a href="#to_table-4370"><span class="linenos">4370</span></a>
-</span><span id="to_table-4371"><a href="#to_table-4371"><span class="linenos">4371</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-4372"><a href="#to_table-4372"><span class="linenos">4372</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-4373"><a href="#to_table-4373"><span class="linenos">4373</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-4374"><a href="#to_table-4374"><span class="linenos">4374</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-4375"><a href="#to_table-4375"><span class="linenos">4375</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_table-4376"><a href="#to_table-4376"><span class="linenos">4376</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-4377"><a href="#to_table-4377"><span class="linenos">4377</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-4378"><a href="#to_table-4378"><span class="linenos">4378</span></a>
-</span><span id="to_table-4379"><a href="#to_table-4379"><span class="linenos">4379</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
-</span><span id="to_table-4380"><a href="#to_table-4380"><span class="linenos">4380</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-4377"><a href="#to_table-4377"><span class="linenos">4377</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="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="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
+</span><span id="to_table-4378"><a href="#to_table-4378"><span class="linenos">4378</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-4379"><a href="#to_table-4379"><span class="linenos">4379</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-4380"><a href="#to_table-4380"><span class="linenos">4380</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-4381"><a href="#to_table-4381"><span class="linenos">4381</span></a>
+</span><span id="to_table-4382"><a href="#to_table-4382"><span class="linenos">4382</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-4383"><a href="#to_table-4383"><span class="linenos">4383</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-4384"><a href="#to_table-4384"><span class="linenos">4384</span></a>
+</span><span id="to_table-4385"><a href="#to_table-4385"><span class="linenos">4385</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-4386"><a href="#to_table-4386"><span class="linenos">4386</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-4387"><a href="#to_table-4387"><span class="linenos">4387</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-4388"><a href="#to_table-4388"><span class="linenos">4388</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-4389"><a href="#to_table-4389"><span class="linenos">4389</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_table-4390"><a href="#to_table-4390"><span class="linenos">4390</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-4391"><a href="#to_table-4391"><span class="linenos">4391</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-4392"><a href="#to_table-4392"><span class="linenos">4392</span></a>
+</span><span id="to_table-4393"><a href="#to_table-4393"><span class="linenos">4393</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
+</span><span id="to_table-4394"><a href="#to_table-4394"><span class="linenos">4394</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span></pre></div>
@@ -41525,23 +41761,23 @@ 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-4383"><a href="#to_column-4383"><span class="linenos">4383</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-4384"><a href="#to_column-4384"><span class="linenos">4384</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-4385"><a href="#to_column-4385"><span class="linenos">4385</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
-</span><span id="to_column-4386"><a href="#to_column-4386"><span class="linenos">4386</span></a>
-</span><span id="to_column-4387"><a href="#to_column-4387"><span class="linenos">4387</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-4388"><a href="#to_column-4388"><span class="linenos">4388</span></a>
-</span><span id="to_column-4389"><a href="#to_column-4389"><span class="linenos">4389</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-4390"><a href="#to_column-4390"><span class="linenos">4390</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
-</span><span id="to_column-4391"><a href="#to_column-4391"><span class="linenos">4391</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-4392"><a href="#to_column-4392"><span class="linenos">4392</span></a><span class="sd"> Table: A column expression</span>
-</span><span id="to_column-4393"><a href="#to_column-4393"><span class="linenos">4393</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-4394"><a href="#to_column-4394"><span class="linenos">4394</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-4395"><a href="#to_column-4395"><span class="linenos">4395</span></a> <span class="k">return</span> <span class="n">sql_path</span>
-</span><span id="to_column-4396"><a href="#to_column-4396"><span class="linenos">4396</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-4397"><a href="#to_column-4397"><span class="linenos">4397</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-4398"><a href="#to_column-4398"><span class="linenos">4398</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
-</span><span id="to_column-4399"><a href="#to_column-4399"><span class="linenos">4399</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-4397"><a href="#to_column-4397"><span class="linenos">4397</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-4398"><a href="#to_column-4398"><span class="linenos">4398</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-4399"><a href="#to_column-4399"><span class="linenos">4399</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
+</span><span id="to_column-4400"><a href="#to_column-4400"><span class="linenos">4400</span></a>
+</span><span id="to_column-4401"><a href="#to_column-4401"><span class="linenos">4401</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-4402"><a href="#to_column-4402"><span class="linenos">4402</span></a>
+</span><span id="to_column-4403"><a href="#to_column-4403"><span class="linenos">4403</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-4404"><a href="#to_column-4404"><span class="linenos">4404</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
+</span><span id="to_column-4405"><a href="#to_column-4405"><span class="linenos">4405</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-4406"><a href="#to_column-4406"><span class="linenos">4406</span></a><span class="sd"> Table: A column expression</span>
+</span><span id="to_column-4407"><a href="#to_column-4407"><span class="linenos">4407</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-4408"><a href="#to_column-4408"><span class="linenos">4408</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-4409"><a href="#to_column-4409"><span class="linenos">4409</span></a> <span class="k">return</span> <span class="n">sql_path</span>
+</span><span id="to_column-4410"><a href="#to_column-4410"><span class="linenos">4410</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-4411"><a href="#to_column-4411"><span class="linenos">4411</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-4412"><a href="#to_column-4412"><span class="linenos">4412</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</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">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">&quot;.&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
+</span><span id="to_column-4413"><a href="#to_column-4413"><span class="linenos">4413</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span></pre></div>
@@ -41575,60 +41811,60 @@ 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_-4402"><a href="#alias_-4402"><span class="linenos">4402</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-4403"><a href="#alias_-4403"><span class="linenos">4403</span></a> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="alias_-4404"><a href="#alias_-4404"><span class="linenos">4404</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_-4405"><a href="#alias_-4405"><span class="linenos">4405</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_-4406"><a href="#alias_-4406"><span class="linenos">4406</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_-4407"><a href="#alias_-4407"><span class="linenos">4407</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_-4408"><a href="#alias_-4408"><span class="linenos">4408</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-4409"><a href="#alias_-4409"><span class="linenos">4409</span></a><span class="p">):</span>
-</span><span id="alias_-4410"><a href="#alias_-4410"><span class="linenos">4410</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-4411"><a href="#alias_-4411"><span class="linenos">4411</span></a>
-</span><span id="alias_-4412"><a href="#alias_-4412"><span class="linenos">4412</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-4413"><a href="#alias_-4413"><span class="linenos">4413</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-4414"><a href="#alias_-4414"><span class="linenos">4414</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-4415"><a href="#alias_-4415"><span class="linenos">4415</span></a>
-</span><span id="alias_-4416"><a href="#alias_-4416"><span class="linenos">4416</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_-4417"><a href="#alias_-4417"><span class="linenos">4417</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-4418"><a href="#alias_-4418"><span class="linenos">4418</span></a>
-</span><span id="alias_-4419"><a href="#alias_-4419"><span class="linenos">4419</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-4420"><a href="#alias_-4420"><span class="linenos">4420</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-4421"><a href="#alias_-4421"><span class="linenos">4421</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-4422"><a href="#alias_-4422"><span class="linenos">4422</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-4423"><a href="#alias_-4423"><span class="linenos">4423</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-4424"><a href="#alias_-4424"><span class="linenos">4424</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_-4425"><a href="#alias_-4425"><span class="linenos">4425</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
-</span><span id="alias_-4426"><a href="#alias_-4426"><span class="linenos">4426</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-4427"><a href="#alias_-4427"><span class="linenos">4427</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-4428"><a href="#alias_-4428"><span class="linenos">4428</span></a>
-</span><span id="alias_-4429"><a href="#alias_-4429"><span class="linenos">4429</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-4430"><a href="#alias_-4430"><span class="linenos">4430</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-4431"><a href="#alias_-4431"><span class="linenos">4431</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-4432"><a href="#alias_-4432"><span class="linenos">4432</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="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="alias_-4433"><a href="#alias_-4433"><span class="linenos">4433</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_-4434"><a href="#alias_-4434"><span class="linenos">4434</span></a>
-</span><span id="alias_-4435"><a href="#alias_-4435"><span class="linenos">4435</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-4436"><a href="#alias_-4436"><span class="linenos">4436</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_-4437"><a href="#alias_-4437"><span class="linenos">4437</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_-4438"><a href="#alias_-4438"><span class="linenos">4438</span></a>
-</span><span id="alias_-4439"><a href="#alias_-4439"><span class="linenos">4439</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_-4440"><a href="#alias_-4440"><span class="linenos">4440</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_-4441"><a href="#alias_-4441"><span class="linenos">4441</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-4416"><a href="#alias_-4416"><span class="linenos">4416</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-4417"><a href="#alias_-4417"><span class="linenos">4417</span></a> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="alias_-4418"><a href="#alias_-4418"><span class="linenos">4418</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_-4419"><a href="#alias_-4419"><span class="linenos">4419</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_-4420"><a href="#alias_-4420"><span class="linenos">4420</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_-4421"><a href="#alias_-4421"><span class="linenos">4421</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_-4422"><a href="#alias_-4422"><span class="linenos">4422</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-4423"><a href="#alias_-4423"><span class="linenos">4423</span></a><span class="p">):</span>
+</span><span id="alias_-4424"><a href="#alias_-4424"><span class="linenos">4424</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-4425"><a href="#alias_-4425"><span class="linenos">4425</span></a>
+</span><span id="alias_-4426"><a href="#alias_-4426"><span class="linenos">4426</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-4427"><a href="#alias_-4427"><span class="linenos">4427</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-4428"><a href="#alias_-4428"><span class="linenos">4428</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-4429"><a href="#alias_-4429"><span class="linenos">4429</span></a>
+</span><span id="alias_-4430"><a href="#alias_-4430"><span class="linenos">4430</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_-4431"><a href="#alias_-4431"><span class="linenos">4431</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-4432"><a href="#alias_-4432"><span class="linenos">4432</span></a>
+</span><span id="alias_-4433"><a href="#alias_-4433"><span class="linenos">4433</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-4434"><a href="#alias_-4434"><span class="linenos">4434</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-4435"><a href="#alias_-4435"><span class="linenos">4435</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-4436"><a href="#alias_-4436"><span class="linenos">4436</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-4437"><a href="#alias_-4437"><span class="linenos">4437</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-4438"><a href="#alias_-4438"><span class="linenos">4438</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_-4439"><a href="#alias_-4439"><span class="linenos">4439</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
+</span><span id="alias_-4440"><a href="#alias_-4440"><span class="linenos">4440</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-4441"><a href="#alias_-4441"><span class="linenos">4441</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="alias_-4442"><a href="#alias_-4442"><span class="linenos">4442</span></a>
-</span><span id="alias_-4443"><a href="#alias_-4443"><span class="linenos">4443</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-4444"><a href="#alias_-4444"><span class="linenos">4444</span></a>
-</span><span id="alias_-4445"><a href="#alias_-4445"><span class="linenos">4445</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_-4446"><a href="#alias_-4446"><span class="linenos">4446</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_-4447"><a href="#alias_-4447"><span class="linenos">4447</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-4448"><a href="#alias_-4448"><span class="linenos">4448</span></a> <span class="c1">#</span>
-</span><span id="alias_-4449"><a href="#alias_-4449"><span class="linenos">4449</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="alias_-4450"><a href="#alias_-4450"><span class="linenos">4450</span></a>
-</span><span id="alias_-4451"><a href="#alias_-4451"><span class="linenos">4451</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_-4452"><a href="#alias_-4452"><span class="linenos">4452</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="alias_-4453"><a href="#alias_-4453"><span class="linenos">4453</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_-4454"><a href="#alias_-4454"><span class="linenos">4454</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-4455"><a href="#alias_-4455"><span class="linenos">4455</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_-4443"><a href="#alias_-4443"><span class="linenos">4443</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-4444"><a href="#alias_-4444"><span class="linenos">4444</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-4445"><a href="#alias_-4445"><span class="linenos">4445</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-4446"><a href="#alias_-4446"><span class="linenos">4446</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="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="alias_-4447"><a href="#alias_-4447"><span class="linenos">4447</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_-4448"><a href="#alias_-4448"><span class="linenos">4448</span></a>
+</span><span id="alias_-4449"><a href="#alias_-4449"><span class="linenos">4449</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-4450"><a href="#alias_-4450"><span class="linenos">4450</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_-4451"><a href="#alias_-4451"><span class="linenos">4451</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_-4452"><a href="#alias_-4452"><span class="linenos">4452</span></a>
+</span><span id="alias_-4453"><a href="#alias_-4453"><span class="linenos">4453</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_-4454"><a href="#alias_-4454"><span class="linenos">4454</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_-4455"><a href="#alias_-4455"><span class="linenos">4455</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_-4456"><a href="#alias_-4456"><span class="linenos">4456</span></a>
+</span><span id="alias_-4457"><a href="#alias_-4457"><span class="linenos">4457</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-4458"><a href="#alias_-4458"><span class="linenos">4458</span></a>
+</span><span id="alias_-4459"><a href="#alias_-4459"><span class="linenos">4459</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_-4460"><a href="#alias_-4460"><span class="linenos">4460</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_-4461"><a href="#alias_-4461"><span class="linenos">4461</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-4462"><a href="#alias_-4462"><span class="linenos">4462</span></a> <span class="c1">#</span>
+</span><span id="alias_-4463"><a href="#alias_-4463"><span class="linenos">4463</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-4464"><a href="#alias_-4464"><span class="linenos">4464</span></a>
+</span><span id="alias_-4465"><a href="#alias_-4465"><span class="linenos">4465</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_-4466"><a href="#alias_-4466"><span class="linenos">4466</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="alias_-4467"><a href="#alias_-4467"><span class="linenos">4467</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_-4468"><a href="#alias_-4468"><span class="linenos">4468</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-4469"><a href="#alias_-4469"><span class="linenos">4469</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>
@@ -41683,27 +41919,27 @@ special characters it is quoted.</li>
</div>
<a class="headerlink" href="#subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-4458"><a href="#subquery-4458"><span class="linenos">4458</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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><span id="subquery-4459"><a href="#subquery-4459"><span class="linenos">4459</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-4460"><a href="#subquery-4460"><span class="linenos">4460</span></a><span class="sd"> Build a subquery expression.</span>
-</span><span id="subquery-4461"><a href="#subquery-4461"><span class="linenos">4461</span></a>
-</span><span id="subquery-4462"><a href="#subquery-4462"><span class="linenos">4462</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-4463"><a href="#subquery-4463"><span class="linenos">4463</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-4464"><a href="#subquery-4464"><span class="linenos">4464</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-4465"><a href="#subquery-4465"><span class="linenos">4465</span></a>
-</span><span id="subquery-4466"><a href="#subquery-4466"><span class="linenos">4466</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-4467"><a href="#subquery-4467"><span class="linenos">4467</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
-</span><span id="subquery-4468"><a href="#subquery-4468"><span class="linenos">4468</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-4469"><a href="#subquery-4469"><span class="linenos">4469</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
-</span><span id="subquery-4470"><a href="#subquery-4470"><span class="linenos">4470</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
-</span><span id="subquery-4471"><a href="#subquery-4471"><span class="linenos">4471</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-4472"><a href="#subquery-4472"><span class="linenos">4472</span></a>
-</span><span id="subquery-4473"><a href="#subquery-4473"><span class="linenos">4473</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-4474"><a href="#subquery-4474"><span class="linenos">4474</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
-</span><span id="subquery-4475"><a href="#subquery-4475"><span class="linenos">4475</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-4476"><a href="#subquery-4476"><span class="linenos">4476</span></a>
-</span><span id="subquery-4477"><a href="#subquery-4477"><span class="linenos">4477</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-4478"><a href="#subquery-4478"><span class="linenos">4478</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-4472"><a href="#subquery-4472"><span class="linenos">4472</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</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><span id="subquery-4473"><a href="#subquery-4473"><span class="linenos">4473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-4474"><a href="#subquery-4474"><span class="linenos">4474</span></a><span class="sd"> Build a subquery expression.</span>
+</span><span id="subquery-4475"><a href="#subquery-4475"><span class="linenos">4475</span></a>
+</span><span id="subquery-4476"><a href="#subquery-4476"><span class="linenos">4476</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-4477"><a href="#subquery-4477"><span class="linenos">4477</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-4478"><a href="#subquery-4478"><span class="linenos">4478</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-4479"><a href="#subquery-4479"><span class="linenos">4479</span></a>
+</span><span id="subquery-4480"><a href="#subquery-4480"><span class="linenos">4480</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-4481"><a href="#subquery-4481"><span class="linenos">4481</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span>
+</span><span id="subquery-4482"><a href="#subquery-4482"><span class="linenos">4482</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-4483"><a href="#subquery-4483"><span class="linenos">4483</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span>
+</span><span id="subquery-4484"><a href="#subquery-4484"><span class="linenos">4484</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span>
+</span><span id="subquery-4485"><a href="#subquery-4485"><span class="linenos">4485</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-4486"><a href="#subquery-4486"><span class="linenos">4486</span></a>
+</span><span id="subquery-4487"><a href="#subquery-4487"><span class="linenos">4487</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-4488"><a href="#subquery-4488"><span class="linenos">4488</span></a><span class="sd"> Select: a new select with the subquery expression included</span>
+</span><span id="subquery-4489"><a href="#subquery-4489"><span class="linenos">4489</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-4490"><a href="#subquery-4490"><span class="linenos">4490</span></a>
+</span><span id="subquery-4491"><a href="#subquery-4491"><span class="linenos">4491</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-4492"><a href="#subquery-4492"><span class="linenos">4492</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>
@@ -41749,28 +41985,28 @@ 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-4481"><a href="#column-4481"><span class="linenos">4481</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-4482"><a href="#column-4482"><span class="linenos">4482</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-4483"><a href="#column-4483"><span class="linenos">4483</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-4484"><a href="#column-4484"><span class="linenos">4484</span></a> <span class="n">schema</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-4485"><a href="#column-4485"><span class="linenos">4485</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-4486"><a href="#column-4486"><span class="linenos">4486</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="column-4487"><a href="#column-4487"><span class="linenos">4487</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-4488"><a href="#column-4488"><span class="linenos">4488</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-4489"><a href="#column-4489"><span class="linenos">4489</span></a>
-</span><span id="column-4490"><a href="#column-4490"><span class="linenos">4490</span></a><span class="sd"> Args:</span>
-</span><span id="column-4491"><a href="#column-4491"><span class="linenos">4491</span></a><span class="sd"> col: column name</span>
-</span><span id="column-4492"><a href="#column-4492"><span class="linenos">4492</span></a><span class="sd"> table: table name</span>
-</span><span id="column-4493"><a href="#column-4493"><span class="linenos">4493</span></a><span class="sd"> schema: schema name</span>
-</span><span id="column-4494"><a href="#column-4494"><span class="linenos">4494</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
-</span><span id="column-4495"><a href="#column-4495"><span class="linenos">4495</span></a><span class="sd"> Returns:</span>
-</span><span id="column-4496"><a href="#column-4496"><span class="linenos">4496</span></a><span class="sd"> Column: column instance</span>
-</span><span id="column-4497"><a href="#column-4497"><span class="linenos">4497</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-4498"><a href="#column-4498"><span class="linenos">4498</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-4499"><a href="#column-4499"><span class="linenos">4499</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-4500"><a href="#column-4500"><span class="linenos">4500</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-4501"><a href="#column-4501"><span class="linenos">4501</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</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-4502"><a href="#column-4502"><span class="linenos">4502</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-4495"><a href="#column-4495"><span class="linenos">4495</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-4496"><a href="#column-4496"><span class="linenos">4496</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-4497"><a href="#column-4497"><span class="linenos">4497</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-4498"><a href="#column-4498"><span class="linenos">4498</span></a> <span class="n">schema</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-4499"><a href="#column-4499"><span class="linenos">4499</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-4500"><a href="#column-4500"><span class="linenos">4500</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="column-4501"><a href="#column-4501"><span class="linenos">4501</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-4502"><a href="#column-4502"><span class="linenos">4502</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-4503"><a href="#column-4503"><span class="linenos">4503</span></a>
+</span><span id="column-4504"><a href="#column-4504"><span class="linenos">4504</span></a><span class="sd"> Args:</span>
+</span><span id="column-4505"><a href="#column-4505"><span class="linenos">4505</span></a><span class="sd"> col: column name</span>
+</span><span id="column-4506"><a href="#column-4506"><span class="linenos">4506</span></a><span class="sd"> table: table name</span>
+</span><span id="column-4507"><a href="#column-4507"><span class="linenos">4507</span></a><span class="sd"> schema: schema name</span>
+</span><span id="column-4508"><a href="#column-4508"><span class="linenos">4508</span></a><span class="sd"> quoted: whether or not to force quote each part</span>
+</span><span id="column-4509"><a href="#column-4509"><span class="linenos">4509</span></a><span class="sd"> Returns:</span>
+</span><span id="column-4510"><a href="#column-4510"><span class="linenos">4510</span></a><span class="sd"> Column: column instance</span>
+</span><span id="column-4511"><a href="#column-4511"><span class="linenos">4511</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-4512"><a href="#column-4512"><span class="linenos">4512</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-4513"><a href="#column-4513"><span class="linenos">4513</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-4514"><a href="#column-4514"><span class="linenos">4514</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-4515"><a href="#column-4515"><span class="linenos">4515</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</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-4516"><a href="#column-4516"><span class="linenos">4516</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41805,22 +42041,22 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#cast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4505"><a href="#cast-4505"><span class="linenos">4505</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4506"><a href="#cast-4506"><span class="linenos">4506</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-4507"><a href="#cast-4507"><span class="linenos">4507</span></a>
-</span><span id="cast-4508"><a href="#cast-4508"><span class="linenos">4508</span></a><span class="sd"> Example:</span>
-</span><span id="cast-4509"><a href="#cast-4509"><span class="linenos">4509</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-4510"><a href="#cast-4510"><span class="linenos">4510</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-4511"><a href="#cast-4511"><span class="linenos">4511</span></a>
-</span><span id="cast-4512"><a href="#cast-4512"><span class="linenos">4512</span></a><span class="sd"> Args:</span>
-</span><span id="cast-4513"><a href="#cast-4513"><span class="linenos">4513</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-4514"><a href="#cast-4514"><span class="linenos">4514</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-4515"><a href="#cast-4515"><span class="linenos">4515</span></a>
-</span><span id="cast-4516"><a href="#cast-4516"><span class="linenos">4516</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-4517"><a href="#cast-4517"><span class="linenos">4517</span></a><span class="sd"> A cast node.</span>
-</span><span id="cast-4518"><a href="#cast-4518"><span class="linenos">4518</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-4519"><a href="#cast-4519"><span class="linenos">4519</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-4520"><a href="#cast-4520"><span class="linenos">4520</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4519"><a href="#cast-4519"><span class="linenos">4519</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</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-4520"><a href="#cast-4520"><span class="linenos">4520</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-4521"><a href="#cast-4521"><span class="linenos">4521</span></a>
+</span><span id="cast-4522"><a href="#cast-4522"><span class="linenos">4522</span></a><span class="sd"> Example:</span>
+</span><span id="cast-4523"><a href="#cast-4523"><span class="linenos">4523</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-4524"><a href="#cast-4524"><span class="linenos">4524</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-4525"><a href="#cast-4525"><span class="linenos">4525</span></a>
+</span><span id="cast-4526"><a href="#cast-4526"><span class="linenos">4526</span></a><span class="sd"> Args:</span>
+</span><span id="cast-4527"><a href="#cast-4527"><span class="linenos">4527</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-4528"><a href="#cast-4528"><span class="linenos">4528</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-4529"><a href="#cast-4529"><span class="linenos">4529</span></a>
+</span><span id="cast-4530"><a href="#cast-4530"><span class="linenos">4530</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-4531"><a href="#cast-4531"><span class="linenos">4531</span></a><span class="sd"> A cast node.</span>
+</span><span id="cast-4532"><a href="#cast-4532"><span class="linenos">4532</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-4533"><a href="#cast-4533"><span class="linenos">4533</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-4534"><a href="#cast-4534"><span class="linenos">4534</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -41863,23 +42099,23 @@ 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_-4523"><a href="#table_-4523"><span class="linenos">4523</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</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">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-4524"><a href="#table_-4524"><span class="linenos">4524</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-4525"><a href="#table_-4525"><span class="linenos">4525</span></a>
-</span><span id="table_-4526"><a href="#table_-4526"><span class="linenos">4526</span></a><span class="sd"> Args:</span>
-</span><span id="table_-4527"><a href="#table_-4527"><span class="linenos">4527</span></a><span class="sd"> table (str | Expression): column name</span>
-</span><span id="table_-4528"><a href="#table_-4528"><span class="linenos">4528</span></a><span class="sd"> db (str | Expression): db name</span>
-</span><span id="table_-4529"><a href="#table_-4529"><span class="linenos">4529</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
-</span><span id="table_-4530"><a href="#table_-4530"><span class="linenos">4530</span></a>
-</span><span id="table_-4531"><a href="#table_-4531"><span class="linenos">4531</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-4532"><a href="#table_-4532"><span class="linenos">4532</span></a><span class="sd"> Table: table instance</span>
-</span><span id="table_-4533"><a href="#table_-4533"><span class="linenos">4533</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-4534"><a href="#table_-4534"><span class="linenos">4534</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-4535"><a href="#table_-4535"><span class="linenos">4535</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-4536"><a href="#table_-4536"><span class="linenos">4536</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-4537"><a href="#table_-4537"><span class="linenos">4537</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
-</span><span id="table_-4538"><a href="#table_-4538"><span class="linenos">4538</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_-4539"><a href="#table_-4539"><span class="linenos">4539</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-4537"><a href="#table_-4537"><span class="linenos">4537</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</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">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-4538"><a href="#table_-4538"><span class="linenos">4538</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-4539"><a href="#table_-4539"><span class="linenos">4539</span></a>
+</span><span id="table_-4540"><a href="#table_-4540"><span class="linenos">4540</span></a><span class="sd"> Args:</span>
+</span><span id="table_-4541"><a href="#table_-4541"><span class="linenos">4541</span></a><span class="sd"> table (str | Expression): column name</span>
+</span><span id="table_-4542"><a href="#table_-4542"><span class="linenos">4542</span></a><span class="sd"> db (str | Expression): db name</span>
+</span><span id="table_-4543"><a href="#table_-4543"><span class="linenos">4543</span></a><span class="sd"> catalog (str | Expression): catalog name</span>
+</span><span id="table_-4544"><a href="#table_-4544"><span class="linenos">4544</span></a>
+</span><span id="table_-4545"><a href="#table_-4545"><span class="linenos">4545</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-4546"><a href="#table_-4546"><span class="linenos">4546</span></a><span class="sd"> Table: table instance</span>
+</span><span id="table_-4547"><a href="#table_-4547"><span class="linenos">4547</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-4548"><a href="#table_-4548"><span class="linenos">4548</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-4549"><a href="#table_-4549"><span class="linenos">4549</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-4550"><a href="#table_-4550"><span class="linenos">4550</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-4551"><a href="#table_-4551"><span class="linenos">4551</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
+</span><span id="table_-4552"><a href="#table_-4552"><span class="linenos">4552</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_-4553"><a href="#table_-4553"><span class="linenos">4553</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41913,46 +42149,46 @@ 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-4542"><a href="#values-4542"><span class="linenos">4542</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-4543"><a href="#values-4543"><span class="linenos">4543</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-4544"><a href="#values-4544"><span class="linenos">4544</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-4545"><a href="#values-4545"><span class="linenos">4545</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-4546"><a href="#values-4546"><span class="linenos">4546</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-4547"><a href="#values-4547"><span class="linenos">4547</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-4548"><a href="#values-4548"><span class="linenos">4548</span></a>
-</span><span id="values-4549"><a href="#values-4549"><span class="linenos">4549</span></a><span class="sd"> Example:</span>
-</span><span id="values-4550"><a href="#values-4550"><span class="linenos">4550</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-4551"><a href="#values-4551"><span class="linenos">4551</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-4552"><a href="#values-4552"><span class="linenos">4552</span></a>
-</span><span id="values-4553"><a href="#values-4553"><span class="linenos">4553</span></a><span class="sd"> Args:</span>
-</span><span id="values-4554"><a href="#values-4554"><span class="linenos">4554</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-4555"><a href="#values-4555"><span class="linenos">4555</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-4556"><a href="#values-4556"><span class="linenos">4556</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-4557"><a href="#values-4557"><span class="linenos">4557</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="values-4558"><a href="#values-4558"><span class="linenos">4558</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
-</span><span id="values-4559"><a href="#values-4559"><span class="linenos">4559</span></a><span class="sd"> in order to help with type inference.</span>
-</span><span id="values-4560"><a href="#values-4560"><span class="linenos">4560</span></a>
-</span><span id="values-4561"><a href="#values-4561"><span class="linenos">4561</span></a><span class="sd"> Returns:</span>
-</span><span id="values-4562"><a href="#values-4562"><span class="linenos">4562</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-4563"><a href="#values-4563"><span class="linenos">4563</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-4564"><a href="#values-4564"><span class="linenos">4564</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-4565"><a href="#values-4565"><span class="linenos">4565</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-4566"><a href="#values-4566"><span class="linenos">4566</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="values-4567"><a href="#values-4567"><span class="linenos">4567</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-4568"><a href="#values-4568"><span class="linenos">4568</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-4569"><a href="#values-4569"><span class="linenos">4569</span></a> <span class="k">else</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-4570"><a href="#values-4570"><span class="linenos">4570</span></a> <span class="p">)</span>
-</span><span id="values-4571"><a href="#values-4571"><span class="linenos">4571</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-4572"><a href="#values-4572"><span class="linenos">4572</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
-</span><span id="values-4573"><a href="#values-4573"><span class="linenos">4573</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
-</span><span id="values-4574"><a href="#values-4574"><span class="linenos">4574</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="values-4575"><a href="#values-4575"><span class="linenos">4575</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="values-4576"><a href="#values-4576"><span class="linenos">4576</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
-</span><span id="values-4577"><a href="#values-4577"><span class="linenos">4577</span></a> <span class="p">)</span>
-</span><span id="values-4578"><a href="#values-4578"><span class="linenos">4578</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-4579"><a href="#values-4579"><span class="linenos">4579</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="values-4580"><a href="#values-4580"><span class="linenos">4580</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
-</span><span id="values-4581"><a href="#values-4581"><span class="linenos">4581</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-4556"><a href="#values-4556"><span class="linenos">4556</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-4557"><a href="#values-4557"><span class="linenos">4557</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-4558"><a href="#values-4558"><span class="linenos">4558</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-4559"><a href="#values-4559"><span class="linenos">4559</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-4560"><a href="#values-4560"><span class="linenos">4560</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-4561"><a href="#values-4561"><span class="linenos">4561</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="values-4562"><a href="#values-4562"><span class="linenos">4562</span></a>
+</span><span id="values-4563"><a href="#values-4563"><span class="linenos">4563</span></a><span class="sd"> Example:</span>
+</span><span id="values-4564"><a href="#values-4564"><span class="linenos">4564</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-4565"><a href="#values-4565"><span class="linenos">4565</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="values-4566"><a href="#values-4566"><span class="linenos">4566</span></a>
+</span><span id="values-4567"><a href="#values-4567"><span class="linenos">4567</span></a><span class="sd"> Args:</span>
+</span><span id="values-4568"><a href="#values-4568"><span class="linenos">4568</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-4569"><a href="#values-4569"><span class="linenos">4569</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-4570"><a href="#values-4570"><span class="linenos">4570</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-4571"><a href="#values-4571"><span class="linenos">4571</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-4572"><a href="#values-4572"><span class="linenos">4572</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span>
+</span><span id="values-4573"><a href="#values-4573"><span class="linenos">4573</span></a><span class="sd"> in order to help with type inference.</span>
+</span><span id="values-4574"><a href="#values-4574"><span class="linenos">4574</span></a>
+</span><span id="values-4575"><a href="#values-4575"><span class="linenos">4575</span></a><span class="sd"> Returns:</span>
+</span><span id="values-4576"><a href="#values-4576"><span class="linenos">4576</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-4577"><a href="#values-4577"><span class="linenos">4577</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-4578"><a href="#values-4578"><span class="linenos">4578</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-4579"><a href="#values-4579"><span class="linenos">4579</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-4580"><a href="#values-4580"><span class="linenos">4580</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="values-4581"><a href="#values-4581"><span class="linenos">4581</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-4582"><a href="#values-4582"><span class="linenos">4582</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-4583"><a href="#values-4583"><span class="linenos">4583</span></a> <span class="k">else</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-4584"><a href="#values-4584"><span class="linenos">4584</span></a> <span class="p">)</span>
+</span><span id="values-4585"><a href="#values-4585"><span class="linenos">4585</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-4586"><a href="#values-4586"><span class="linenos">4586</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+</span><span id="values-4587"><a href="#values-4587"><span class="linenos">4587</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
+</span><span id="values-4588"><a href="#values-4588"><span class="linenos">4588</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="values-4589"><a href="#values-4589"><span class="linenos">4589</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="values-4590"><a href="#values-4590"><span class="linenos">4590</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span>
+</span><span id="values-4591"><a href="#values-4591"><span class="linenos">4591</span></a> <span class="p">)</span>
+</span><span id="values-4592"><a href="#values-4592"><span class="linenos">4592</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-4593"><a href="#values-4593"><span class="linenos">4593</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="values-4594"><a href="#values-4594"><span class="linenos">4594</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span>
+</span><span id="values-4595"><a href="#values-4595"><span class="linenos">4595</span></a> <span class="p">)</span>
</span></pre></div>
@@ -41999,28 +42235,28 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#var"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="var-4584"><a href="#var-4584"><span class="linenos">4584</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
-</span><span id="var-4585"><a href="#var-4585"><span class="linenos">4585</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-4586"><a href="#var-4586"><span class="linenos">4586</span></a>
-</span><span id="var-4587"><a href="#var-4587"><span class="linenos">4587</span></a><span class="sd"> Example:</span>
-</span><span id="var-4588"><a href="#var-4588"><span class="linenos">4588</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-4589"><a href="#var-4589"><span class="linenos">4589</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-4590"><a href="#var-4590"><span class="linenos">4590</span></a>
-</span><span id="var-4591"><a href="#var-4591"><span class="linenos">4591</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-4592"><a href="#var-4592"><span class="linenos">4592</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
-</span><span id="var-4593"><a href="#var-4593"><span class="linenos">4593</span></a>
-</span><span id="var-4594"><a href="#var-4594"><span class="linenos">4594</span></a><span class="sd"> Args:</span>
-</span><span id="var-4595"><a href="#var-4595"><span class="linenos">4595</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-4596"><a href="#var-4596"><span class="linenos">4596</span></a>
-</span><span id="var-4597"><a href="#var-4597"><span class="linenos">4597</span></a><span class="sd"> Returns:</span>
-</span><span id="var-4598"><a href="#var-4598"><span class="linenos">4598</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-4599"><a href="#var-4599"><span class="linenos">4599</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-4600"><a href="#var-4600"><span class="linenos">4600</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-4601"><a href="#var-4601"><span class="linenos">4601</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 empty name into var.&quot;</span><span class="p">)</span>
-</span><span id="var-4602"><a href="#var-4602"><span class="linenos">4602</span></a>
-</span><span id="var-4603"><a href="#var-4603"><span class="linenos">4603</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-4604"><a href="#var-4604"><span class="linenos">4604</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-4605"><a href="#var-4605"><span class="linenos">4605</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="var-4598"><a href="#var-4598"><span class="linenos">4598</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="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
+</span><span id="var-4599"><a href="#var-4599"><span class="linenos">4599</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="var-4600"><a href="#var-4600"><span class="linenos">4600</span></a>
+</span><span id="var-4601"><a href="#var-4601"><span class="linenos">4601</span></a><span class="sd"> Example:</span>
+</span><span id="var-4602"><a href="#var-4602"><span class="linenos">4602</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-4603"><a href="#var-4603"><span class="linenos">4603</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-4604"><a href="#var-4604"><span class="linenos">4604</span></a>
+</span><span id="var-4605"><a href="#var-4605"><span class="linenos">4605</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-4606"><a href="#var-4606"><span class="linenos">4606</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
+</span><span id="var-4607"><a href="#var-4607"><span class="linenos">4607</span></a>
+</span><span id="var-4608"><a href="#var-4608"><span class="linenos">4608</span></a><span class="sd"> Args:</span>
+</span><span id="var-4609"><a href="#var-4609"><span class="linenos">4609</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-4610"><a href="#var-4610"><span class="linenos">4610</span></a>
+</span><span id="var-4611"><a href="#var-4611"><span class="linenos">4611</span></a><span class="sd"> Returns:</span>
+</span><span id="var-4612"><a href="#var-4612"><span class="linenos">4612</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-4613"><a href="#var-4613"><span class="linenos">4613</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-4614"><a href="#var-4614"><span class="linenos">4614</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-4615"><a href="#var-4615"><span class="linenos">4615</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 empty name into var.&quot;</span><span class="p">)</span>
+</span><span id="var-4616"><a href="#var-4616"><span class="linenos">4616</span></a>
+</span><span id="var-4617"><a href="#var-4617"><span class="linenos">4617</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-4618"><a href="#var-4618"><span class="linenos">4618</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-4619"><a href="#var-4619"><span class="linenos">4619</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>
@@ -42068,24 +42304,24 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#rename_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-4608"><a href="#rename_table-4608"><span class="linenos">4608</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-4609"><a href="#rename_table-4609"><span class="linenos">4609</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-4610"><a href="#rename_table-4610"><span class="linenos">4610</span></a>
-</span><span id="rename_table-4611"><a href="#rename_table-4611"><span class="linenos">4611</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-4612"><a href="#rename_table-4612"><span class="linenos">4612</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-4613"><a href="#rename_table-4613"><span class="linenos">4613</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-4614"><a href="#rename_table-4614"><span class="linenos">4614</span></a>
-</span><span id="rename_table-4615"><a href="#rename_table-4615"><span class="linenos">4615</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-4616"><a href="#rename_table-4616"><span class="linenos">4616</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-4617"><a href="#rename_table-4617"><span class="linenos">4617</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-4618"><a href="#rename_table-4618"><span class="linenos">4618</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-4619"><a href="#rename_table-4619"><span class="linenos">4619</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-4620"><a href="#rename_table-4620"><span class="linenos">4620</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-4621"><a href="#rename_table-4621"><span class="linenos">4621</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-4622"><a href="#rename_table-4622"><span class="linenos">4622</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-4623"><a href="#rename_table-4623"><span class="linenos">4623</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-4624"><a href="#rename_table-4624"><span class="linenos">4624</span></a> <span class="p">],</span>
-</span><span id="rename_table-4625"><a href="#rename_table-4625"><span class="linenos">4625</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-4622"><a href="#rename_table-4622"><span class="linenos">4622</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-4623"><a href="#rename_table-4623"><span class="linenos">4623</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-4624"><a href="#rename_table-4624"><span class="linenos">4624</span></a>
+</span><span id="rename_table-4625"><a href="#rename_table-4625"><span class="linenos">4625</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-4626"><a href="#rename_table-4626"><span class="linenos">4626</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-4627"><a href="#rename_table-4627"><span class="linenos">4627</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-4628"><a href="#rename_table-4628"><span class="linenos">4628</span></a>
+</span><span id="rename_table-4629"><a href="#rename_table-4629"><span class="linenos">4629</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-4630"><a href="#rename_table-4630"><span class="linenos">4630</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-4631"><a href="#rename_table-4631"><span class="linenos">4631</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-4632"><a href="#rename_table-4632"><span class="linenos">4632</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-4633"><a href="#rename_table-4633"><span class="linenos">4633</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-4634"><a href="#rename_table-4634"><span class="linenos">4634</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-4635"><a href="#rename_table-4635"><span class="linenos">4635</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-4636"><a href="#rename_table-4636"><span class="linenos">4636</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-4637"><a href="#rename_table-4637"><span class="linenos">4637</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-4638"><a href="#rename_table-4638"><span class="linenos">4638</span></a> <span class="p">],</span>
+</span><span id="rename_table-4639"><a href="#rename_table-4639"><span class="linenos">4639</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42118,47 +42354,47 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#convert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="convert-4628"><a href="#convert-4628"><span class="linenos">4628</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="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="convert-4629"><a href="#convert-4629"><span class="linenos">4629</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-4630"><a href="#convert-4630"><span class="linenos">4630</span></a>
-</span><span id="convert-4631"><a href="#convert-4631"><span class="linenos">4631</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-4632"><a href="#convert-4632"><span class="linenos">4632</span></a>
-</span><span id="convert-4633"><a href="#convert-4633"><span class="linenos">4633</span></a><span class="sd"> Args:</span>
-</span><span id="convert-4634"><a href="#convert-4634"><span class="linenos">4634</span></a><span class="sd"> value (Any): a python object</span>
-</span><span id="convert-4635"><a href="#convert-4635"><span class="linenos">4635</span></a>
-</span><span id="convert-4636"><a href="#convert-4636"><span class="linenos">4636</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-4637"><a href="#convert-4637"><span class="linenos">4637</span></a><span class="sd"> Expression: the equivalent expression object</span>
-</span><span id="convert-4638"><a href="#convert-4638"><span class="linenos">4638</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-4639"><a href="#convert-4639"><span class="linenos">4639</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-4640"><a href="#convert-4640"><span class="linenos">4640</span></a> <span class="k">return</span> <span class="n">value</span>
-</span><span id="convert-4641"><a href="#convert-4641"><span class="linenos">4641</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="convert-4642"><a href="#convert-4642"><span class="linenos">4642</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-4643"><a href="#convert-4643"><span class="linenos">4643</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-4644"><a href="#convert-4644"><span class="linenos">4644</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-4645"><a href="#convert-4645"><span class="linenos">4645</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-4646"><a href="#convert-4646"><span class="linenos">4646</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-4647"><a href="#convert-4647"><span class="linenos">4647</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">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-4648"><a href="#convert-4648"><span class="linenos">4648</span></a> <span class="k">return</span> <span class="n">NULL</span>
-</span><span id="convert-4649"><a href="#convert-4649"><span class="linenos">4649</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-4650"><a href="#convert-4650"><span class="linenos">4650</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-4651"><a href="#convert-4651"><span class="linenos">4651</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-4652"><a href="#convert-4652"><span class="linenos">4652</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="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-4653"><a href="#convert-4653"><span class="linenos">4653</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-4654"><a href="#convert-4654"><span class="linenos">4654</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="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-4655"><a href="#convert-4655"><span class="linenos">4655</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-4656"><a href="#convert-4656"><span class="linenos">4656</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-4657"><a href="#convert-4657"><span class="linenos">4657</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="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-4658"><a href="#convert-4658"><span class="linenos">4658</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="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-4659"><a href="#convert-4659"><span class="linenos">4659</span></a> <span class="p">)</span>
-</span><span id="convert-4660"><a href="#convert-4660"><span class="linenos">4660</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-4661"><a href="#convert-4661"><span class="linenos">4661</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-4662"><a href="#convert-4662"><span class="linenos">4662</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-4663"><a href="#convert-4663"><span class="linenos">4663</span></a> <span class="p">)</span>
-</span><span id="convert-4664"><a href="#convert-4664"><span class="linenos">4664</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-4665"><a href="#convert-4665"><span class="linenos">4665</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-4666"><a href="#convert-4666"><span class="linenos">4666</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-4667"><a href="#convert-4667"><span class="linenos">4667</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-4668"><a href="#convert-4668"><span class="linenos">4668</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-4642"><a href="#convert-4642"><span class="linenos">4642</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="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="convert-4643"><a href="#convert-4643"><span class="linenos">4643</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-4644"><a href="#convert-4644"><span class="linenos">4644</span></a>
+</span><span id="convert-4645"><a href="#convert-4645"><span class="linenos">4645</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-4646"><a href="#convert-4646"><span class="linenos">4646</span></a>
+</span><span id="convert-4647"><a href="#convert-4647"><span class="linenos">4647</span></a><span class="sd"> Args:</span>
+</span><span id="convert-4648"><a href="#convert-4648"><span class="linenos">4648</span></a><span class="sd"> value (Any): a python object</span>
+</span><span id="convert-4649"><a href="#convert-4649"><span class="linenos">4649</span></a>
+</span><span id="convert-4650"><a href="#convert-4650"><span class="linenos">4650</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-4651"><a href="#convert-4651"><span class="linenos">4651</span></a><span class="sd"> Expression: the equivalent expression object</span>
+</span><span id="convert-4652"><a href="#convert-4652"><span class="linenos">4652</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-4653"><a href="#convert-4653"><span class="linenos">4653</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-4654"><a href="#convert-4654"><span class="linenos">4654</span></a> <span class="k">return</span> <span class="n">value</span>
+</span><span id="convert-4655"><a href="#convert-4655"><span class="linenos">4655</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="convert-4656"><a href="#convert-4656"><span class="linenos">4656</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-4657"><a href="#convert-4657"><span class="linenos">4657</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-4658"><a href="#convert-4658"><span class="linenos">4658</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-4659"><a href="#convert-4659"><span class="linenos">4659</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-4660"><a href="#convert-4660"><span class="linenos">4660</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-4661"><a href="#convert-4661"><span class="linenos">4661</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">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-4662"><a href="#convert-4662"><span class="linenos">4662</span></a> <span class="k">return</span> <span class="n">NULL</span>
+</span><span id="convert-4663"><a href="#convert-4663"><span class="linenos">4663</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-4664"><a href="#convert-4664"><span class="linenos">4664</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-4665"><a href="#convert-4665"><span class="linenos">4665</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-4666"><a href="#convert-4666"><span class="linenos">4666</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="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-4667"><a href="#convert-4667"><span class="linenos">4667</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-4668"><a href="#convert-4668"><span class="linenos">4668</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="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-4669"><a href="#convert-4669"><span class="linenos">4669</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-4670"><a href="#convert-4670"><span class="linenos">4670</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-4671"><a href="#convert-4671"><span class="linenos">4671</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="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-4672"><a href="#convert-4672"><span class="linenos">4672</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="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-4673"><a href="#convert-4673"><span class="linenos">4673</span></a> <span class="p">)</span>
+</span><span id="convert-4674"><a href="#convert-4674"><span class="linenos">4674</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-4675"><a href="#convert-4675"><span class="linenos">4675</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-4676"><a href="#convert-4676"><span class="linenos">4676</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-4677"><a href="#convert-4677"><span class="linenos">4677</span></a> <span class="p">)</span>
+</span><span id="convert-4678"><a href="#convert-4678"><span class="linenos">4678</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-4679"><a href="#convert-4679"><span class="linenos">4679</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-4680"><a href="#convert-4680"><span class="linenos">4680</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-4681"><a href="#convert-4681"><span class="linenos">4681</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-4682"><a href="#convert-4682"><span class="linenos">4682</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>
@@ -42192,26 +42428,26 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#replace_children"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-4671"><a href="#replace_children-4671"><span class="linenos">4671</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">fun</span><span class="p">):</span>
-</span><span id="replace_children-4672"><a href="#replace_children-4672"><span class="linenos">4672</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-4673"><a href="#replace_children-4673"><span class="linenos">4673</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-4674"><a href="#replace_children-4674"><span class="linenos">4674</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-4675"><a href="#replace_children-4675"><span class="linenos">4675</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-4676"><a href="#replace_children-4676"><span class="linenos">4676</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span>
-</span><span id="replace_children-4677"><a href="#replace_children-4677"><span class="linenos">4677</span></a>
-</span><span id="replace_children-4678"><a href="#replace_children-4678"><span class="linenos">4678</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-4679"><a href="#replace_children-4679"><span class="linenos">4679</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-4680"><a href="#replace_children-4680"><span class="linenos">4680</span></a>
-</span><span id="replace_children-4681"><a href="#replace_children-4681"><span class="linenos">4681</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-4682"><a href="#replace_children-4682"><span class="linenos">4682</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-4683"><a href="#replace_children-4683"><span class="linenos">4683</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><span id="replace_children-4684"><a href="#replace_children-4684"><span class="linenos">4684</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-4685"><a href="#replace_children-4685"><span class="linenos">4685</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-4686"><a href="#replace_children-4686"><span class="linenos">4686</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-4687"><a href="#replace_children-4687"><span class="linenos">4687</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-4688"><a href="#replace_children-4688"><span class="linenos">4688</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-4689"><a href="#replace_children-4689"><span class="linenos">4689</span></a>
-</span><span id="replace_children-4690"><a href="#replace_children-4690"><span class="linenos">4690</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-4685"><a href="#replace_children-4685"><span class="linenos">4685</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">fun</span><span class="p">):</span>
+</span><span id="replace_children-4686"><a href="#replace_children-4686"><span class="linenos">4686</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-4687"><a href="#replace_children-4687"><span class="linenos">4687</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-4688"><a href="#replace_children-4688"><span class="linenos">4688</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-4689"><a href="#replace_children-4689"><span class="linenos">4689</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-4690"><a href="#replace_children-4690"><span class="linenos">4690</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span>
+</span><span id="replace_children-4691"><a href="#replace_children-4691"><span class="linenos">4691</span></a>
+</span><span id="replace_children-4692"><a href="#replace_children-4692"><span class="linenos">4692</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-4693"><a href="#replace_children-4693"><span class="linenos">4693</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-4694"><a href="#replace_children-4694"><span class="linenos">4694</span></a>
+</span><span id="replace_children-4695"><a href="#replace_children-4695"><span class="linenos">4695</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-4696"><a href="#replace_children-4696"><span class="linenos">4696</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-4697"><a href="#replace_children-4697"><span class="linenos">4697</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><span id="replace_children-4698"><a href="#replace_children-4698"><span class="linenos">4698</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-4699"><a href="#replace_children-4699"><span class="linenos">4699</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-4700"><a href="#replace_children-4700"><span class="linenos">4700</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-4701"><a href="#replace_children-4701"><span class="linenos">4701</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-4702"><a href="#replace_children-4702"><span class="linenos">4702</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-4703"><a href="#replace_children-4703"><span class="linenos">4703</span></a>
+</span><span id="replace_children-4704"><a href="#replace_children-4704"><span class="linenos">4704</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>
@@ -42231,22 +42467,22 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#column_table_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-4693"><a href="#column_table_names-4693"><span class="linenos">4693</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><span id="column_table_names-4694"><a href="#column_table_names-4694"><span class="linenos">4694</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-4695"><a href="#column_table_names-4695"><span class="linenos">4695</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-4696"><a href="#column_table_names-4696"><span class="linenos">4696</span></a>
-</span><span id="column_table_names-4697"><a href="#column_table_names-4697"><span class="linenos">4697</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-4698"><a href="#column_table_names-4698"><span class="linenos">4698</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-4699"><a href="#column_table_names-4699"><span class="linenos">4699</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
-</span><span id="column_table_names-4700"><a href="#column_table_names-4700"><span class="linenos">4700</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
-</span><span id="column_table_names-4701"><a href="#column_table_names-4701"><span class="linenos">4701</span></a>
-</span><span id="column_table_names-4702"><a href="#column_table_names-4702"><span class="linenos">4702</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-4703"><a href="#column_table_names-4703"><span class="linenos">4703</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
-</span><span id="column_table_names-4704"><a href="#column_table_names-4704"><span class="linenos">4704</span></a>
-</span><span id="column_table_names-4705"><a href="#column_table_names-4705"><span class="linenos">4705</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-4706"><a href="#column_table_names-4706"><span class="linenos">4706</span></a><span class="sd"> list: A list of unique names</span>
-</span><span id="column_table_names-4707"><a href="#column_table_names-4707"><span class="linenos">4707</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-4708"><a href="#column_table_names-4708"><span class="linenos">4708</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-4707"><a href="#column_table_names-4707"><span class="linenos">4707</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><span id="column_table_names-4708"><a href="#column_table_names-4708"><span class="linenos">4708</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-4709"><a href="#column_table_names-4709"><span class="linenos">4709</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-4710"><a href="#column_table_names-4710"><span class="linenos">4710</span></a>
+</span><span id="column_table_names-4711"><a href="#column_table_names-4711"><span class="linenos">4711</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-4712"><a href="#column_table_names-4712"><span class="linenos">4712</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-4713"><a href="#column_table_names-4713"><span class="linenos">4713</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
+</span><span id="column_table_names-4714"><a href="#column_table_names-4714"><span class="linenos">4714</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
+</span><span id="column_table_names-4715"><a href="#column_table_names-4715"><span class="linenos">4715</span></a>
+</span><span id="column_table_names-4716"><a href="#column_table_names-4716"><span class="linenos">4716</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-4717"><a href="#column_table_names-4717"><span class="linenos">4717</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span>
+</span><span id="column_table_names-4718"><a href="#column_table_names-4718"><span class="linenos">4718</span></a>
+</span><span id="column_table_names-4719"><a href="#column_table_names-4719"><span class="linenos">4719</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-4720"><a href="#column_table_names-4720"><span class="linenos">4720</span></a><span class="sd"> list: A list of unique names</span>
+</span><span id="column_table_names-4721"><a href="#column_table_names-4721"><span class="linenos">4721</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-4722"><a href="#column_table_names-4722"><span class="linenos">4722</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</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></pre></div>
@@ -42289,35 +42525,35 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-4711"><a href="#table_name-4711"><span class="linenos">4711</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="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="table_name-4712"><a href="#table_name-4712"><span class="linenos">4712</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-4713"><a href="#table_name-4713"><span class="linenos">4713</span></a>
-</span><span id="table_name-4714"><a href="#table_name-4714"><span class="linenos">4714</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-4715"><a href="#table_name-4715"><span class="linenos">4715</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
-</span><span id="table_name-4716"><a href="#table_name-4716"><span class="linenos">4716</span></a>
-</span><span id="table_name-4717"><a href="#table_name-4717"><span class="linenos">4717</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-4718"><a href="#table_name-4718"><span class="linenos">4718</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-4719"><a href="#table_name-4719"><span class="linenos">4719</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-4720"><a href="#table_name-4720"><span class="linenos">4720</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-4721"><a href="#table_name-4721"><span class="linenos">4721</span></a>
-</span><span id="table_name-4722"><a href="#table_name-4722"><span class="linenos">4722</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-4723"><a href="#table_name-4723"><span class="linenos">4723</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-4724"><a href="#table_name-4724"><span class="linenos">4724</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-4725"><a href="#table_name-4725"><span class="linenos">4725</span></a>
-</span><span id="table_name-4726"><a href="#table_name-4726"><span class="linenos">4726</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-4725"><a href="#table_name-4725"><span class="linenos">4725</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="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="table_name-4726"><a href="#table_name-4726"><span class="linenos">4726</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-4727"><a href="#table_name-4727"><span class="linenos">4727</span></a>
-</span><span id="table_name-4728"><a href="#table_name-4728"><span class="linenos">4728</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-4729"><a href="#table_name-4729"><span class="linenos">4729</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-4728"><a href="#table_name-4728"><span class="linenos">4728</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-4729"><a href="#table_name-4729"><span class="linenos">4729</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span>
</span><span id="table_name-4730"><a href="#table_name-4730"><span class="linenos">4730</span></a>
-</span><span id="table_name-4731"><a href="#table_name-4731"><span class="linenos">4731</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-4732"><a href="#table_name-4732"><span class="linenos">4732</span></a> <span class="n">part</span>
-</span><span id="table_name-4733"><a href="#table_name-4733"><span class="linenos">4733</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
-</span><span id="table_name-4734"><a href="#table_name-4734"><span class="linenos">4734</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
-</span><span id="table_name-4735"><a href="#table_name-4735"><span class="linenos">4735</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
-</span><span id="table_name-4736"><a href="#table_name-4736"><span class="linenos">4736</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
-</span><span id="table_name-4737"><a href="#table_name-4737"><span class="linenos">4737</span></a> <span class="p">)</span>
-</span><span id="table_name-4738"><a href="#table_name-4738"><span class="linenos">4738</span></a> <span class="k">if</span> <span class="n">part</span>
-</span><span id="table_name-4739"><a href="#table_name-4739"><span class="linenos">4739</span></a> <span class="p">)</span>
+</span><span id="table_name-4731"><a href="#table_name-4731"><span class="linenos">4731</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-4732"><a href="#table_name-4732"><span class="linenos">4732</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-4733"><a href="#table_name-4733"><span class="linenos">4733</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-4734"><a href="#table_name-4734"><span class="linenos">4734</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-4735"><a href="#table_name-4735"><span class="linenos">4735</span></a>
+</span><span id="table_name-4736"><a href="#table_name-4736"><span class="linenos">4736</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-4737"><a href="#table_name-4737"><span class="linenos">4737</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-4738"><a href="#table_name-4738"><span class="linenos">4738</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-4739"><a href="#table_name-4739"><span class="linenos">4739</span></a>
+</span><span id="table_name-4740"><a href="#table_name-4740"><span class="linenos">4740</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
+</span><span id="table_name-4741"><a href="#table_name-4741"><span class="linenos">4741</span></a>
+</span><span id="table_name-4742"><a href="#table_name-4742"><span class="linenos">4742</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-4743"><a href="#table_name-4743"><span class="linenos">4743</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-4744"><a href="#table_name-4744"><span class="linenos">4744</span></a>
+</span><span id="table_name-4745"><a href="#table_name-4745"><span class="linenos">4745</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-4746"><a href="#table_name-4746"><span class="linenos">4746</span></a> <span class="n">part</span>
+</span><span id="table_name-4747"><a href="#table_name-4747"><span class="linenos">4747</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span>
+</span><span id="table_name-4748"><a href="#table_name-4748"><span class="linenos">4748</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span>
+</span><span id="table_name-4749"><a href="#table_name-4749"><span class="linenos">4749</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span>
+</span><span id="table_name-4750"><a href="#table_name-4750"><span class="linenos">4750</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
+</span><span id="table_name-4751"><a href="#table_name-4751"><span class="linenos">4751</span></a> <span class="p">)</span>
+</span><span id="table_name-4752"><a href="#table_name-4752"><span class="linenos">4752</span></a> <span class="k">if</span> <span class="n">part</span>
+</span><span id="table_name-4753"><a href="#table_name-4753"><span class="linenos">4753</span></a> <span class="p">)</span>
</span></pre></div>
@@ -42360,33 +42596,33 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#replace_tables"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-4742"><a href="#replace_tables-4742"><span class="linenos">4742</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">mapping</span><span class="p">):</span>
-</span><span id="replace_tables-4743"><a href="#replace_tables-4743"><span class="linenos">4743</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-4744"><a href="#replace_tables-4744"><span class="linenos">4744</span></a>
-</span><span id="replace_tables-4745"><a href="#replace_tables-4745"><span class="linenos">4745</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-4746"><a href="#replace_tables-4746"><span class="linenos">4746</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-4747"><a href="#replace_tables-4747"><span class="linenos">4747</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
-</span><span id="replace_tables-4748"><a href="#replace_tables-4748"><span class="linenos">4748</span></a>
-</span><span id="replace_tables-4749"><a href="#replace_tables-4749"><span class="linenos">4749</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-4750"><a href="#replace_tables-4750"><span class="linenos">4750</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-4751"><a href="#replace_tables-4751"><span class="linenos">4751</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-4752"><a href="#replace_tables-4752"><span class="linenos">4752</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
-</span><span id="replace_tables-4753"><a href="#replace_tables-4753"><span class="linenos">4753</span></a>
-</span><span id="replace_tables-4754"><a href="#replace_tables-4754"><span class="linenos">4754</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-4755"><a href="#replace_tables-4755"><span class="linenos">4755</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-4756"><a href="#replace_tables-4756"><span class="linenos">4756</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-4757"><a href="#replace_tables-4757"><span class="linenos">4757</span></a>
-</span><span id="replace_tables-4758"><a href="#replace_tables-4758"><span class="linenos">4758</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><span id="replace_tables-4759"><a href="#replace_tables-4759"><span class="linenos">4759</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-4760"><a href="#replace_tables-4760"><span class="linenos">4760</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-4761"><a href="#replace_tables-4761"><span class="linenos">4761</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-4762"><a href="#replace_tables-4762"><span class="linenos">4762</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-4763"><a href="#replace_tables-4763"><span class="linenos">4763</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-4764"><a href="#replace_tables-4764"><span class="linenos">4764</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-4765"><a href="#replace_tables-4765"><span class="linenos">4765</span></a> <span class="p">)</span>
-</span><span id="replace_tables-4766"><a href="#replace_tables-4766"><span class="linenos">4766</span></a> <span class="k">return</span> <span class="n">node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-4756"><a href="#replace_tables-4756"><span class="linenos">4756</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">mapping</span><span class="p">):</span>
+</span><span id="replace_tables-4757"><a href="#replace_tables-4757"><span class="linenos">4757</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-4758"><a href="#replace_tables-4758"><span class="linenos">4758</span></a>
+</span><span id="replace_tables-4759"><a href="#replace_tables-4759"><span class="linenos">4759</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-4760"><a href="#replace_tables-4760"><span class="linenos">4760</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-4761"><a href="#replace_tables-4761"><span class="linenos">4761</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span>
+</span><span id="replace_tables-4762"><a href="#replace_tables-4762"><span class="linenos">4762</span></a>
+</span><span id="replace_tables-4763"><a href="#replace_tables-4763"><span class="linenos">4763</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-4764"><a href="#replace_tables-4764"><span class="linenos">4764</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-4765"><a href="#replace_tables-4765"><span class="linenos">4765</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-4766"><a href="#replace_tables-4766"><span class="linenos">4766</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
</span><span id="replace_tables-4767"><a href="#replace_tables-4767"><span class="linenos">4767</span></a>
-</span><span id="replace_tables-4768"><a href="#replace_tables-4768"><span class="linenos">4768</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><span id="replace_tables-4768"><a href="#replace_tables-4768"><span class="linenos">4768</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-4769"><a href="#replace_tables-4769"><span class="linenos">4769</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-4770"><a href="#replace_tables-4770"><span class="linenos">4770</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tables-4771"><a href="#replace_tables-4771"><span class="linenos">4771</span></a>
+</span><span id="replace_tables-4772"><a href="#replace_tables-4772"><span class="linenos">4772</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><span id="replace_tables-4773"><a href="#replace_tables-4773"><span class="linenos">4773</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-4774"><a href="#replace_tables-4774"><span class="linenos">4774</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-4775"><a href="#replace_tables-4775"><span class="linenos">4775</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-4776"><a href="#replace_tables-4776"><span class="linenos">4776</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-4777"><a href="#replace_tables-4777"><span class="linenos">4777</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-4778"><a href="#replace_tables-4778"><span class="linenos">4778</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-4779"><a href="#replace_tables-4779"><span class="linenos">4779</span></a> <span class="p">)</span>
+</span><span id="replace_tables-4780"><a href="#replace_tables-4780"><span class="linenos">4780</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-4781"><a href="#replace_tables-4781"><span class="linenos">4781</span></a>
+</span><span id="replace_tables-4782"><a href="#replace_tables-4782"><span class="linenos">4782</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></pre></div>
@@ -42430,39 +42666,39 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-4771"><a href="#replace_placeholders-4771"><span class="linenos">4771</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="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_placeholders-4772"><a href="#replace_placeholders-4772"><span class="linenos">4772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-4773"><a href="#replace_placeholders-4773"><span class="linenos">4773</span></a>
-</span><span id="replace_placeholders-4774"><a href="#replace_placeholders-4774"><span class="linenos">4774</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-4775"><a href="#replace_placeholders-4775"><span class="linenos">4775</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-4776"><a href="#replace_placeholders-4776"><span class="linenos">4776</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-4777"><a href="#replace_placeholders-4777"><span class="linenos">4777</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-4778"><a href="#replace_placeholders-4778"><span class="linenos">4778</span></a>
-</span><span id="replace_placeholders-4779"><a href="#replace_placeholders-4779"><span class="linenos">4779</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-4780"><a href="#replace_placeholders-4780"><span class="linenos">4780</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-4781"><a href="#replace_placeholders-4781"><span class="linenos">4781</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-4782"><a href="#replace_placeholders-4782"><span class="linenos">4782</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;), &quot;a&quot;, &quot;b&quot;, tbl=&quot;foo&quot;</span>
-</span><span id="replace_placeholders-4783"><a href="#replace_placeholders-4783"><span class="linenos">4783</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-4784"><a href="#replace_placeholders-4784"><span class="linenos">4784</span></a><span class="sd"> &#39;SELECT * FROM foo WHERE a = b&#39;</span>
-</span><span id="replace_placeholders-4785"><a href="#replace_placeholders-4785"><span class="linenos">4785</span></a>
-</span><span id="replace_placeholders-4786"><a href="#replace_placeholders-4786"><span class="linenos">4786</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-4787"><a href="#replace_placeholders-4787"><span class="linenos">4787</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-4788"><a href="#replace_placeholders-4788"><span class="linenos">4788</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_placeholders-4789"><a href="#replace_placeholders-4789"><span class="linenos">4789</span></a>
-</span><span id="replace_placeholders-4790"><a href="#replace_placeholders-4790"><span class="linenos">4790</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">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
-</span><span id="replace_placeholders-4791"><a href="#replace_placeholders-4791"><span class="linenos">4791</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-4792"><a href="#replace_placeholders-4792"><span class="linenos">4792</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-4793"><a href="#replace_placeholders-4793"><span class="linenos">4793</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-4794"><a href="#replace_placeholders-4794"><span class="linenos">4794</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_placeholders-4795"><a href="#replace_placeholders-4795"><span class="linenos">4795</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="replace_placeholders-4796"><a href="#replace_placeholders-4796"><span class="linenos">4796</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-4797"><a href="#replace_placeholders-4797"><span class="linenos">4797</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-4798"><a href="#replace_placeholders-4798"><span class="linenos">4798</span></a> <span class="k">return</span> <span class="n">to_identifier</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-4799"><a href="#replace_placeholders-4799"><span class="linenos">4799</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-4800"><a href="#replace_placeholders-4800"><span class="linenos">4800</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-4801"><a href="#replace_placeholders-4801"><span class="linenos">4801</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-4802"><a href="#replace_placeholders-4802"><span class="linenos">4802</span></a>
-</span><span id="replace_placeholders-4803"><a href="#replace_placeholders-4803"><span class="linenos">4803</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-4785"><a href="#replace_placeholders-4785"><span class="linenos">4785</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="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_placeholders-4786"><a href="#replace_placeholders-4786"><span class="linenos">4786</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-4787"><a href="#replace_placeholders-4787"><span class="linenos">4787</span></a>
+</span><span id="replace_placeholders-4788"><a href="#replace_placeholders-4788"><span class="linenos">4788</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-4789"><a href="#replace_placeholders-4789"><span class="linenos">4789</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-4790"><a href="#replace_placeholders-4790"><span class="linenos">4790</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-4791"><a href="#replace_placeholders-4791"><span class="linenos">4791</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="replace_placeholders-4792"><a href="#replace_placeholders-4792"><span class="linenos">4792</span></a>
+</span><span id="replace_placeholders-4793"><a href="#replace_placeholders-4793"><span class="linenos">4793</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-4794"><a href="#replace_placeholders-4794"><span class="linenos">4794</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-4795"><a href="#replace_placeholders-4795"><span class="linenos">4795</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-4796"><a href="#replace_placeholders-4796"><span class="linenos">4796</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;), &quot;a&quot;, &quot;b&quot;, tbl=&quot;foo&quot;</span>
+</span><span id="replace_placeholders-4797"><a href="#replace_placeholders-4797"><span class="linenos">4797</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-4798"><a href="#replace_placeholders-4798"><span class="linenos">4798</span></a><span class="sd"> &#39;SELECT * FROM foo WHERE a = b&#39;</span>
+</span><span id="replace_placeholders-4799"><a href="#replace_placeholders-4799"><span class="linenos">4799</span></a>
+</span><span id="replace_placeholders-4800"><a href="#replace_placeholders-4800"><span class="linenos">4800</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-4801"><a href="#replace_placeholders-4801"><span class="linenos">4801</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-4802"><a href="#replace_placeholders-4802"><span class="linenos">4802</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-4803"><a href="#replace_placeholders-4803"><span class="linenos">4803</span></a>
+</span><span id="replace_placeholders-4804"><a href="#replace_placeholders-4804"><span class="linenos">4804</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">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="replace_placeholders-4805"><a href="#replace_placeholders-4805"><span class="linenos">4805</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-4806"><a href="#replace_placeholders-4806"><span class="linenos">4806</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-4807"><a href="#replace_placeholders-4807"><span class="linenos">4807</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-4808"><a href="#replace_placeholders-4808"><span class="linenos">4808</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_placeholders-4809"><a href="#replace_placeholders-4809"><span class="linenos">4809</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="replace_placeholders-4810"><a href="#replace_placeholders-4810"><span class="linenos">4810</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-4811"><a href="#replace_placeholders-4811"><span class="linenos">4811</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-4812"><a href="#replace_placeholders-4812"><span class="linenos">4812</span></a> <span class="k">return</span> <span class="n">to_identifier</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-4813"><a href="#replace_placeholders-4813"><span class="linenos">4813</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-4814"><a href="#replace_placeholders-4814"><span class="linenos">4814</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-4815"><a href="#replace_placeholders-4815"><span class="linenos">4815</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-4816"><a href="#replace_placeholders-4816"><span class="linenos">4816</span></a>
+</span><span id="replace_placeholders-4817"><a href="#replace_placeholders-4817"><span class="linenos">4817</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>
@@ -42509,34 +42745,34 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#expand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="expand-4806"><a href="#expand-4806"><span class="linenos">4806</span></a><span class="k">def</span> <span class="nf">expand</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">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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-4807"><a href="#expand-4807"><span class="linenos">4807</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-4808"><a href="#expand-4808"><span class="linenos">4808</span></a>
-</span><span id="expand-4809"><a href="#expand-4809"><span class="linenos">4809</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-4810"><a href="#expand-4810"><span class="linenos">4810</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-4811"><a href="#expand-4811"><span class="linenos">4811</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-4812"><a href="#expand-4812"><span class="linenos">4812</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-4813"><a href="#expand-4813"><span class="linenos">4813</span></a>
-</span><span id="expand-4814"><a href="#expand-4814"><span class="linenos">4814</span></a><span class="sd"> Args:</span>
-</span><span id="expand-4815"><a href="#expand-4815"><span class="linenos">4815</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-4816"><a href="#expand-4816"><span class="linenos">4816</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
-</span><span id="expand-4817"><a href="#expand-4817"><span class="linenos">4817</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-4818"><a href="#expand-4818"><span class="linenos">4818</span></a>
-</span><span id="expand-4819"><a href="#expand-4819"><span class="linenos">4819</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-4820"><a href="#expand-4820"><span class="linenos">4820</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-4821"><a href="#expand-4821"><span class="linenos">4821</span></a><span class="sd"> &quot;&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="expand-4820"><a href="#expand-4820"><span class="linenos">4820</span></a><span class="k">def</span> <span class="nf">expand</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">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="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-4821"><a href="#expand-4821"><span class="linenos">4821</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-4822"><a href="#expand-4822"><span class="linenos">4822</span></a>
-</span><span id="expand-4823"><a href="#expand-4823"><span class="linenos">4823</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-4824"><a href="#expand-4824"><span class="linenos">4824</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-4825"><a href="#expand-4825"><span class="linenos">4825</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-4826"><a href="#expand-4826"><span class="linenos">4826</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-4827"><a href="#expand-4827"><span class="linenos">4827</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-4828"><a href="#expand-4828"><span class="linenos">4828</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-4829"><a href="#expand-4829"><span class="linenos">4829</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-4830"><a href="#expand-4830"><span class="linenos">4830</span></a> <span class="k">return</span> <span class="n">subquery</span>
-</span><span id="expand-4831"><a href="#expand-4831"><span class="linenos">4831</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-4823"><a href="#expand-4823"><span class="linenos">4823</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-4824"><a href="#expand-4824"><span class="linenos">4824</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-4825"><a href="#expand-4825"><span class="linenos">4825</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-4826"><a href="#expand-4826"><span class="linenos">4826</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="expand-4827"><a href="#expand-4827"><span class="linenos">4827</span></a>
+</span><span id="expand-4828"><a href="#expand-4828"><span class="linenos">4828</span></a><span class="sd"> Args:</span>
+</span><span id="expand-4829"><a href="#expand-4829"><span class="linenos">4829</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-4830"><a href="#expand-4830"><span class="linenos">4830</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
+</span><span id="expand-4831"><a href="#expand-4831"><span class="linenos">4831</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
</span><span id="expand-4832"><a href="#expand-4832"><span class="linenos">4832</span></a>
-</span><span id="expand-4833"><a href="#expand-4833"><span class="linenos">4833</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-4833"><a href="#expand-4833"><span class="linenos">4833</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-4834"><a href="#expand-4834"><span class="linenos">4834</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-4835"><a href="#expand-4835"><span class="linenos">4835</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="expand-4836"><a href="#expand-4836"><span class="linenos">4836</span></a>
+</span><span id="expand-4837"><a href="#expand-4837"><span class="linenos">4837</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-4838"><a href="#expand-4838"><span class="linenos">4838</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-4839"><a href="#expand-4839"><span class="linenos">4839</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-4840"><a href="#expand-4840"><span class="linenos">4840</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-4841"><a href="#expand-4841"><span class="linenos">4841</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-4842"><a href="#expand-4842"><span class="linenos">4842</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-4843"><a href="#expand-4843"><span class="linenos">4843</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-4844"><a href="#expand-4844"><span class="linenos">4844</span></a> <span class="k">return</span> <span class="n">subquery</span>
+</span><span id="expand-4845"><a href="#expand-4845"><span class="linenos">4845</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-4846"><a href="#expand-4846"><span class="linenos">4846</span></a>
+</span><span id="expand-4847"><a href="#expand-4847"><span class="linenos">4847</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>
@@ -42581,51 +42817,51 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="func-4836"><a href="#func-4836"><span class="linenos">4836</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-4837"><a href="#func-4837"><span class="linenos">4837</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-4838"><a href="#func-4838"><span class="linenos">4838</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-4839"><a href="#func-4839"><span class="linenos">4839</span></a>
-</span><span id="func-4840"><a href="#func-4840"><span class="linenos">4840</span></a><span class="sd"> Examples:</span>
-</span><span id="func-4841"><a href="#func-4841"><span class="linenos">4841</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-4842"><a href="#func-4842"><span class="linenos">4842</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-4843"><a href="#func-4843"><span class="linenos">4843</span></a>
-</span><span id="func-4844"><a href="#func-4844"><span class="linenos">4844</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-4845"><a href="#func-4845"><span class="linenos">4845</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-4846"><a href="#func-4846"><span class="linenos">4846</span></a>
-</span><span id="func-4847"><a href="#func-4847"><span class="linenos">4847</span></a><span class="sd"> Args:</span>
-</span><span id="func-4848"><a href="#func-4848"><span class="linenos">4848</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-4849"><a href="#func-4849"><span class="linenos">4849</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-4850"><a href="#func-4850"><span class="linenos">4850</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-4851"><a href="#func-4851"><span class="linenos">4851</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-4852"><a href="#func-4852"><span class="linenos">4852</span></a>
-</span><span id="func-4853"><a href="#func-4853"><span class="linenos">4853</span></a><span class="sd"> Note:</span>
-</span><span id="func-4854"><a href="#func-4854"><span class="linenos">4854</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="func-4855"><a href="#func-4855"><span class="linenos">4855</span></a>
-</span><span id="func-4856"><a href="#func-4856"><span class="linenos">4856</span></a><span class="sd"> Returns:</span>
-</span><span id="func-4857"><a href="#func-4857"><span class="linenos">4857</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-4858"><a href="#func-4858"><span class="linenos">4858</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-4859"><a href="#func-4859"><span class="linenos">4859</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-4860"><a href="#func-4860"><span class="linenos">4860</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-4861"><a href="#func-4861"><span class="linenos">4861</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-4862"><a href="#func-4862"><span class="linenos">4862</span></a>
-</span><span id="func-4863"><a href="#func-4863"><span class="linenos">4863</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-4864"><a href="#func-4864"><span class="linenos">4864</span></a>
-</span><span id="func-4865"><a href="#func-4865"><span class="linenos">4865</span></a> <span class="n">args</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</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-4866"><a href="#func-4866"><span class="linenos">4866</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">convert</span><span class="p">(</span><span class="n">value</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-4867"><a href="#func-4867"><span class="linenos">4867</span></a>
-</span><span id="func-4868"><a href="#func-4868"><span class="linenos">4868</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-4869"><a href="#func-4869"><span class="linenos">4869</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-4870"><a href="#func-4870"><span class="linenos">4870</span></a>
-</span><span id="func-4871"><a href="#func-4871"><span class="linenos">4871</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
-</span><span id="func-4872"><a href="#func-4872"><span class="linenos">4872</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">args</span><span class="p">)</span> <span class="k">if</span> <span class="n">args</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-4873"><a href="#func-4873"><span class="linenos">4873</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-4874"><a href="#func-4874"><span class="linenos">4874</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">args</span><span class="p">}</span>
-</span><span id="func-4875"><a href="#func-4875"><span class="linenos">4875</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-4850"><a href="#func-4850"><span class="linenos">4850</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-4851"><a href="#func-4851"><span class="linenos">4851</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-4852"><a href="#func-4852"><span class="linenos">4852</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-4853"><a href="#func-4853"><span class="linenos">4853</span></a>
+</span><span id="func-4854"><a href="#func-4854"><span class="linenos">4854</span></a><span class="sd"> Examples:</span>
+</span><span id="func-4855"><a href="#func-4855"><span class="linenos">4855</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-4856"><a href="#func-4856"><span class="linenos">4856</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="func-4857"><a href="#func-4857"><span class="linenos">4857</span></a>
+</span><span id="func-4858"><a href="#func-4858"><span class="linenos">4858</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-4859"><a href="#func-4859"><span class="linenos">4859</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-4860"><a href="#func-4860"><span class="linenos">4860</span></a>
+</span><span id="func-4861"><a href="#func-4861"><span class="linenos">4861</span></a><span class="sd"> Args:</span>
+</span><span id="func-4862"><a href="#func-4862"><span class="linenos">4862</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-4863"><a href="#func-4863"><span class="linenos">4863</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-4864"><a href="#func-4864"><span class="linenos">4864</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-4865"><a href="#func-4865"><span class="linenos">4865</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="func-4866"><a href="#func-4866"><span class="linenos">4866</span></a>
+</span><span id="func-4867"><a href="#func-4867"><span class="linenos">4867</span></a><span class="sd"> Note:</span>
+</span><span id="func-4868"><a href="#func-4868"><span class="linenos">4868</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="func-4869"><a href="#func-4869"><span class="linenos">4869</span></a>
+</span><span id="func-4870"><a href="#func-4870"><span class="linenos">4870</span></a><span class="sd"> Returns:</span>
+</span><span id="func-4871"><a href="#func-4871"><span class="linenos">4871</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-4872"><a href="#func-4872"><span class="linenos">4872</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-4873"><a href="#func-4873"><span class="linenos">4873</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-4874"><a href="#func-4874"><span class="linenos">4874</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-4875"><a href="#func-4875"><span class="linenos">4875</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-4876"><a href="#func-4876"><span class="linenos">4876</span></a>
-</span><span id="func-4877"><a href="#func-4877"><span class="linenos">4877</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">args</span><span class="p">):</span>
-</span><span id="func-4878"><a href="#func-4878"><span class="linenos">4878</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-4879"><a href="#func-4879"><span class="linenos">4879</span></a>
-</span><span id="func-4880"><a href="#func-4880"><span class="linenos">4880</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="func-4877"><a href="#func-4877"><span class="linenos">4877</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-4878"><a href="#func-4878"><span class="linenos">4878</span></a>
+</span><span id="func-4879"><a href="#func-4879"><span class="linenos">4879</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</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-4880"><a href="#func-4880"><span class="linenos">4880</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">convert</span><span class="p">(</span><span class="n">value</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-4881"><a href="#func-4881"><span class="linenos">4881</span></a>
+</span><span id="func-4882"><a href="#func-4882"><span class="linenos">4882</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-4883"><a href="#func-4883"><span class="linenos">4883</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-4884"><a href="#func-4884"><span class="linenos">4884</span></a>
+</span><span id="func-4885"><a href="#func-4885"><span class="linenos">4885</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
+</span><span id="func-4886"><a href="#func-4886"><span class="linenos">4886</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-4887"><a href="#func-4887"><span class="linenos">4887</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-4888"><a href="#func-4888"><span class="linenos">4888</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-4889"><a href="#func-4889"><span class="linenos">4889</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-4890"><a href="#func-4890"><span class="linenos">4890</span></a>
+</span><span id="func-4891"><a href="#func-4891"><span class="linenos">4891</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-4892"><a href="#func-4892"><span class="linenos">4892</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-4893"><a href="#func-4893"><span class="linenos">4893</span></a>
+</span><span id="func-4894"><a href="#func-4894"><span class="linenos">4894</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -42683,11 +42919,11 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#true"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="true-4883"><a href="#true-4883"><span class="linenos">4883</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
-</span><span id="true-4884"><a href="#true-4884"><span class="linenos">4884</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-4885"><a href="#true-4885"><span class="linenos">4885</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-4886"><a href="#true-4886"><span class="linenos">4886</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-4887"><a href="#true-4887"><span class="linenos">4887</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-4897"><a href="#true-4897"><span class="linenos">4897</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span>
+</span><span id="true-4898"><a href="#true-4898"><span class="linenos">4898</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-4899"><a href="#true-4899"><span class="linenos">4899</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-4900"><a href="#true-4900"><span class="linenos">4900</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-4901"><a href="#true-4901"><span class="linenos">4901</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>
@@ -42707,11 +42943,11 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#false"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="false-4890"><a href="#false-4890"><span class="linenos">4890</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
-</span><span id="false-4891"><a href="#false-4891"><span class="linenos">4891</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-4892"><a href="#false-4892"><span class="linenos">4892</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-4893"><a href="#false-4893"><span class="linenos">4893</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-4894"><a href="#false-4894"><span class="linenos">4894</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-4904"><a href="#false-4904"><span class="linenos">4904</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span>
+</span><span id="false-4905"><a href="#false-4905"><span class="linenos">4905</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-4906"><a href="#false-4906"><span class="linenos">4906</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-4907"><a href="#false-4907"><span class="linenos">4907</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-4908"><a href="#false-4908"><span class="linenos">4908</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>
@@ -42731,11 +42967,11 @@ in order to help with type inference.</li>
</div>
<a class="headerlink" href="#null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="null-4897"><a href="#null-4897"><span class="linenos">4897</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
-</span><span id="null-4898"><a href="#null-4898"><span class="linenos">4898</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-4899"><a href="#null-4899"><span class="linenos">4899</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-4900"><a href="#null-4900"><span class="linenos">4900</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-4901"><a href="#null-4901"><span class="linenos">4901</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-4911"><a href="#null-4911"><span class="linenos">4911</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span>
+</span><span id="null-4912"><a href="#null-4912"><span class="linenos">4912</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-4913"><a href="#null-4913"><span class="linenos">4913</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-4914"><a href="#null-4914"><span class="linenos">4914</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-4915"><a href="#null-4915"><span class="linenos">4915</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>