summaryrefslogtreecommitdiffstats
path: root/docs/sqlglot/expressions.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 16:13:01 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 16:13:01 +0000
commita7044b672667f2a0b48bd0b326b5a55b0815ef79 (patch)
tree4fb5238d47fb4709d47f766a74b8bbaa9c6f17d8 /docs/sqlglot/expressions.html
parentReleasing debian version 23.12.1-1. (diff)
downloadsqlglot-a7044b672667f2a0b48bd0b326b5a55b0815ef79.tar.xz
sqlglot-a7044b672667f2a0b48bd0b326b5a55b0815ef79.zip
Merging upstream version 23.13.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/sqlglot/expressions.html')
-rw-r--r--docs/sqlglot/expressions.html21430
1 files changed, 11061 insertions, 10369 deletions
diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html
index 6f33331..24cab81 100644
--- a/docs/sqlglot/expressions.html
+++ b/docs/sqlglot/expressions.html
@@ -1260,6 +1260,42 @@
</li>
<li>
+ <a class="class" href="#CopyParameter">CopyParameter</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#CopyParameter.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#CopyParameter.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#Copy">Copy</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#Copy.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#Copy.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
+ <a class="class" href="#Credentials">Credentials</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#Credentials.arg_types">arg_types</a>
+ </li>
+ <li>
+ <a class="variable" href="#Credentials.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#Prior">Prior</a>
<ul class="memberlist">
<li>
@@ -3474,6 +3510,9 @@
<a class="variable" href="#DataType.Type.TIMESTAMP">TIMESTAMP</a>
</li>
<li>
+ <a class="variable" href="#DataType.Type.TIMESTAMPNTZ">TIMESTAMPNTZ</a>
+ </li>
+ <li>
<a class="variable" href="#DataType.Type.TIMESTAMPLTZ">TIMESTAMPLTZ</a>
</li>
<li>
@@ -3554,6 +3593,9 @@
<li>
<a class="variable" href="#DataType.Type.YEAR">YEAR</a>
</li>
+ <li>
+ <a class="variable" href="#DataType.Type.TDIGEST">TDIGEST</a>
+ </li>
</ul>
</li>
@@ -4974,6 +5016,15 @@
</li>
<li>
+ <a class="class" href="#Try">Try</a>
+ <ul class="memberlist">
+ <li>
+ <a class="variable" href="#Try.key">key</a>
+ </li>
+ </ul>
+
+ </li>
+ <li>
<a class="class" href="#CastToStrType">CastToStrType</a>
<ul class="memberlist">
<li>
@@ -7323,6 +7374,9 @@
<a class="function" href="#or_">or_</a>
</li>
<li>
+ <a class="function" href="#xor">xor</a>
+ </li>
+ <li>
<a class="function" href="#not_">not_</a>
</li>
<li>
@@ -9418,5568 +9472,5622 @@ SQL expressions, such as <code><a href="#select">select</a></code>.</p>
</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</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">False</span><span class="p">,</span> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nocycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a>
</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a>
-</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="k">pass</span>
+</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="k">class</span> <span class="nc">CopyParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1960"><a href="#L-1960"><span class="linenos">1960</span></a>
</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a>
-</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span>
-</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;row_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a>
-</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a>
-</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="p">}</span>
-</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a>
-</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a>
-</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-1978"><a href="#L-1978"><span class="linenos">1978</span></a>
-</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a>
-</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</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;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="k">class</span> <span class="nc">Copy</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</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-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="s2">&quot;files&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="s2">&quot;credentials&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="p">}</span>
+</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a>
+</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a>
+</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a><span class="k">class</span> <span class="nc">Credentials</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="s2">&quot;credentials&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="s2">&quot;encryption&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="s2">&quot;storage&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="s2">&quot;iam_role&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="s2">&quot;region&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="p">}</span>
+</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a>
</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a>
-</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a>
-</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
-</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples</span>
-</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unlogged&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a>
-</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a>
-</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a> <span class="nd">@property</span>
-</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</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-1993"><a href="#L-1993"><span class="linenos">1993</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-1994"><a href="#L-1994"><span class="linenos">1994</span></a>
-</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> <span class="nd">@property</span>
-</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</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">alias_or_name</span>
-</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a>
+</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a><span class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="k">pass</span>
+</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a>
+</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a>
+</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span>
+</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;row_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a>
+</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a>
+</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> <span class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a> <span class="p">}</span>
</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a>
-</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="k">pass</span>
-</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a>
+</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a>
+</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2003"><a href="#L-2003"><span class="linenos">2003</span></a>
-</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</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-2006"><a href="#L-2006"><span class="linenos">2006</span></a>
+</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a>
+</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</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;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a>
-</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2010"><a href="#L-2010"><span class="linenos">2010</span></a>
-</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a>
-</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a>
+</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
+</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples</span>
+</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unlogged&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a>
</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a>
-</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a> <span class="nd">@property</span>
-</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
-</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a>
-</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a> <span class="nd">@property</span>
-</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
-</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
-</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a>
-</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a> <span class="nd">@property</span>
-</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</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-2026"><a href="#L-2026"><span class="linenos">2026</span></a>
+</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="nd">@property</span>
+</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</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-2018"><a href="#L-2018"><span class="linenos">2018</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-2019"><a href="#L-2019"><span class="linenos">2019</span></a>
+</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="nd">@property</span>
+</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</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">alias_or_name</span>
+</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a>
+</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a>
+</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a> <span class="k">pass</span>
</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a>
-</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a><span class="c1"># https://www.postgresql.org/docs/current/indexes-opclass.html</span>
-</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2028"><a href="#L-2028"><span class="linenos">2028</span></a>
+</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</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-2031"><a href="#L-2031"><span class="linenos">2031</span></a>
</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a>
-</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="s2">&quot;primary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="s2">&quot;amp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
-</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="p">}</span>
-</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a>
+</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2035"><a href="#L-2035"><span class="linenos">2035</span></a>
+</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a>
+</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a>
+</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="nd">@property</span>
+</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a>
-</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a><span class="k">class</span> <span class="nc">IndexParameters</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="s2">&quot;include&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a> <span class="s2">&quot;with_storage&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</span></a> <span class="s2">&quot;tablespace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a> <span class="p">}</span>
-</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a>
-</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a>
-</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
-</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="s2">&quot;is_function&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</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-2062"><a href="#L-2062"><span class="linenos">2062</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-2063"><a href="#L-2063"><span class="linenos">2063</span></a> <span class="s2">&quot;conflict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a> <span class="s2">&quot;alternative&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> <span class="s2">&quot;stored&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="p">}</span>
-</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a>
-</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</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-2081"><a href="#L-2081"><span class="linenos">2081</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</span></a>
-</span><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a><span class="sd"> Example:</span>
-</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
-</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
-</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a>
-</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a><span class="sd"> Args:</span>
-</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a>
-</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="p">)</span>
-</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a>
-</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a>
-</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a><span class="k">class</span> <span class="nc">OnConflict</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <span class="s2">&quot;duplicate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</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-2115"><a href="#L-2115"><span class="linenos">2115</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a> <span class="s2">&quot;conflict_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a> <span class="s2">&quot;constraint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a> <span class="p">}</span>
-</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a>
-</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a>
-</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</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;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a>
-</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a>
-</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
-</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2128"><a href="#L-2128"><span class="linenos">2128</span></a>
-</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a>
-</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
-</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a> <span class="k">pass</span>
-</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a>
+</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a> <span class="nd">@property</span>
+</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
+</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a>
+</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="nd">@property</span>
+</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</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-2051"><a href="#L-2051"><span class="linenos">2051</span></a>
+</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a>
+</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a><span class="c1"># https://www.postgresql.org/docs/current/indexes-opclass.html</span>
+</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2056"><a href="#L-2056"><span class="linenos">2056</span></a>
+</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a>
+</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a> <span class="s2">&quot;primary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="s2">&quot;amp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
+</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="p">}</span>
+</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a>
+</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a>
+</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a><span class="k">class</span> <span class="nc">IndexParameters</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="s2">&quot;include&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="s2">&quot;with_storage&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> <span class="s2">&quot;tablespace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="p">}</span>
+</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a>
+</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a>
+</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
+</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a> <span class="s2">&quot;is_function&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</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-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="s2">&quot;conflict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a> <span class="s2">&quot;alternative&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a> <span class="s2">&quot;stored&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a> <span class="p">}</span>
+</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a>
+</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</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-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a>
+</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a><span class="sd"> Example:</span>
+</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
+</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a>
+</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a><span class="sd"> Args:</span>
+</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a>
+</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a> <span class="p">)</span>
</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a>
-</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</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-2138"><a href="#L-2138"><span class="linenos">2138</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a> <span class="s2">&quot;inpath&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a> <span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a> <span class="p">}</span>
+</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a>
+</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a><span class="k">class</span> <span class="nc">OnConflict</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a> <span class="s2">&quot;duplicate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</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-2140"><a href="#L-2140"><span class="linenos">2140</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a> <span class="s2">&quot;conflict_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a> <span class="s2">&quot;constraint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="p">}</span>
+</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a>
</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a>
-</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a>
-</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</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-2146"><a href="#L-2146"><span class="linenos">2146</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</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;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a>
</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a>
-</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a>
-</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a><span class="k">class</span> <span class="nc">PartitionRange</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
+</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2153"><a href="#L-2153"><span class="linenos">2153</span></a>
</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a>
-</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a> <span class="s2">&quot;with_ties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="p">}</span>
-</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a>
-</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a>
-</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</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-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="s2">&quot;grouping_sets&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="s2">&quot;cube&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="s2">&quot;rollup&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="p">}</span>
-</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a>
+</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
+</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="k">pass</span>
+</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a>
+</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a>
+</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</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-2163"><a href="#L-2163"><span class="linenos">2163</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> <span class="s2">&quot;inpath&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="p">}</span>
+</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a>
+</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a>
+</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</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-2174"><a href="#L-2174"><span class="linenos">2174</span></a>
-</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2177"><a href="#L-2177"><span class="linenos">2177</span></a>
+</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a>
+</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a><span class="k">class</span> <span class="nc">PartitionRange</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2178"><a href="#L-2178"><span class="linenos">2178</span></a>
-</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a> <span class="n">arg_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">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a>
-</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a>
-</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a>
-</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> <span class="nd">@property</span>
-</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
-</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
-</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a>
-</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
-</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a>
-</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
-</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a>
-</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a> <span class="nd">@property</span>
-</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</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-2201"><a href="#L-2201"><span class="linenos">2201</span></a>
+</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a>
+</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a> <span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a> <span class="s2">&quot;with_ties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> <span class="p">}</span>
+</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a>
+</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a>
+</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</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-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="s2">&quot;grouping_sets&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a> <span class="s2">&quot;cube&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a> <span class="s2">&quot;rollup&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="p">}</span>
+</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a>
+</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a>
+</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2202"><a href="#L-2202"><span class="linenos">2202</span></a>
-</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</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-2206"><a href="#L-2206"><span class="linenos">2206</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a> <span class="s2">&quot;side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="s2">&quot;match_condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Snowflake</span>
-</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="p">}</span>
-</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a>
-</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="nd">@property</span>
-</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="k">def</span> <span class="nf">method</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-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a>
-</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a> <span class="nd">@property</span>
-</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="k">def</span> <span class="nf">kind</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-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a>
-</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> <span class="nd">@property</span>
-</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a> <span class="k">def</span> <span class="nf">side</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-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a>
+</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a> <span class="n">arg_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">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a>
+</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a>
+</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a>
+</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a> <span class="nd">@property</span>
+</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
+</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a>
+</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
+</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a>
+</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
+</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a>
+</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a> <span class="nd">@property</span>
+</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</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-2226"><a href="#L-2226"><span class="linenos">2226</span></a>
</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a>
-</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> <span class="nd">@property</span>
-</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="k">def</span> <span class="nf">hint</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-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a>
-</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a> <span class="nd">@property</span>
-</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</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">alias_or_name</span>
-</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a>
-</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
-</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</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-2241"><a href="#L-2241"><span class="linenos">2241</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a>
-</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a><span class="sd"> Example:</span>
-</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
-</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="L-2251"><a href="#L-2251"><span class="linenos">2251</span></a>
-</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a><span class="sd"> Args:</span>
-</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a>
-</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
-</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a> <span class="p">)</span>
-</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a>
-</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
-</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a>
-</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a>
-</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
-</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</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-2285"><a href="#L-2285"><span class="linenos">2285</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a>
-</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a><span class="sd"> Example:</span>
-</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
-</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a>
-</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a><span class="sd"> Args:</span>
-</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</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-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a> <span class="s2">&quot;side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="s2">&quot;match_condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Snowflake</span>
+</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a> <span class="p">}</span>
+</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a>
+</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a> <span class="nd">@property</span>
+</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="k">def</span> <span class="nf">method</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-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a>
+</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a> <span class="nd">@property</span>
+</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a> <span class="k">def</span> <span class="nf">kind</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-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a>
+</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="nd">@property</span>
+</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="k">def</span> <span class="nf">side</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-2251"><a href="#L-2251"><span class="linenos">2251</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a>
+</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a> <span class="nd">@property</span>
+</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a> <span class="k">def</span> <span class="nf">hint</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-2255"><a href="#L-2255"><span class="linenos">2255</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a>
+</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a> <span class="nd">@property</span>
+</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</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">alias_or_name</span>
+</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a>
+</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</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-2266"><a href="#L-2266"><span class="linenos">2266</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a>
+</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a><span class="sd"> Example:</span>
+</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
+</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a>
+</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="sd"> Args:</span>
+</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a>
+</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
+</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a> <span class="p">)</span>
+</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a>
+</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
+</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a>
+</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> <span class="k">return</span> <span class="n">join</span>
</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a>
-</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a><span class="sd"> Returns:</span>
-</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
-</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a> <span class="p">)</span>
-</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a>
-</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
-</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</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-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a>
+</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a><span class="sd"> Example:</span>
+</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
+</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a>
-</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a>
-</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a>
-</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</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-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a> <span class="s2">&quot;cross_apply&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># True -&gt; CROSS APPLY, False -&gt; OUTER APPLY</span>
-</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a> <span class="p">}</span>
-</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a>
-</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a>
-</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a><span class="k">class</span> <span class="nc">MatchRecognizeMeasure</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</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-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="s2">&quot;window_frame&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> <span class="p">}</span>
-</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a>
-</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a>
-</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="s2">&quot;measures&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="s2">&quot;define&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a> <span class="p">}</span>
-</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a>
-</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a>
-</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
-</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
-</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="k">pass</span>
+</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a><span class="sd"> Args:</span>
+</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a>
+</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a><span class="sd"> Returns:</span>
+</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
+</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="p">)</span>
+</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a>
+</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
+</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a>
+</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a>
+</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a>
+</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
+</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</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-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a> <span class="s2">&quot;cross_apply&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># True -&gt; CROSS APPLY, False -&gt; OUTER APPLY</span>
+</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="p">}</span>
+</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a>
</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a>
-</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a>
-</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="n">arg_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">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-2362"><a href="#L-2362"><span class="linenos">2362</span></a>
-</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a>
-</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;interpolate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;siblings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="p">}</span>
-</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a>
-</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a>
-</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier</span>
-</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a><span class="k">class</span> <span class="nc">WithFill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">False</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-2376"><a href="#L-2376"><span class="linenos">2376</span></a>
+</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a><span class="k">class</span> <span class="nc">MatchRecognizeMeasure</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</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-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="s2">&quot;window_frame&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a> <span class="p">}</span>
+</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a>
+</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a>
+</span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="s2">&quot;measures&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a> <span class="s2">&quot;define&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a> <span class="p">}</span>
</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a>
-</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a><span class="c1"># hive specific sorts</span>
-</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
-</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
-</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a> <span class="k">pass</span>
-</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a>
+</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a>
+</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
+</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
+</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="k">pass</span>
</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a>
-</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
-</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a> <span class="k">pass</span>
-</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a>
+</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a>
+</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="n">arg_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">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-2387"><a href="#L-2387"><span class="linenos">2387</span></a>
-</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
-</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="k">pass</span>
-</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a>
-</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a>
-</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with_fill&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a>
-</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a>
-</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a>
-</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a>
-</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a>
+</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="s2">&quot;interpolate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="s2">&quot;siblings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a> <span class="p">}</span>
+</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a>
+</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a>
+</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier</span>
+</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a><span class="k">class</span> <span class="nc">WithFill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">False</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-2401"><a href="#L-2401"><span class="linenos">2401</span></a>
</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a>
-</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a>
-</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a>
+</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a><span class="c1"># hive specific sorts</span>
+</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
+</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a> <span class="k">pass</span>
</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a>
-</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a><span class="c1"># https://docs.aws.amazon.com/prescriptive-guidance/latest/materialized-views-redshift/refreshing-materialized-views.html</span>
-</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a><span class="k">class</span> <span class="nc">AutoRefreshProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a>
+</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> <span class="k">pass</span>
</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a>
</span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a>
-</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a><span class="k">class</span> <span class="nc">BackupProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="k">pass</span>
</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a>
</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a>
-</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="s2">&quot;always&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a> <span class="p">}</span>
-</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a>
-</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a>
-</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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">True</span><span class="p">}</span>
-</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a>
-</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a>
-</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a> <span class="n">arg_types</span> <span class="o">=</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 class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a>
-</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a>
-</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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-2417"><a href="#L-2417"><span class="linenos">2417</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with_fill&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a>
+</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a>
+</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a>
+</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a>
+</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a>
+</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a>
+</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a>
+</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a>
+</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a><span class="c1"># https://docs.aws.amazon.com/prescriptive-guidance/latest/materialized-views-redshift/refreshing-materialized-views.html</span>
+</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a><span class="k">class</span> <span class="nc">AutoRefreshProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a>
</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a>
-</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a>
-</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a><span class="k">class</span> <span class="nc">BackupProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a>
</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a>
-</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a>
-</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="p">}</span>
+</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="s2">&quot;always&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> <span class="p">}</span>
+</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a>
</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a>
-</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a>
-</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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">True</span><span class="p">}</span>
+</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a>
</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a>
-</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a>
-</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a> <span class="n">arg_types</span> <span class="o">=</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 class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a>
</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a>
-</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a>
-</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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-2462"><a href="#L-2462"><span class="linenos">2462</span></a>
</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a>
-</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a>
-</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a>
</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a>
-</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a>
-</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a>
-</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a>
-</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a>
+</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a> <span class="p">}</span>
</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a>
-</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a>
+</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a>
+</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a>
-</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> <span class="n">arg_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-2483"><a href="#L-2483"><span class="linenos">2483</span></a>
+</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a>
+</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a>
-</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;protection&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a>
+</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a>
+</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</span></a>
-</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a>
+</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a>
+</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a>
-</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a>
+</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a>
+</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a>
-</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a><span class="k">class</span> <span class="nc">GlobalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a>
+</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a>
+</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a>
-</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a><span class="k">class</span> <span class="nc">IcebergProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a>
+</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a>
+</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a>
-</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a><span class="k">class</span> <span class="nc">InheritsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</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-2507"><a href="#L-2507"><span class="linenos">2507</span></a>
+</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a>
+</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="n">arg_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-2508"><a href="#L-2508"><span class="linenos">2508</span></a>
-</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a>
+</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a>
+</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;protection&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a>
-</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a>
+</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a>
+</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a>
-</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a>
+</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a>
+</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a>
-</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a> <span class="p">}</span>
+</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a>
+</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a><span class="k">class</span> <span class="nc">GlobalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a>
+</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a>
+</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a><span class="k">class</span> <span class="nc">IcebergProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a>
</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a>
-</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a>
-</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a><span class="k">class</span> <span class="nc">InheritsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</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-2532"><a href="#L-2532"><span class="linenos">2532</span></a>
</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a>
-</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a>
-</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a><span class="c1"># spark ddl</span>
-</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</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;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a>
-</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a>
-</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a>
-</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a>
-</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="k">pass</span>
-</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a>
-</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a>
-</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a>
-</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a>
-</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a><span class="c1"># Clickhouse CREATE ... ON CLUSTER modifier</span>
-</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/distributed-ddl</span>
-</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a>
-</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a>
-</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2560"><a href="#L-2560"><span class="linenos">2560</span></a>
-</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a>
-</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a>
+</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a>
+</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a>
+</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a>
+</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a>
+</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a>
+</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a> <span class="p">}</span>
+</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a>
+</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a>
+</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a>
+</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a>
+</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a><span class="c1"># spark ddl</span>
+</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</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;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a>
</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a>
-</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a>
-</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a><span class="k">class</span> <span class="nc">LockProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a>
</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a>
-</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a>
-</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> <span class="s2">&quot;lock_type&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a> <span class="s2">&quot;override&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a> <span class="p">}</span>
-</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a>
-</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a>
-</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> <span class="k">pass</span>
+</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a>
+</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a>
+</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a>
+</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a>
+</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a><span class="c1"># Clickhouse CREATE ... ON CLUSTER modifier</span>
+</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/distributed-ddl</span>
+</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a>
</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a>
-</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a>
-</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a> <span class="n">arg_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-2583"><a href="#L-2583"><span class="linenos">2583</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2585"><a href="#L-2585"><span class="linenos">2585</span></a>
</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a>
-</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a>
-</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a> <span class="n">arg_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;no&quot;</span><span class="p">:</span> <span class="kc">False</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 class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a>
</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a>
-</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a>
-</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a><span class="k">class</span> <span class="nc">LockProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a>
</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a>
-</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a>
-</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a>
-</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a>
-</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a>
+</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a> <span class="s2">&quot;lock_type&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="s2">&quot;override&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a> <span class="p">}</span>
</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a>
-</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a>
+</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a>
+</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a>
-</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a><span class="c1"># https://www.postgresql.org/docs/current/sql-createtable.html</span>
-</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
-</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</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-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="p">}</span>
-</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a>
-</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a>
-</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
-</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2622"><a href="#L-2622"><span class="linenos">2622</span></a>
+</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a>
+</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="n">arg_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-2611"><a href="#L-2611"><span class="linenos">2611</span></a>
+</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a>
+</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="n">arg_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;no&quot;</span><span class="p">:</span> <span class="kc">False</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 class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a>
+</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a>
+</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a>
+</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a>
+</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a>
-</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a>
+</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a>
+</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a>
-</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a>
+</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a>
+</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a>
-</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a>
-</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a>
-</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="p">}</span>
+</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a>
+</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a><span class="c1"># https://www.postgresql.org/docs/current/sql-createtable.html</span>
+</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
+</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</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-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="p">}</span>
+</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a>
+</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a>
+</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
+</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2647"><a href="#L-2647"><span class="linenos">2647</span></a>
</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a>
-</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a>
</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a>
-</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a><span class="c1"># https://spark.apache.org/docs/3.1.2/sql-ref-syntax-qry-select-transform.html</span>
-</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="p">}</span>
-</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a>
-</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a>
-</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a>
-</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a>
-</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a>
+</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a>
+</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a>
+</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a>
+</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="p">}</span>
</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a>
</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a>
-</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</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-2674"><a href="#L-2674"><span class="linenos">2674</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a>
</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a>
-</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;multi&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a>
-</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a>
-</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a><span class="k">class</span> <span class="nc">SharingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="n">arg_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-2684"><a href="#L-2684"><span class="linenos">2684</span></a>
-</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a>
-</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a><span class="k">class</span> <span class="nc">SetConfigProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a>
+</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a><span class="c1"># https://spark.apache.org/docs/3.1.2/sql-ref-syntax-qry-select-transform.html</span>
+</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="p">}</span>
</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a>
-</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</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-2692"><a href="#L-2692"><span class="linenos">2692</span></a>
+</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a>
+</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a>
-</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;compound&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a>
+</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a>
+</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a>
-</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a><span class="k">class</span> <span class="nc">SqlReadWriteProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a>
+</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a>
+</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</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-2701"><a href="#L-2701"><span class="linenos">2701</span></a>
-</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;definer&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a>
+</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a>
+</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;multi&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a>
-</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a><span class="k">class</span> <span class="nc">StabilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a>
+</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a>
+</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a><span class="k">class</span> <span class="nc">SharingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> <span class="n">arg_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-2709"><a href="#L-2709"><span class="linenos">2709</span></a>
-</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="n">arg_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-2712"><a href="#L-2712"><span class="linenos">2712</span></a>
+</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a>
+</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a><span class="k">class</span> <span class="nc">SetConfigProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a>
-</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</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-2716"><a href="#L-2716"><span class="linenos">2716</span></a>
+</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="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</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-2717"><a href="#L-2717"><span class="linenos">2717</span></a>
-</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a> <span class="n">arg_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-2720"><a href="#L-2720"><span class="linenos">2720</span></a>
+</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a>
+</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;compound&quot;</span><span class="p">:</span> <span class="kc">False</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="k">class</span> <span class="nc">UnloggedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a>
+</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a>
+</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a><span class="k">class</span> <span class="nc">SqlReadWriteProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a>
-</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a><span class="k">class</span> <span class="nc">ViewAttributeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</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="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;definer&quot;</span><span class="p">:</span> <span class="kc">True</span><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><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a><span class="k">class</span> <span class="nc">VolatileProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="n">arg_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-2731"><a href="#L-2731"><span class="linenos">2731</span></a><span class="k">class</span> <span class="nc">StabilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a>
</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="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;statistics&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="n">arg_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-2737"><a href="#L-2737"><span class="linenos">2737</span></a>
</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a>
-</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</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-2741"><a href="#L-2741"><span class="linenos">2741</span></a>
</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a>
-</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
-</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="n">arg_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-2743"><a href="#L-2743"><span class="linenos">2743</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="n">arg_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-2745"><a href="#L-2745"><span class="linenos">2745</span></a>
</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a>
-</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a>
-</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</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-2747"><a href="#L-2747"><span class="linenos">2747</span></a><span class="k">class</span> <span class="nc">UnloggedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a>
</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="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
-</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> <span class="s2">&quot;AUTO_INCREMENT&quot;</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span>
-</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="s2">&quot;CHARACTER SET&quot;</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span>
-</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
-</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="s2">&quot;COLLATE&quot;</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span>
-</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="s2">&quot;COMMENT&quot;</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span>
-</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a> <span class="s2">&quot;DEFINER&quot;</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span>
-</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="s2">&quot;DISTKEY&quot;</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span>
-</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a> <span class="s2">&quot;DISTSTYLE&quot;</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span>
-</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a> <span class="s2">&quot;ENGINE&quot;</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span>
-</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="s2">&quot;EXECUTE AS&quot;</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span>
-</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> <span class="s2">&quot;FORMAT&quot;</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span>
-</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> <span class="s2">&quot;LANGUAGE&quot;</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span>
-</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <span class="s2">&quot;LOCATION&quot;</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span>
-</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="s2">&quot;LOCK&quot;</span><span class="p">:</span> <span class="n">LockProperty</span><span class="p">,</span>
-</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="s2">&quot;PARTITIONED_BY&quot;</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span>
-</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <span class="s2">&quot;RETURNS&quot;</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span>
-</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="s2">&quot;ROW_FORMAT&quot;</span><span class="p">:</span> <span class="n">RowFormatProperty</span><span class="p">,</span>
-</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="s2">&quot;SORTKEY&quot;</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span>
-</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="p">}</span>
+</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a><span class="k">class</span> <span class="nc">ViewAttributeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</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><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a><span class="k">class</span> <span class="nc">VolatileProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="n">arg_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-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">WithDataProperty</span><span class="p">(</span><span class="n">Property</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;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;statistics&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a>
+</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="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a>
+</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 class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
+</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="n">arg_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-2771"><a href="#L-2771"><span class="linenos">2771</span></a>
</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="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</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">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a>
-</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a> <span class="c1">#</span>
-</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</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-2775"><a href="#L-2775"><span class="linenos">2775</span></a>
+</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
+</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="s2">&quot;AUTO_INCREMENT&quot;</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span>
+</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="s2">&quot;CHARACTER SET&quot;</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span>
+</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
+</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> <span class="s2">&quot;COLLATE&quot;</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span>
+</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a> <span class="s2">&quot;COMMENT&quot;</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span>
+</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="s2">&quot;DEFINER&quot;</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span>
+</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a> <span class="s2">&quot;DISTKEY&quot;</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span>
+</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a> <span class="s2">&quot;DISTSTYLE&quot;</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span>
+</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a> <span class="s2">&quot;ENGINE&quot;</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span>
+</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a> <span class="s2">&quot;EXECUTE AS&quot;</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span>
+</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a> <span class="s2">&quot;FORMAT&quot;</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span>
+</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="s2">&quot;LANGUAGE&quot;</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span>
+</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a> <span class="s2">&quot;LOCATION&quot;</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span>
+</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a> <span class="s2">&quot;LOCK&quot;</span><span class="p">:</span> <span class="n">LockProperty</span><span class="p">,</span>
+</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="s2">&quot;PARTITIONED_BY&quot;</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span>
+</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a> <span class="s2">&quot;RETURNS&quot;</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span>
+</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a> <span class="s2">&quot;ROW_FORMAT&quot;</span><span class="p">:</span> <span class="n">RowFormatProperty</span><span class="p">,</span>
+</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> <span class="s2">&quot;SORTKEY&quot;</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span>
+</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="p">}</span>
</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a>
-</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <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">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
-</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><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">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
-</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">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
-</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a>
-</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="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> <span class="k">pass</span>
-</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a>
-</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="k">class</span> <span class="nc">InputOutputFormat</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a>
-</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="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
-</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="k">pass</span>
+</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</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">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</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="c1"># CREATE property locations</span>
+</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> <span class="c1">#</span>
+</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a>
-</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">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a>
-</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">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</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-2830"><a href="#L-2830"><span class="linenos">2830</span></a>
-</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="n">unnest</span><span class="o">=</span><span class="p">(</span>
-</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="n">Unnest</span><span class="p">(</span>
-</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="p">]</span>
-</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="p">)</span>
-</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="p">),</span>
-</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="p">)</span>
-</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a>
+</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <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">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><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">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+</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">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
+</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a>
+</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">Qualify</span><span class="p">(</span><span class="n">Expression</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-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">InputOutputFormat</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a>
+</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="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
+</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</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><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</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-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="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="s2">&quot;match&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="s2">&quot;prewhere&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</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-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="s2">&quot;qualify&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> <span class="s2">&quot;windows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="s2">&quot;distribute&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="s2">&quot;sort&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="s2">&quot;cluster&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="s2">&quot;locks&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="s2">&quot;sample&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a><span class="p">}</span>
+</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="n">unnest</span><span class="o">=</span><span class="p">(</span>
+</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="n">Unnest</span><span class="p">(</span>
+</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a> <span class="p">]</span>
+</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="p">)</span>
+</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a> <span class="p">),</span>
+</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="p">)</span>
+</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a>
</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a>
-</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="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/option-clause-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-query?view=sql-server-ver16</span>
-</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a><span class="k">class</span> <span class="nc">QueryOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-ver16</span>
-</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</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-2891"><a href="#L-2891"><span class="linenos">2891</span></a>
-</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a>
-</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/index-hints.html</span>
-</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a>
-</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="c1"># https://docs.snowflake.com/en/sql-reference/constructs/at-before</span>
-</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a> <span class="s2">&quot;hints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a> <span class="s2">&quot;system_time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a> <span class="p">}</span>
+</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> <span class="s2">&quot;match&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="s2">&quot;connect&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="s2">&quot;prewhere&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</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-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="s2">&quot;qualify&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="s2">&quot;windows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> <span class="s2">&quot;distribute&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> <span class="s2">&quot;sort&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="s2">&quot;cluster&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="s2">&quot;locks&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="s2">&quot;sample&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a><span class="p">}</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><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/option-clause-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-query?view=sql-server-ver16</span>
+</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a><span class="k">class</span> <span class="nc">QueryOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-2911"><a href="#L-2911"><span class="linenos">2911</span></a>
+</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a>
+</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-ver16</span>
+</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</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-2916"><a href="#L-2916"><span class="linenos">2916</span></a>
+</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="c1"># https://dev.mysql.com/doc/refman/8.0/en/index-hints.html</span>
+</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> <span class="nd">@property</span>
-</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</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-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</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-2928"><a href="#L-2928"><span class="linenos">2928</span></a>
-</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="nd">@property</span>
-</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="k">def</span> <span class="nf">db</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-2931"><a href="#L-2931"><span class="linenos">2931</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
-</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a>
-</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a> <span class="nd">@property</span>
-</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="k">def</span> <span class="nf">catalog</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-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
-</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a>
-</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="nd">@property</span>
-</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a>
-</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> <span class="nd">@property</span>
-</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a>
-</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a> <span class="nd">@property</span>
-</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><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">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
-</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a>
-</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
-</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/constructs/at-before</span>
+</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</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><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="s2">&quot;hints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="s2">&quot;system_time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="p">}</span>
+</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a>
+</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="nd">@property</span>
+</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</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-2950"><a href="#L-2950"><span class="linenos">2950</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</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-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="nd">@property</span>
+</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="k">def</span> <span class="nf">db</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-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</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">return</span> <span class="n">parts</span>
-</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a>
-</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
-</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</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-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="k">return</span> <span class="n">col</span>
-</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a>
-</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a>
-</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
-</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</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-2973"><a href="#L-2973"><span class="linenos">2973</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-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a> <span class="p">}</span>
-</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 class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</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-2984"><a href="#L-2984"><span class="linenos">2984</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
-</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a> <span class="p">)</span>
-</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="nd">@property</span>
+</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="k">def</span> <span class="nf">catalog</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-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</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="nd">@property</span>
+</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="k">return</span> <span class="p">[]</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="nd">@property</span>
+</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="k">return</span> <span class="p">[]</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="nd">@property</span>
+</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><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">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
+</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</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 class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
+</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</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 class="k">return</span> <span class="n">parts</span>
+</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a>
+</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</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-2991"><a href="#L-2991"><span class="linenos">2991</span></a> <span class="k">return</span> <span class="n">col</span>
+</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><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="nd">@property</span>
-</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
-</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a>
-</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="nd">@property</span>
-</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</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">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
-</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a>
-</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="nd">@property</span>
-</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
-</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a>
-</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> <span class="nd">@property</span>
-</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</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-3009"><a href="#L-3009"><span class="linenos">3009</span></a>
-</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="nd">@property</span>
-</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</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-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><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
-</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> <span class="k">pass</span>
-</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a>
+</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
+</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</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-2998"><a href="#L-2998"><span class="linenos">2998</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-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="p">}</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 class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</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-3009"><a href="#L-3009"><span class="linenos">3009</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
+</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> <span class="p">)</span>
+</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="k">return</span> <span class="n">this</span>
</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a>
-</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
-</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> <span class="k">pass</span>
-</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a>
+</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a> <span class="nd">@property</span>
+</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a>
-</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="s2">&quot;alias&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 class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="p">}</span>
-</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="nd">@property</span>
-</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
-</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;offset&quot;</span><span class="p">)</span>
-</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="k">if</span> <span class="n">offset</span><span class="p">:</span>
-</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="n">columns</span> <span class="o">=</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="s2">&quot;offset&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">offset</span><span class="p">]</span>
-</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="k">return</span> <span class="n">columns</span>
-</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a>
+</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a> <span class="nd">@property</span>
+</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</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">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
+</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a>
+</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="nd">@property</span>
+</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a>
+</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a> <span class="nd">@property</span>
+</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</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-3034"><a href="#L-3034"><span class="linenos">3034</span></a>
+</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="nd">@property</span>
+</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</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-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 class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="s2">&quot;with&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;this&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;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="s2">&quot;from&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;where&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="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="p">}</span>
-</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a>
-</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="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="L-3053"><a href="#L-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;expressions&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-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">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
+</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="k">pass</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><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
+</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="k">pass</span>
+</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a>
+</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 class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
+</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="s2">&quot;offset&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 class="p">}</span>
</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a>
-</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a>
-</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> <span class="k">pass</span>
-</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a>
-</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a>
-</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
-</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
-</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
-</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
-</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
-</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
-</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
-</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</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="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a>
-</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 class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a> <span class="n">arg_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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a> <span class="nd">@property</span>
+</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;offset&quot;</span><span class="p">)</span>
+</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="k">if</span> <span class="n">offset</span><span class="p">:</span>
+</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a> <span class="n">columns</span> <span class="o">=</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="s2">&quot;offset&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">offset</span><span class="p">]</span>
+</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">return</span> <span class="n">columns</span>
+</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><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a> <span class="p">}</span>
+</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a>
</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a>
-</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a>
-</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/select.html</span>
-</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html</span>
-</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&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 class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a>
+</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
+</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</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;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</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><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="k">pass</span>
</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a>
-</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
-</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</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-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="p">}</span>
+</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a>
+</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
+</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
+</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
+</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
+</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
+</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
+</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
+</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a>
-</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
-</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a>
+</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="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="n">arg_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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a>
-</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a><span class="sd"> Example:</span>
-</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</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="sd"> Args:</span>
-</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
-</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a>
-</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
-</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a> <span class="p">)</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 class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
-</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</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-3133"><a href="#L-3133"><span class="linenos">3133</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a>
+</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/select.html</span>
+</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html</span>
+</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&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 class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a>
+</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a>
+</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
+</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</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-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a> <span class="p">}</span>
+</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a>
+</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a>
+</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a><span class="sd"> Example:</span>
+</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a>
+</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a><span class="sd"> Args:</span>
+</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a>
-</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a><span class="sd"> Example:</span>
-</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
-</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a>
-</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a><span class="sd"> Args:</span>
-</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
-</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
-</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</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-3158"><a href="#L-3158"><span class="linenos">3158</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a>
-</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
-</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
-</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">sort_by</span><span class="p">(</span>
-</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</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-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a>
-</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a><span class="sd"> Example:</span>
-</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a>
-</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a><span class="sd"> Args:</span>
-</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
+</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a> <span class="p">)</span>
+</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a>
+</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</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-3158"><a href="#L-3158"><span class="linenos">3158</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a>
+</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a><span class="sd"> Example:</span>
+</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
+</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
+</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a>
+</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</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-3183"><a href="#L-3183"><span class="linenos">3183</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</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">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
+</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
+</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a> <span class="p">)</span>
</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="sd"> Returns:</span>
-</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
-</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
-</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="p">)</span>
+</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</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-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a><span class="sd"> Set the SORT BY expression.</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 class="sd"> Example:</span>
+</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</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 class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
-</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</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-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</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="sd"> Example:</span>
-</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</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="sd"> Args:</span>
-</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a><span class="sd"> Args:</span>
+</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
+</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
+</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
+</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a> <span class="p">)</span>
</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="sd"> Returns:</span>
-</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
-</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
-</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a> <span class="p">)</span>
+</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</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-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a>
+</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a><span class="sd"> Example:</span>
+</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a>
-</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</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-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Expression</span><span class="p">,</span>
-</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">lateral</span><span class="p">(</span>
-</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</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-3276"><a href="#L-3276"><span class="linenos">3276</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a><span class="sd"> Append to or set the LATERAL expressions.</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="sd"> Example:</span>
-</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
-</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</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="sd"> Args:</span>
-</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Returns:</span>
-</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
-</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
-</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a> <span class="n">join_type</span><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-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</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-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a><span class="sd"> Append to or set the JOIN expressions.</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 class="sd"> Example:</span>
-</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
-</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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 class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
-</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</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="sd"> Use `join_type` to change the type of join:</span>
-</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="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
-</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</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 class="sd"> Args:</span>
-</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
-</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
-</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</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-3252"><a href="#L-3252"><span class="linenos">3252</span></a><span class="sd"> Args:</span>
+</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
+</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
+</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="p">)</span>
+</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a>
+</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</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-3282"><a href="#L-3282"><span class="linenos">3282</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Expression</span><span class="p">,</span>
+</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="p">)</span>
+</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">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</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-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a><span class="sd"> Append to or set the LATERAL expressions.</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 class="sd"> Example:</span>
+</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
+</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</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 class="sd"> Args:</span>
+</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
+</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
+</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <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 class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a> <span class="n">join_type</span><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-3342"><a href="#L-3342"><span class="linenos">3342</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</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-3344"><a href="#L-3344"><span class="linenos">3344</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</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="sd"> Example:</span>
+</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
+</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</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="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
+</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a>
-</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</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">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
-</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</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">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a><span class="sd"> Use `join_type` to change the type of join:</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="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
+</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a>
-</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</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-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">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
-</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</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">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a> <span class="n">method</span><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">Token</span><span class="p">]</span>
-</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="n">side</span><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">Token</span><span class="p">]</span>
-</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="n">kind</span><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">Token</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 class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</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 class="k">if</span> <span class="n">method</span><span class="p">:</span>
-</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</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">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
-</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">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
-</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> <span class="p">)</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 class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
+</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a><span class="sd"> Args:</span>
+</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</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="sd"> Returns:</span>
+</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</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-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 class="k">try</span><span class="p">:</span>
+</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</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">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</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">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</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="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</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-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">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
+</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</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 class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="n">method</span><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">Token</span><span class="p">]</span>
+</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> <span class="n">side</span><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">Token</span><span class="p">]</span>
+</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a> <span class="n">kind</span><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">Token</span><span class="p">]</span>
+</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="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</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">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
-</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> <span class="p">)</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">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</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-3413"><a href="#L-3413"><span class="linenos">3413</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a>
-</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a><span class="sd"> Example:</span>
-</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
-</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
-</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a>
-</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a><span class="sd"> Args:</span>
-</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
+</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a>
+</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
+</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a>
+</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
+</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <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">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
+</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a>
+</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
+</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a> <span class="p">)</span>
</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="sd"> Returns:</span>
-</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">having</span><span class="p">(</span>
-</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</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-3452"><a href="#L-3452"><span class="linenos">3452</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</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-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a><span class="sd"> Append to or set the WHERE expressions.</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 class="sd"> Example:</span>
+</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
+</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a>
+</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a><span class="sd"> Args:</span>
+</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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 class="sd"> Example:</span>
-</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
-</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
-</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a>
-</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a><span class="sd"> Args:</span>
-</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a> <span class="p">)</span>
</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="sd"> Returns:</span>
-</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
-</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a> <span class="p">)</span>
-</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">def</span> <span class="nf">window</span><span class="p">(</span>
-</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</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-3491"><a href="#L-3491"><span class="linenos">3491</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
-</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <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 class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
-</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</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-3510"><a href="#L-3510"><span class="linenos">3510</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
-</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="p">)</span>
-</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a>
-</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
-</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</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-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a><span class="sd"> Append to or set the HAVING expressions.</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 class="sd"> Example:</span>
+</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
+</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</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 class="sd"> Args:</span>
+</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a><span class="sd"> opts: other options to use to parse the input expressions.</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="sd"> Returns:</span>
+</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
+</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</span></a> <span class="p">)</span>
+</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 class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</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-3516"><a href="#L-3516"><span class="linenos">3516</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
+</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a> <span class="p">)</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 class="sd"> Example:</span>
-</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</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 class="sd"> Args:</span>
-</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</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="sd"> Returns:</span>
-</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="n">on</span> <span class="o">=</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">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a> <span class="k">return</span> <span class="n">instance</span>
-</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">def</span> <span class="nf">ctas</span><span class="p">(</span>
-</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> <span class="n">properties</span><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">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</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-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</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 class="sd"> Example:</span>
-</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
-</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</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 class="sd"> Args:</span>
-</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
-</span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a><span class="sd"> properties: an optional mapping of table properties</span>
-</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
-</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
-</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a>
-</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a><span class="sd"> Returns:</span>
-</span><span id="L-3571"><a href="#L-3571"><span class="linenos">3571</span></a><span class="sd"> The new Create expression.</span>
-</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="n">table_expression</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-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 class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
-</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a>
-</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
-</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;TABLE&quot;</span><span class="p">,</span>
-</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
-</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a> <span class="p">)</span>
+</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</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-3535"><a href="#L-3535"><span class="linenos">3535</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
+</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a> <span class="p">)</span>
+</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a>
+</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a><span class="sd"> Set the OFFSET expression.</span>
+</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="sd"> Example:</span>
+</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</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="sd"> Args:</span>
+</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</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 class="sd"> Returns:</span>
+</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a> <span class="n">on</span> <span class="o">=</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">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="k">return</span> <span class="n">instance</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 class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</span></a> <span class="n">properties</span><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">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</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-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
+</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</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="sd"> Example:</span>
+</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</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">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</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="sd"> Examples:</span>
-</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
-</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a><span class="sd"> Args:</span>
+</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
</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="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
-</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</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 class="sd"> Args:</span>
-</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
-</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</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 class="sd"> Returns:</span>
-</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</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 class="k">return</span> <span class="n">inst</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 class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a><span class="sd"> Set hints for this expression.</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 class="sd"> Examples:</span>
-</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
-</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</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 class="sd"> Args:</span>
-</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
-</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
-</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</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 class="sd"> Returns:</span>
-</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a><span class="sd"> The modified expression.</span>
-</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
-</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <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 class="k">return</span> <span class="n">inst</span>
-</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a>
-</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="nd">@property</span>
-</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
-</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="nd">@property</span>
-</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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="nd">@property</span>
-</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</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-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><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a><span class="n">UNWRAPPED_QUERIES</span> <span class="o">=</span> <span class="p">(</span><span class="n">Select</span><span class="p">,</span> <span class="n">Union</span><span class="p">)</span>
+</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="n">table_expression</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-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="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
+</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">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
+</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;TABLE&quot;</span><span class="p">,</span>
+</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
+</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a> <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 class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a><span class="sd"> Set the locking read mode for this expression.</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 class="sd"> Examples:</span>
+</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
+</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</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 class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
+</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</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="sd"> Args:</span>
+</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
+</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a>
+</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
+</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">return</span> <span class="n">inst</span>
+</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a>
+</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a><span class="sd"> Set hints for this expression.</span>
+</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a>
+</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a><span class="sd"> Examples:</span>
+</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
+</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</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="sd"> Args:</span>
+</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
+</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
+</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a>
-</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a>
-</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Query</span><span class="p">):</span>
-</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</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-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a> <span class="p">}</span>
-</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a>
-</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the first non subquery.&quot;&quot;&quot;</span>
-</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
-</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="k">return</span> <span class="n">expression</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">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
-</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
-</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a><span class="sd"> Returns:</span>
+</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a><span class="sd"> The modified expression.</span>
+</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
+</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="p">)</span>
+</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a>
+</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> <span class="k">return</span> <span class="n">inst</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 class="nd">@property</span>
+</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
+</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a>
+</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="nd">@property</span>
+</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
+</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a>
+</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> <span class="nd">@property</span>
+</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</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-3670"><a href="#L-3670"><span class="linenos">3670</span></a>
-</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</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-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> <span class="k">return</span> <span class="n">this</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 class="n">UNWRAPPED_QUERIES</span> <span class="o">=</span> <span class="p">(</span><span class="n">Select</span><span class="p">,</span> <span class="n">Union</span><span class="p">)</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">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Query</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><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</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-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> <span class="p">}</span>
</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="nd">@property</span>
-</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</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 class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
-</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a><span class="sd"> ^</span>
-</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
-</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</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="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</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 class="nd">@property</span>
-</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</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">is_star</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 class="nd">@property</span>
-</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</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-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">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</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-3707"><a href="#L-3707"><span class="linenos">3707</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="s2">&quot;bucket_numerator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="s2">&quot;bucket_denominator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="s2">&quot;bucket_field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a> <span class="s2">&quot;rows&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;size&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;seed&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-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">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tags are used for generating arbitrary sql like SELECT &lt;span&gt;x&lt;/span&gt;.&quot;&quot;&quot;</span>
-</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a>
-</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="s2">&quot;postfix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="p">}</span>
+</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the first non subquery.&quot;&quot;&quot;</span>
+</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
+</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="k">return</span> <span class="n">expression</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 class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
+</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
+</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> <span class="k">return</span> <span class="n">expression</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 class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</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-3701"><a href="#L-3701"><span class="linenos">3701</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a> <span class="k">return</span> <span class="n">this</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 class="nd">@property</span>
+</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
+</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a>
+</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
+</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a><span class="sd"> ^</span>
+</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
+</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</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="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</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="nd">@property</span>
+</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</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">is_star</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="nd">@property</span>
+</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</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-3726"><a href="#L-3726"><span class="linenos">3726</span></a>
</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a>
-</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a><span class="c1"># Represents both the standard SQL PIVOT operator and DuckDB&#39;s &quot;simplified&quot; PIVOT syntax</span>
-</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a><span class="c1"># https://duckdb.org/docs/sql/statements/pivot</span>
-</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="s2">&quot;alias&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 class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</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-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</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-3739"><a href="#L-3739"><span class="linenos">3739</span></a> <span class="s2">&quot;columns&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 class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a> <span class="p">}</span>
+</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</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-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="s2">&quot;bucket_numerator&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 class="s2">&quot;bucket_denominator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a> <span class="s2">&quot;bucket_field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a> <span class="s2">&quot;seed&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 class="p">}</span>
+</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><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> <span class="nd">@property</span>
-</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</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><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</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-3751"><a href="#L-3751"><span class="linenos">3751</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a> <span class="s2">&quot;spec&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 class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a> <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">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="s2">&quot;start_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a> <span class="s2">&quot;end_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a> <span class="p">}</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">PreWhere</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a> <span class="k">pass</span>
+</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tags are used for generating arbitrary sql like SELECT &lt;span&gt;x&lt;/span&gt;.&quot;&quot;&quot;</span>
+</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a>
+</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> <span class="s2">&quot;postfix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a> <span class="p">}</span>
+</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><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a><span class="c1"># Represents both the standard SQL PIVOT operator and DuckDB&#39;s &quot;simplified&quot; PIVOT syntax</span>
+</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a><span class="c1"># https://duckdb.org/docs/sql/statements/pivot</span>
+</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</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-3760"><a href="#L-3760"><span class="linenos">3760</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-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</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-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a> <span class="p">}</span>
+</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="nd">@property</span>
+</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
+</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><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">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a> <span class="k">pass</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">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;except&quot;</span><span class="p">:</span> <span class="kc">False</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-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 class="nd">@property</span>
-</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</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-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</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-3776"><a href="#L-3776"><span class="linenos">3776</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a> <span class="s2">&quot;spec&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a> <span class="s2">&quot;first&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 class="p">}</span>
+</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><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a> <span class="nd">@property</span>
-</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</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-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">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3792"><a href="#L-3792"><span class="linenos">3792</span></a>
+</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="s2">&quot;kind&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 class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a> <span class="s2">&quot;start_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="s2">&quot;end_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a> <span class="p">}</span>
</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">SessionParameter</span><span class="p">(</span><span class="n">Condition</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-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">class</span> <span class="nc">PreWhere</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="k">pass</span>
</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">Placeholder</span><span class="p">(</span><span class="n">Condition</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">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><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 class="nd">@property</span>
-</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</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-3803"><a href="#L-3803"><span class="linenos">3803</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">&quot;?&quot;</span>
-</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a>
+</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a>
+</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a> <span class="k">pass</span>
+</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><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3804"><a href="#L-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;except&quot;</span><span class="p">:</span> <span class="kc">False</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-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">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</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-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="nd">@property</span>
-</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</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-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
-</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a>
+</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="nd">@property</span>
+</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</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-3808"><a href="#L-3808"><span class="linenos">3808</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a>
+</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="nd">@property</span>
+</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</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-3813"><a href="#L-3813"><span class="linenos">3813</span></a>
-</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> <span class="k">pass</span>
-</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a>
+</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 class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3817"><a href="#L-3817"><span class="linenos">3817</span></a>
-</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</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="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3820"><a href="#L-3820"><span class="linenos">3820</span></a>
-</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a> <span class="nd">@property</span>
-</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</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-3823"><a href="#L-3823"><span class="linenos">3823</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-3824"><a href="#L-3824"><span class="linenos">3824</span></a>
+</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a>
+</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><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 class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</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-3829"><a href="#L-3829"><span class="linenos">3829</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-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="s2">&quot;nested&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="p">}</span>
-</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a>
-</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="n">AGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a> <span class="n">SIMPLEAGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a> <span class="n">BPCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="n">DATE32</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="n">IPV4</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a> <span class="n">IPV6</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="n">NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</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-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
-</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a>
-</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="n">STRUCT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NESTED</span><span class="p">,</span>
-</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span>
-</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span>
-</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="p">}</span>
-</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a>
-</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="n">NESTED_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="o">*</span><span class="n">STRUCT_TYPES</span><span class="p">,</span>
-</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span>
-</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MAP</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><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NAME</span><span class="p">,</span>
-</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="p">}</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 class="n">SIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
-</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
-</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMINT</span><span class="p">,</span>
-</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="p">}</span>
-</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a>
-</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a> <span class="n">UNSIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span>
-</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span>
-</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT128</span><span class="p">,</span>
-</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT256</span><span class="p">,</span>
-</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UMEDIUMINT</span><span class="p">,</span>
-</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span>
-</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span>
-</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a> <span class="p">}</span>
-</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a>
-</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="o">*</span><span class="n">SIGNED_INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="o">*</span><span class="n">UNSIGNED_INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</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><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a> <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">REAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
-</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGDECIMAL</span><span class="p">,</span>
-</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span>
-</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span>
-</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span>
-</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UDECIMAL</span><span class="p">,</span>
-</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="p">}</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 class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a> <span class="o">*</span><span class="n">REAL_TYPES</span><span class="p">,</span>
-</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a> <span class="p">}</span>
-</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a>
-</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE32</span><span class="p">,</span>
-</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
-</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
-</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
-</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
-</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
-</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
-</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a> <span class="p">}</span>
-</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a>
-</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a> <span class="bp">cls</span><span class="p">,</span>
-</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</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-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <span class="n">udt</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-4027"><a href="#L-4027"><span class="linenos">4027</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</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"> Constructs a DataType object.</span>
+</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a> <span class="nd">@property</span>
+</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</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-3828"><a href="#L-3828"><span class="linenos">3828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">&quot;?&quot;</span>
+</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><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</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-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="nd">@property</span>
+</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</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-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
+</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a>
+</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a>
+</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="k">pass</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><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-3845"><a href="#L-3845"><span class="linenos">3845</span></a>
+</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a> <span class="nd">@property</span>
+</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</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-3848"><a href="#L-3848"><span class="linenos">3848</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-3849"><a href="#L-3849"><span class="linenos">3849</span></a>
+</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a>
+</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</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-3854"><a href="#L-3854"><span class="linenos">3854</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-3855"><a href="#L-3855"><span class="linenos">3855</span></a> <span class="s2">&quot;nested&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="p">}</span>
+</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">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">AGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> <span class="n">SIMPLEAGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">BPCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a> <span class="n">DATE32</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="n">IPV4</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a> <span class="n">IPV6</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="n">NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="n">TIMESTAMPNTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</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-3956"><a href="#L-3956"><span class="linenos">3956</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
+</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">TDIGEST</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a>
+</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a> <span class="n">STRUCT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NESTED</span><span class="p">,</span>
+</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span>
+</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">STRUCT</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><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="n">NESTED_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a> <span class="o">*</span><span class="n">STRUCT_TYPES</span><span class="p">,</span>
+</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span>
+</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span>
+</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="p">}</span>
+</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a>
+</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NAME</span><span class="p">,</span>
+</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a> <span class="p">}</span>
+</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="n">SIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
+</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
+</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMINT</span><span class="p">,</span>
+</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a> <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="n">UNSIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span>
+</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span>
+</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT128</span><span class="p">,</span>
+</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT256</span><span class="p">,</span>
+</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UMEDIUMINT</span><span class="p">,</span>
+</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span>
+</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span>
+</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="p">}</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="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="o">*</span><span class="n">SIGNED_INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a> <span class="o">*</span><span class="n">UNSIGNED_INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span>
+</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a> <span class="p">}</span>
+</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a>
+</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a> <span class="p">}</span>
+</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a>
+</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a> <span class="n">REAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
+</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGDECIMAL</span><span class="p">,</span>
+</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span>
+</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span>
+</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span>
+</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UDECIMAL</span><span class="p">,</span>
+</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <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 class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a> <span class="o">*</span><span class="n">REAL_TYPES</span><span class="p">,</span>
+</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a> <span class="p">}</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"> Args:</span>
-</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a><span class="sd"> dtype: the data type of interest.</span>
-</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
-</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
-</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
-</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a><span class="sd"> copy: whether to copy the data type.</span>
-</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a><span class="sd"> kwargs: additional arguments to pass in the constructor of DataType.</span>
-</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a>
-</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a><span class="sd"> The constructed DataType object.</span>
-</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</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-4045"><a href="#L-4045"><span class="linenos">4045</span></a>
-</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</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-4047"><a href="#L-4047"><span class="linenos">4047</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="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
-</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a> <span class="k">return</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="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a>
-</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
-</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a> <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 class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
-</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a> <span class="p">)</span>
-</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
-</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a> <span class="k">return</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="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a> <span class="k">raise</span>
-</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</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-4059"><a href="#L-4059"><span class="linenos">4059</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-4060"><a href="#L-4060"><span class="linenos">4060</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-4061"><a href="#L-4061"><span class="linenos">4061</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4063"><a href="#L-4063"><span class="linenos">4063</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-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">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-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 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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
-</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</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"> Args:</span>
-</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
-</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</span></a>
-</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
-</span><span id="L-4077"><a href="#L-4077"><span class="linenos">4077</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
-</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a>
-</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a> <span class="p">):</span>
-</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
-</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</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">if</span> <span class="n">matches</span><span class="p">:</span>
-</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a> <span class="k">return</span> <span class="kc">False</span>
-</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a>
+</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE32</span><span class="p">,</span>
+</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
+</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
+</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPNTZ</span><span class="p">,</span>
+</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
+</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
+</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
+</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
+</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a> <span class="p">}</span>
+</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a>
+</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a> <span class="bp">cls</span><span class="p">,</span>
+</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</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-4054"><a href="#L-4054"><span class="linenos">4054</span></a> <span class="n">udt</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-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a><span class="sd"> Constructs a DataType object.</span>
+</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a>
+</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a><span class="sd"> Args:</span>
+</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a><span class="sd"> dtype: the data type of interest.</span>
+</span><span id="L-4063"><a href="#L-4063"><span class="linenos">4063</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
+</span><span id="L-4064"><a href="#L-4064"><span class="linenos">4064</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
+</span><span id="L-4065"><a href="#L-4065"><span class="linenos">4065</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
+</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</span></a><span class="sd"> copy: whether to copy the data type.</span>
+</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a><span class="sd"> kwargs: additional arguments to pass in the constructor of DataType.</span>
+</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a>
+</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="sd"> The constructed DataType object.</span>
+</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</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-4073"><a href="#L-4073"><span class="linenos">4073</span></a>
+</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</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-4075"><a href="#L-4075"><span class="linenos">4075</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="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
+</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a> <span class="k">return</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="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</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 class="k">try</span><span class="p">:</span>
+</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
+</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a> <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 class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
+</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a> <span class="p">)</span>
+</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
+</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="k">return</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="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a> <span class="k">raise</span>
+</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</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-4087"><a href="#L-4087"><span class="linenos">4087</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-4088"><a href="#L-4088"><span class="linenos">4088</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-4089"><a href="#L-4089"><span class="linenos">4089</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</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-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">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-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="n">DATA_TYPE</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</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-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><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
-</span><span id="L-4099"><a href="#L-4099"><span class="linenos">4099</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a>
+</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
+</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="L-4099"><a href="#L-4099"><span class="linenos">4099</span></a>
+</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a><span class="sd"> Args:</span>
+</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a>
-</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-oid.html</span>
-</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</span></a>
-</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a>
-</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
-</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</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-4110"><a href="#L-4110"><span class="linenos">4110</span></a> <span class="k">pass</span>
-</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a>
-</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a>
-</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</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-4114"><a href="#L-4114"><span class="linenos">4114</span></a> <span class="k">pass</span>
-</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a>
-</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="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-4118"><a href="#L-4118"><span class="linenos">4118</span></a> <span class="k">pass</span>
-</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a>
-</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a>
-</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</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-4122"><a href="#L-4122"><span class="linenos">4122</span></a> <span class="k">pass</span>
-</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a>
+</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
+</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
+</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</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="k">if</span> <span class="p">(</span>
+</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</span></a> <span class="p">):</span>
+</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
+</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4116"><a href="#L-4116"><span class="linenos">4116</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
+</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a>
+</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
+</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a>
+</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="n">DATA_TYPE</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</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-4124"><a href="#L-4124"><span class="linenos">4124</span></a>
-</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
-</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
-</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</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-4128"><a href="#L-4128"><span class="linenos">4128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4125"><a href="#L-4125"><span class="linenos">4125</span></a>
+</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
+</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a>
</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="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-4132"><a href="#L-4132"><span class="linenos">4132</span></a> <span class="n">arg_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 class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a>
+</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-oid.html</span>
+</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a>
-</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</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-4136"><a href="#L-4136"><span class="linenos">4136</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a>
-</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="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-4140"><a href="#L-4140"><span class="linenos">4140</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a>
-</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a>
-</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</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-4144"><a href="#L-4144"><span class="linenos">4144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</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-4146"><a href="#L-4146"><span class="linenos">4146</span></a> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a> <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 class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
+</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</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-4138"><a href="#L-4138"><span class="linenos">4138</span></a> <span class="k">pass</span>
+</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a>
+</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="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-4142"><a href="#L-4142"><span class="linenos">4142</span></a> <span class="k">pass</span>
+</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</span></a>
+</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="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-4146"><a href="#L-4146"><span class="linenos">4146</span></a> <span class="k">pass</span>
+</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a>
+</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a>
+</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</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-4150"><a href="#L-4150"><span class="linenos">4150</span></a> <span class="k">pass</span>
</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a>
</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="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-4154"><a href="#L-4154"><span class="linenos">4154</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-4155"><a href="#L-4155"><span class="linenos">4155</span></a>
-</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a>
-</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</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-4158"><a href="#L-4158"><span class="linenos">4158</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-4159"><a href="#L-4159"><span class="linenos">4159</span></a>
-</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a>
-</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
-</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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="nd">@property</span>
-</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</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-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="nd">@property</span>
-</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</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-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><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</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-4175"><a href="#L-4175"><span class="linenos">4175</span></a> <span class="k">pass</span>
-</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a>
-</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="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a> <span class="k">pass</span>
+</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
+</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
+</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</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-4156"><a href="#L-4156"><span class="linenos">4156</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4157"><a href="#L-4157"><span class="linenos">4157</span></a>
+</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a>
+</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</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-4160"><a href="#L-4160"><span class="linenos">4160</span></a> <span class="n">arg_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 class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a>
+</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a>
+</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</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-4164"><a href="#L-4164"><span class="linenos">4164</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a>
+</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a>
+</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</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-4168"><a href="#L-4168"><span class="linenos">4168</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</span></a>
+</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</span></a>
+</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</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-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</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-4174"><a href="#L-4174"><span class="linenos">4174</span></a> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a> <span class="p">}</span>
+</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a>
</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a>
-</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a>
-</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</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-4183"><a href="#L-4183"><span class="linenos">4183</span></a> <span class="k">pass</span>
+</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</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-4182"><a href="#L-4182"><span class="linenos">4182</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-4183"><a href="#L-4183"><span class="linenos">4183</span></a>
</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</span></a>
-</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a>
-</span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</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-4187"><a href="#L-4187"><span class="linenos">4187</span></a> <span class="k">pass</span>
+</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</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-4186"><a href="#L-4186"><span class="linenos">4186</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-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><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</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-4191"><a href="#L-4191"><span class="linenos">4191</span></a> <span class="k">pass</span>
+</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
+</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</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-4195"><a href="#L-4195"><span class="linenos">4195</span></a> <span class="k">pass</span>
+</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a> <span class="nd">@property</span>
+</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</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-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><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</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-4199"><a href="#L-4199"><span class="linenos">4199</span></a> <span class="k">pass</span>
+</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a> <span class="nd">@property</span>
+</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</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-4200"><a href="#L-4200"><span class="linenos">4200</span></a>
</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 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-4202"><a href="#L-4202"><span class="linenos">4202</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-4203"><a href="#L-4203"><span class="linenos">4203</span></a> <span class="k">pass</span>
</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a>
</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a>
-</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</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-4206"><a href="#L-4206"><span class="linenos">4206</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><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a> <span class="k">pass</span>
</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a>
</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a>
-</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</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-4211"><a href="#L-4211"><span class="linenos">4211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</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-4211"><a href="#L-4211"><span class="linenos">4211</span></a> <span class="k">pass</span>
</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a>
</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a>
-</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</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-4214"><a href="#L-4214"><span class="linenos">4214</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-4215"><a href="#L-4215"><span class="linenos">4215</span></a> <span class="k">pass</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><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</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-4219"><a href="#L-4219"><span class="linenos">4219</span></a> <span class="nd">@property</span>
-</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</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">is_star</span>
-</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a>
-</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a> <span class="nd">@property</span>
-</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</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-4225"><a href="#L-4225"><span class="linenos">4225</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-4226"><a href="#L-4226"><span class="linenos">4226</span></a>
-</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a> <span class="nd">@property</span>
-</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</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-4230"><a href="#L-4230"><span class="linenos">4230</span></a>
-</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
-</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
-</span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
+</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</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-4219"><a href="#L-4219"><span class="linenos">4219</span></a> <span class="k">pass</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">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a> <span class="k">pass</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><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</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-4227"><a href="#L-4227"><span class="linenos">4227</span></a> <span class="k">pass</span>
+</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a>
+</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="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-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="k">pass</span>
+</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a>
+</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a>
+</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</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-4235"><a href="#L-4235"><span class="linenos">4235</span></a> <span class="k">pass</span>
</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a>
-</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
-</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a>
-</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="nd">@property</span>
-</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</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="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a>
+</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</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-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-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">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a> <span class="k">pass</span>
+</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a>
</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="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">COLUMN_PARTS</span><span class="p">:</span>
-</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</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-4248"><a href="#L-4248"><span class="linenos">4248</span></a>
-</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a>
-</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</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-4247"><a href="#L-4247"><span class="linenos">4247</span></a> <span class="nd">@property</span>
+</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</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">is_star</span>
+</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a>
+</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a> <span class="nd">@property</span>
+</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</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-4253"><a href="#L-4253"><span class="linenos">4253</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-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="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-4257"><a href="#L-4257"><span class="linenos">4257</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a> <span class="nd">@property</span>
+</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</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-4258"><a href="#L-4258"><span class="linenos">4258</span></a>
-</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="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-4261"><a href="#L-4261"><span class="linenos">4261</span></a> <span class="k">pass</span>
-</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a>
-</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="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-4265"><a href="#L-4265"><span class="linenos">4265</span></a> <span class="k">pass</span>
+</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
+</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
+</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
+</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a>
+</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a>
-</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a>
-</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</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-4269"><a href="#L-4269"><span class="linenos">4269</span></a> <span class="k">pass</span>
-</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a>
+</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a> <span class="nd">@property</span>
+</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a>
-</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="c1"># Represents e.g. := in DuckDB which is mostly used for setting parameters</span>
-</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a> <span class="k">pass</span>
-</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a>
+</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a>
+</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">COLUMN_PARTS</span><span class="p">:</span>
+</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</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-4276"><a href="#L-4276"><span class="linenos">4276</span></a>
-</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</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-4278"><a href="#L-4278"><span class="linenos">4278</span></a> <span class="k">pass</span>
+</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</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><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</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-4282"><a href="#L-4282"><span class="linenos">4282</span></a> <span class="k">pass</span>
+</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a>
</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><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</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-4286"><a href="#L-4286"><span class="linenos">4286</span></a> <span class="k">pass</span>
+</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</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-4285"><a href="#L-4285"><span class="linenos">4285</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a>
</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a>
-</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a>
-</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</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-4290"><a href="#L-4290"><span class="linenos">4290</span></a> <span class="k">pass</span>
+</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</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-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="k">pass</span>
+</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a>
</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a>
-</span><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 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-4294"><a href="#L-4294"><span class="linenos">4294</span></a> <span class="k">pass</span>
+</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</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-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="k">pass</span>
+</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a>
</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a>
-</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a>
-</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</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-4298"><a href="#L-4298"><span class="linenos">4298</span></a> <span class="k">pass</span>
+</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</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-4297"><a href="#L-4297"><span class="linenos">4297</span></a> <span class="k">pass</span>
+</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><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">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-4300"><a href="#L-4300"><span class="linenos">4300</span></a><span class="c1"># Represents e.g. := in DuckDB which is mostly used for setting parameters</span>
+</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a> <span class="k">pass</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><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</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-4305"><a href="#L-4305"><span class="linenos">4305</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-4306"><a href="#L-4306"><span class="linenos">4306</span></a> <span class="k">pass</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><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</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-4309"><a href="#L-4309"><span class="linenos">4309</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-4310"><a href="#L-4310"><span class="linenos">4310</span></a> <span class="k">pass</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="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-4314"><a href="#L-4314"><span class="linenos">4314</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-4313"><a href="#L-4313"><span class="linenos">4313</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-4314"><a href="#L-4314"><span class="linenos">4314</span></a> <span class="k">pass</span>
</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a>
</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 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-4317"><a href="#L-4317"><span class="linenos">4317</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-4318"><a href="#L-4318"><span class="linenos">4318</span></a> <span class="k">pass</span>
</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a>
</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="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-4321"><a href="#L-4321"><span class="linenos">4321</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-4322"><a href="#L-4322"><span class="linenos">4322</span></a> <span class="k">pass</span>
</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a>
</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="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-4325"><a href="#L-4325"><span class="linenos">4325</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-4326"><a href="#L-4326"><span class="linenos">4326</span></a> <span class="k">pass</span>
</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a>
</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 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-4329"><a href="#L-4329"><span class="linenos">4329</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-4330"><a href="#L-4330"><span class="linenos">4330</span></a> <span class="k">pass</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">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</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-4334"><a href="#L-4334"><span class="linenos">4334</span></a> <span class="k">pass</span>
</span><span id="L-4335"><a href="#L-4335"><span class="linenos">4335</span></a>
</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a>
-</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</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-4337"><a href="#L-4337"><span class="linenos">4337</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-4338"><a href="#L-4338"><span class="linenos">4338</span></a> <span class="k">pass</span>
</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a>
</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="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-4342"><a href="#L-4342"><span class="linenos">4342</span></a> <span class="k">pass</span>
+</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</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-4342"><a href="#L-4342"><span class="linenos">4342</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-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><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a><span class="c1"># https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH</span>
-</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&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-4345"><a href="#L-4345"><span class="linenos">4345</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-4346"><a href="#L-4346"><span class="linenos">4346</span></a> <span class="k">pass</span>
+</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a>
</span><span id="L-4348"><a href="#L-4348"><span class="linenos">4348</span></a>
-</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</span></a>
-</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</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-4351"><a href="#L-4351"><span class="linenos">4351</span></a> <span class="k">pass</span>
+</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</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-4350"><a href="#L-4350"><span class="linenos">4350</span></a> <span class="k">pass</span>
+</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><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a>
-</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</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-4355"><a href="#L-4355"><span class="linenos">4355</span></a> <span class="n">arg_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-4353"><a href="#L-4353"><span class="linenos">4353</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-4354"><a href="#L-4354"><span class="linenos">4354</span></a> <span class="k">pass</span>
+</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a>
</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><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</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-4359"><a href="#L-4359"><span class="linenos">4359</span></a> <span class="k">pass</span>
+</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</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-4358"><a href="#L-4358"><span class="linenos">4358</span></a> <span class="k">pass</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><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="c1"># Unary Expressions</span>
-</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a><span class="c1"># (NOT a)</span>
-</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a> <span class="k">pass</span>
-</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a>
+</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</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-4362"><a href="#L-4362"><span class="linenos">4362</span></a> <span class="k">pass</span>
+</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a>
+</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 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-4366"><a href="#L-4366"><span class="linenos">4366</span></a> <span class="k">pass</span>
</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a>
-</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</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-4369"><a href="#L-4369"><span class="linenos">4369</span></a> <span class="k">pass</span>
-</span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a>
+</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a>
+</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</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-4370"><a href="#L-4370"><span class="linenos">4370</span></a> <span class="k">pass</span>
</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a>
-</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</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><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</span></a> <span class="k">pass</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">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a> <span class="nd">@property</span>
-</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</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-4372"><a href="#L-4372"><span class="linenos">4372</span></a>
+</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</span></a><span class="c1"># https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH</span>
+</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&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-4376"><a href="#L-4376"><span class="linenos">4376</span></a>
+</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="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-4379"><a href="#L-4379"><span class="linenos">4379</span></a> <span class="k">pass</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">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
-</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a> <span class="k">pass</span>
+</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</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-4383"><a href="#L-4383"><span class="linenos">4383</span></a> <span class="n">arg_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-4384"><a href="#L-4384"><span class="linenos">4384</span></a>
</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="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-4387"><a href="#L-4387"><span class="linenos">4387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4386"><a href="#L-4386"><span class="linenos">4386</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-4387"><a href="#L-4387"><span class="linenos">4387</span></a> <span class="k">pass</span>
</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a>
-</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a> <span class="nd">@property</span>
-</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</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-4392"><a href="#L-4392"><span class="linenos">4392</span></a>
-</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a>
-</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a><span class="c1"># BigQuery requires the UNPIVOT column list aliases to be either strings or ints, but</span>
-</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</span></a><span class="c1"># other dialects require identifiers. This enables us to transpile between them easily.</span>
-</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a><span class="k">class</span> <span class="nc">PivotAlias</span><span class="p">(</span><span class="n">Alias</span><span class="p">):</span>
+</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a>
+</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a><span class="c1"># Unary Expressions</span>
+</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</span></a><span class="c1"># (NOT a)</span>
+</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a> <span class="k">pass</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">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a> <span class="k">pass</span>
</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a>
</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 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-4401"><a href="#L-4401"><span class="linenos">4401</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4400"><a href="#L-4400"><span class="linenos">4400</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><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a> <span class="k">pass</span>
</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a>
-</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a> <span class="nd">@property</span>
-</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</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-4405"><a href="#L-4405"><span class="linenos">4405</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-4406"><a href="#L-4406"><span class="linenos">4406</span></a>
-</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a>
-</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/query-super.html</span>
-</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a><span class="k">class</span> <span class="nc">AtIndex</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4411"><a href="#L-4411"><span class="linenos">4411</span></a>
+</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a>
+</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</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><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a> <span class="nd">@property</span>
+</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</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-4408"><a href="#L-4408"><span class="linenos">4408</span></a>
+</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a>
+</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</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-4411"><a href="#L-4411"><span class="linenos">4411</span></a> <span class="k">pass</span>
</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a>
-</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</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-4414"><a href="#L-4414"><span class="linenos">4414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4415"><a href="#L-4415"><span class="linenos">4415</span></a>
+</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 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-4415"><a href="#L-4415"><span class="linenos">4415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4416"><a href="#L-4416"><span class="linenos">4416</span></a>
-</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</span></a><span class="k">class</span> <span class="nc">FromTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4419"><a href="#L-4419"><span class="linenos">4419</span></a>
+</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</span></a> <span class="nd">@property</span>
+</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</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-4420"><a href="#L-4420"><span class="linenos">4420</span></a>
-</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</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-4422"><a href="#L-4422"><span class="linenos">4422</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4423"><a href="#L-4423"><span class="linenos">4423</span></a>
-</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="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-4426"><a href="#L-4426"><span class="linenos">4426</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
-</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</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-4429"><a href="#L-4429"><span class="linenos">4429</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a> <span class="s2">&quot;returns_list_for_maps&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a> <span class="p">}</span>
+</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a>
+</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a><span class="c1"># BigQuery requires the UNPIVOT column list aliases to be either strings or ints, but</span>
+</span><span id="L-4423"><a href="#L-4423"><span class="linenos">4423</span></a><span class="c1"># other dialects require identifiers. This enables us to transpile between them easily.</span>
+</span><span id="L-4424"><a href="#L-4424"><span class="linenos">4424</span></a><span class="k">class</span> <span class="nc">PivotAlias</span><span class="p">(</span><span class="n">Alias</span><span class="p">):</span>
+</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a> <span class="k">pass</span>
+</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a>
+</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="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-4429"><a href="#L-4429"><span class="linenos">4429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4430"><a href="#L-4430"><span class="linenos">4430</span></a>
+</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a> <span class="nd">@property</span>
+</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</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-4433"><a href="#L-4433"><span class="linenos">4433</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-4434"><a href="#L-4434"><span class="linenos">4434</span></a>
-</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a> <span class="nd">@property</span>
-</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
-</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</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">output_name</span>
+</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a>
+</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/query-super.html</span>
+</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="k">class</span> <span class="nc">AtIndex</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4439"><a href="#L-4439"><span class="linenos">4439</span></a>
-</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</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><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</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-4444"><a href="#L-4444"><span class="linenos">4444</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-4445"><a href="#L-4445"><span class="linenos">4445</span></a>
-</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</span></a>
-</span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</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-4448"><a href="#L-4448"><span class="linenos">4448</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</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-4450"><a href="#L-4450"><span class="linenos">4450</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-4451"><a href="#L-4451"><span class="linenos">4451</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-4452"><a href="#L-4452"><span class="linenos">4452</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-4453"><a href="#L-4453"><span class="linenos">4453</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-4454"><a href="#L-4454"><span class="linenos">4454</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-4455"><a href="#L-4455"><span class="linenos">4455</span></a> <span class="p">}</span>
-</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><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#for-in</span>
-</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4461"><a href="#L-4461"><span class="linenos">4461</span></a>
+</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a>
+</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</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-4442"><a href="#L-4442"><span class="linenos">4442</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a><span class="k">class</span> <span class="nc">FromTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</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-4450"><a href="#L-4450"><span class="linenos">4450</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</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-4454"><a href="#L-4454"><span class="linenos">4454</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
+</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4456"><a href="#L-4456"><span class="linenos">4456</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-4457"><a href="#L-4457"><span class="linenos">4457</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a> <span class="s2">&quot;returns_list_for_maps&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a> <span class="p">}</span>
</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a>
-</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</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-4464"><a href="#L-4464"><span class="linenos">4464</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-4465"><a href="#L-4465"><span class="linenos">4465</span></a>
-</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</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-4463"><a href="#L-4463"><span class="linenos">4463</span></a> <span class="nd">@property</span>
+</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</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">output_name</span>
</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a>
-</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a> <span class="s2">&quot;D&quot;</span><span class="p">:</span> <span class="s2">&quot;DAY&quot;</span><span class="p">,</span>
-</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a> <span class="s2">&quot;H&quot;</span><span class="p">:</span> <span class="s2">&quot;HOUR&quot;</span><span class="p">,</span>
-</span><span id="L-4471"><a href="#L-4471"><span class="linenos">4471</span></a> <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="s2">&quot;MINUTE&quot;</span><span class="p">,</span>
-</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a> <span class="s2">&quot;MS&quot;</span><span class="p">:</span> <span class="s2">&quot;MILLISECOND&quot;</span><span class="p">,</span>
-</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a> <span class="s2">&quot;NS&quot;</span><span class="p">:</span> <span class="s2">&quot;NANOSECOND&quot;</span><span class="p">,</span>
-</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a> <span class="s2">&quot;Q&quot;</span><span class="p">:</span> <span class="s2">&quot;QUARTER&quot;</span><span class="p">,</span>
-</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a> <span class="s2">&quot;S&quot;</span><span class="p">:</span> <span class="s2">&quot;SECOND&quot;</span><span class="p">,</span>
-</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a> <span class="s2">&quot;US&quot;</span><span class="p">:</span> <span class="s2">&quot;MICROSECOND&quot;</span><span class="p">,</span>
-</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a> <span class="s2">&quot;W&quot;</span><span class="p">:</span> <span class="s2">&quot;WEEK&quot;</span><span class="p">,</span>
-</span><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</span></a> <span class="s2">&quot;Y&quot;</span><span class="p">:</span> <span class="s2">&quot;YEAR&quot;</span><span class="p">,</span>
-</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a> <span class="p">}</span>
-</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a>
-</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
-</span><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</span></a>
-</span><span id="L-4483"><a href="#L-4483"><span class="linenos">4483</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-4484"><a href="#L-4484"><span class="linenos">4484</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-4485"><a href="#L-4485"><span class="linenos">4485</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="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</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><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a> <span class="p">)</span>
-</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</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-4490"><a href="#L-4490"><span class="linenos">4490</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
-</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a>
-</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</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-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</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">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</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-4473"><a href="#L-4473"><span class="linenos">4473</span></a>
+</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="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-4476"><a href="#L-4476"><span class="linenos">4476</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</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-4478"><a href="#L-4478"><span class="linenos">4478</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-4479"><a href="#L-4479"><span class="linenos">4479</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-4480"><a href="#L-4480"><span class="linenos">4480</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-4481"><a href="#L-4481"><span class="linenos">4481</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-4482"><a href="#L-4482"><span class="linenos">4482</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-4483"><a href="#L-4483"><span class="linenos">4483</span></a> <span class="p">}</span>
+</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a>
+</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="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#for-in</span>
+</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</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-4492"><a href="#L-4492"><span class="linenos">4492</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-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="nd">@property</span>
-</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span> <span class="o">|</span> <span class="n">IntervalSpan</span><span class="p">]:</span>
-</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
-</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a>
-</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a>
-</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a>
-</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a> <span class="p">)</span>
-</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a>
+</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</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-4495"><a href="#L-4495"><span class="linenos">4495</span></a>
+</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a> <span class="s2">&quot;D&quot;</span><span class="p">:</span> <span class="s2">&quot;DAY&quot;</span><span class="p">,</span>
+</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a> <span class="s2">&quot;H&quot;</span><span class="p">:</span> <span class="s2">&quot;HOUR&quot;</span><span class="p">,</span>
+</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a> <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="s2">&quot;MINUTE&quot;</span><span class="p">,</span>
+</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a> <span class="s2">&quot;MS&quot;</span><span class="p">:</span> <span class="s2">&quot;MILLISECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a> <span class="s2">&quot;NS&quot;</span><span class="p">:</span> <span class="s2">&quot;NANOSECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a> <span class="s2">&quot;Q&quot;</span><span class="p">:</span> <span class="s2">&quot;QUARTER&quot;</span><span class="p">,</span>
+</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="s2">&quot;S&quot;</span><span class="p">:</span> <span class="s2">&quot;SECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a> <span class="s2">&quot;US&quot;</span><span class="p">:</span> <span class="s2">&quot;MICROSECOND&quot;</span><span class="p">,</span>
+</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a> <span class="s2">&quot;W&quot;</span><span class="p">:</span> <span class="s2">&quot;WEEK&quot;</span><span class="p">,</span>
+</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a> <span class="s2">&quot;Y&quot;</span><span class="p">:</span> <span class="s2">&quot;YEAR&quot;</span><span class="p">,</span>
+</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a> <span class="p">}</span>
</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a>
-</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="c1"># https://www.oracletutorial.com/oracle-basics/oracle-interval/</span>
-</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="c1"># https://trino.io/docs/current/language/types.html#interval-day-to-second</span>
-</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a><span class="c1"># https://docs.databricks.com/en/sql/language-manual/data-types/interval-type.html</span>
-</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</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-4517"><a href="#L-4517"><span class="linenos">4517</span></a> <span class="n">arg_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-4518"><a href="#L-4518"><span class="linenos">4518</span></a>
+</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</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="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-4512"><a href="#L-4512"><span class="linenos">4512</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-4513"><a href="#L-4513"><span class="linenos">4513</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="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</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><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a> <span class="p">)</span>
+</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</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-4518"><a href="#L-4518"><span class="linenos">4518</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
</span><span id="L-4519"><a href="#L-4519"><span class="linenos">4519</span></a>
-</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</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-4521"><a href="#L-4521"><span class="linenos">4521</span></a> <span class="k">pass</span>
-</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a>
-</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a>
-</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</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-4525"><a href="#L-4525"><span class="linenos">4525</span></a> <span class="k">pass</span>
+</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</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-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="nd">@property</span>
+</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span> <span class="o">|</span> <span class="n">IntervalSpan</span><span class="p">]:</span>
+</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a>
</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a>
-</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a>
-</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate-function-calls#max_min_clause</span>
-</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a><span class="k">class</span> <span class="nc">HavingMax</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a>
-</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a>
-</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a><span class="c1"># Functions</span>
-</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</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-4535"><a href="#L-4535"><span class="linenos">4535</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a>
-</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a><span class="sd"> Attributes:</span>
-</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</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-4540"><a href="#L-4540"><span class="linenos">4540</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-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> _sql_names (list): the SQL name (1st item in the list) and aliases (subsequent items) for this</span>
-</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a><span class="sd"> function expression. These values are used to map this node to a name during parsing as</span>
-</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a><span class="sd"> well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
-</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a> <span class="p">)</span>
+</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><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="c1"># https://www.oracletutorial.com/oracle-basics/oracle-interval/</span>
+</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a><span class="c1"># https://trino.io/docs/current/language/types.html#interval-day-to-second</span>
+</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="c1"># https://docs.databricks.com/en/sql/language-manual/data-types/interval-type.html</span>
+</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4542"><a href="#L-4542"><span class="linenos">4542</span></a>
+</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="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-4545"><a href="#L-4545"><span class="linenos">4545</span></a> <span class="n">arg_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-4546"><a href="#L-4546"><span class="linenos">4546</span></a>
-</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a>
-</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</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-4551"><a href="#L-4551"><span class="linenos">4551</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-4552"><a href="#L-4552"><span class="linenos">4552</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-4553"><a href="#L-4553"><span class="linenos">4553</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</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-4555"><a href="#L-4555"><span class="linenos">4555</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-4556"><a href="#L-4556"><span class="linenos">4556</span></a>
-</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a> <span 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-4558"><a href="#L-4558"><span class="linenos">4558</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-4559"><a href="#L-4559"><span class="linenos">4559</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</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-4561"><a href="#L-4561"><span class="linenos">4561</span></a>
-</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a> <span class="k">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-4563"><a href="#L-4563"><span class="linenos">4563</span></a>
-</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</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-4566"><a href="#L-4566"><span class="linenos">4566</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-4567"><a href="#L-4567"><span class="linenos">4567</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</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="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-4571"><a href="#L-4571"><span class="linenos">4571</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-4572"><a href="#L-4572"><span class="linenos">4572</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-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="nd">@classmethod</span>
-</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</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-4576"><a href="#L-4576"><span class="linenos">4576</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-4577"><a href="#L-4577"><span class="linenos">4577</span></a>
-</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a> <span class="nd">@classmethod</span>
-</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</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-4580"><a href="#L-4580"><span class="linenos">4580</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-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">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a> <span class="k">pass</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><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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="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-4549"><a href="#L-4549"><span class="linenos">4549</span></a> <span class="k">pass</span>
+</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a>
+</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="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-4553"><a href="#L-4553"><span class="linenos">4553</span></a> <span class="k">pass</span>
+</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><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate-function-calls#max_min_clause</span>
+</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a><span class="k">class</span> <span class="nc">HavingMax</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a>
+</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a>
+</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="c1"># Functions</span>
+</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</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-4563"><a href="#L-4563"><span class="linenos">4563</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a><span class="sd"> The base class for all function expressions.</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"> Attributes:</span>
+</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</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-4568"><a href="#L-4568"><span class="linenos">4568</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-4569"><a href="#L-4569"><span class="linenos">4569</span></a><span class="sd"> _sql_names (list): the SQL name (1st item in the list) and aliases (subsequent items) for this</span>
+</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="sd"> function expression. These values are used to map this node to a name during parsing as</span>
+</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a><span class="sd"> well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
+</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a>
+</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a>
+</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</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-4579"><a href="#L-4579"><span class="linenos">4579</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-4580"><a href="#L-4580"><span class="linenos">4580</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-4581"><a href="#L-4581"><span class="linenos">4581</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</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-4583"><a href="#L-4583"><span class="linenos">4583</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-4584"><a href="#L-4584"><span class="linenos">4584</span></a>
+</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a> <span 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-4586"><a href="#L-4586"><span class="linenos">4586</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-4587"><a href="#L-4587"><span class="linenos">4587</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</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-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><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</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-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="k">pass</span>
-</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a>
-</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a>
-</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
-</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a>
-</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</span></a>
-</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</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><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a>
-</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a>
-</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a> <span class="k">pass</span>
-</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a>
-</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a>
-</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#transform</span>
-</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4616"><a href="#L-4616"><span class="linenos">4616</span></a>
+</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</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-4591"><a href="#L-4591"><span class="linenos">4591</span></a>
+</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</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-4594"><a href="#L-4594"><span class="linenos">4594</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-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="p">)</span>
+</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a> <span 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-4599"><a href="#L-4599"><span class="linenos">4599</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-4600"><a href="#L-4600"><span class="linenos">4600</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-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="nd">@classmethod</span>
+</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</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-4604"><a href="#L-4604"><span class="linenos">4604</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-4605"><a href="#L-4605"><span class="linenos">4605</span></a>
+</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="nd">@classmethod</span>
+</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</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-4608"><a href="#L-4608"><span class="linenos">4608</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-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><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</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-4612"><a href="#L-4612"><span class="linenos">4612</span></a> <span class="k">pass</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><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a>
-</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</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-4619"><a href="#L-4619"><span class="linenos">4619</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4620"><a href="#L-4620"><span class="linenos">4620</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a>
+</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</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-4620"><a href="#L-4620"><span class="linenos">4620</span></a> <span class="k">pass</span>
</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a>
-</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a> <span class="nd">@property</span>
-</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</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-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</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-4625"><a href="#L-4625"><span class="linenos">4625</span></a>
+</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a>
+</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
</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">class</span> <span class="nc">AnonymousAggFunc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4629"><a href="#L-4629"><span class="linenos">4629</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a>
+</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="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a>
-</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/combinators</span>
-</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="k">class</span> <span class="nc">CombinedAggFunc</span><span class="p">(</span><span class="n">AnonymousAggFunc</span><span class="p">):</span>
-</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a>
+</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a>
</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a>
-</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a><span class="k">class</span> <span class="nc">CombinedParameterizedAgg</span><span class="p">(</span><span class="n">ParameterizedAgg</span><span class="p">):</span>
-</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a> <span class="k">pass</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="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
-</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
-</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a><span class="k">class</span> <span class="nc">Hll</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a>
-</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a>
-</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</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-4649"><a href="#L-4649"><span class="linenos">4649</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4650"><a href="#L-4650"><span class="linenos">4650</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
-</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a>
-</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</span></a>
-</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</span></a><span 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-4654"><a href="#L-4654"><span class="linenos">4654</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-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a>
-</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a>
-</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_array</span>
-</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a><span class="k">class</span> <span class="nc">ToArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a> <span class="k">pass</span>
-</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a>
-</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a>
-</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
-</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_CHAR-number.html</span>
-</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#transform</span>
+</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a>
+</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a>
+</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4648"><a href="#L-4648"><span class="linenos">4648</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a>
+</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a> <span class="nd">@property</span>
+</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</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-4652"><a href="#L-4652"><span class="linenos">4652</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</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-4653"><a href="#L-4653"><span class="linenos">4653</span></a>
+</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a>
+</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a><span class="k">class</span> <span class="nc">AnonymousAggFunc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a>
+</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a>
+</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/combinators</span>
+</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a><span class="k">class</span> <span class="nc">CombinedAggFunc</span><span class="p">(</span><span class="n">AnonymousAggFunc</span><span class="p">):</span>
+</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a>
+</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a>
+</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a><span class="k">class</span> <span class="nc">CombinedParameterizedAgg</span><span class="p">(</span><span class="n">ParameterizedAgg</span><span class="p">):</span>
+</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a>
</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 class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_decimal</span>
-</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_NUMBER.html</span>
-</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a><span class="k">class</span> <span class="nc">ToNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</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-4674"><a href="#L-4674"><span class="linenos">4674</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="p">}</span>
+</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
+</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
+</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a><span class="k">class</span> <span class="nc">Hll</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4673"><a href="#L-4673"><span class="linenos">4673</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a>
+</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a>
+</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a>
</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a>
-</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver16#syntax</span>
-</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a><span class="k">class</span> <span class="nc">Convert</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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;style&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</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-4682"><a href="#L-4682"><span class="linenos">4682</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a>
</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a>
-</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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 class="s2">&quot;is_end_exclusive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a>
+</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_array</span>
+</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a><span class="k">class</span> <span class="nc">ToArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a> <span class="k">pass</span>
</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a>
-</span><span id="L-4690"><a href="#L-4690"><span class="linenos">4690</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a> <span class="k">pass</span>
-</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a>
-</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a>
-</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a> <span class="k">pass</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 class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
+</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_CHAR-number.html</span>
+</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a>
</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a>
-</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a>
-</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-4700"><a href="#L-4700"><span class="linenos">4700</span></a>
-</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a>
-</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a><span class="c1"># Represents Python&#39;s `any(f(x) for x in array)`, where `array` is `this` and `f` is `expression`</span>
-</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</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-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><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><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</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-4708"><a href="#L-4708"><span class="linenos">4708</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
-</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4710"><a href="#L-4710"><span class="linenos">4710</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a>
+</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_decimal</span>
+</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_NUMBER.html</span>
+</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a><span class="k">class</span> <span class="nc">ToNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a> <span class="p">}</span>
+</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a>
+</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a>
+</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver16#syntax</span>
+</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="k">class</span> <span class="nc">Convert</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;style&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a>
-</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a><span 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-4714"><a href="#L-4714"><span class="linenos">4714</span></a> <span class="k">pass</span>
-</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a>
+</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a>
+</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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 class="s2">&quot;is_end_exclusive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a>
-</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</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-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="k">pass</span>
-</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a>
+</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="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-4719"><a href="#L-4719"><span class="linenos">4719</span></a> <span class="k">pass</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="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-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4723"><a href="#L-4723"><span class="linenos">4723</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-4721"><a href="#L-4721"><span class="linenos">4721</span></a>
+</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a> <span class="k">pass</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><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a><span class="k">class</span> <span class="nc">ArrayToString</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4728"><a href="#L-4728"><span class="linenos">4728</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_TO_STRING&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_JOIN&quot;</span><span class="p">]</span>
+</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</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-4727"><a href="#L-4727"><span class="linenos">4727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4728"><a href="#L-4728"><span class="linenos">4728</span></a>
</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><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</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 class="n">Func</span><span class="p">):</span>
-</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a> <span class="k">pass</span>
+</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a><span class="c1"># Represents Python&#39;s `any(f(x) for x in array)`, where `array` is `this` and `f` is `expression`</span>
+</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</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-4732"><a href="#L-4732"><span class="linenos">4732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4733"><a href="#L-4733"><span class="linenos">4733</span></a>
</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="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-4736"><a href="#L-4736"><span class="linenos">4736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4737"><a href="#L-4737"><span class="linenos">4737</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_SIZE&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_LENGTH&quot;</span><span class="p">]</span>
-</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a>
+</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</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-4736"><a href="#L-4736"><span class="linenos">4736</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
+</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4738"><a href="#L-4738"><span class="linenos">4738</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a>
-</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4742"><a href="#L-4742"><span class="linenos">4742</span></a>
+</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">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-4742"><a href="#L-4742"><span class="linenos">4742</span></a> <span class="k">pass</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="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-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4746"><a href="#L-4746"><span class="linenos">4746</span></a>
+</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a>
+</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</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-4746"><a href="#L-4746"><span class="linenos">4746</span></a> <span class="k">pass</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="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-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="k">pass</span>
-</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a>
-</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a>
-</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a><span class="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-4753"><a href="#L-4753"><span class="linenos">4753</span></a> <span class="k">pass</span>
-</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a>
-</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a>
-</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a><span class="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-4757"><a href="#L-4757"><span class="linenos">4757</span></a> <span class="k">pass</span>
+</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a>
+</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</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-4750"><a href="#L-4750"><span class="linenos">4750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4751"><a href="#L-4751"><span class="linenos">4751</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-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><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a><span class="k">class</span> <span class="nc">ArrayToString</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4756"><a href="#L-4756"><span class="linenos">4756</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_TO_STRING&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_JOIN&quot;</span><span class="p">]</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><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a>
-</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a><span class="k">class</span> <span class="nc">Lag</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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-4759"><a href="#L-4759"><span class="linenos">4759</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 class="n">Func</span><span class="p">):</span>
+</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a> <span class="k">pass</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><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a>
-</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="k">class</span> <span class="nc">Lead</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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-4763"><a href="#L-4763"><span class="linenos">4763</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-4764"><a href="#L-4764"><span class="linenos">4764</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_SIZE&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_LENGTH&quot;</span><span class="p">]</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><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="c1"># some dialects have a distinction between first and first_value, usually first is an aggregate func</span>
-</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a><span class="c1"># and first_value is a window func</span>
-</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a> <span class="k">pass</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><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a> <span class="k">pass</span>
-</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a>
-</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a>
-</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a><span class="k">class</span> <span class="nc">FirstValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a> <span class="k">pass</span>
-</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a>
-</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a>
-</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a><span class="k">class</span> <span class="nc">LastValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a> <span class="k">pass</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><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a><span class="k">class</span> <span class="nc">NthValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</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><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</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-4791"><a href="#L-4791"><span class="linenos">4791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4792"><a href="#L-4792"><span class="linenos">4792</span></a>
-</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a> <span class="p">),</span>
-</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a> <span class="p">)</span>
-</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> <span class="k">return</span> <span class="n">instance</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 class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</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-4769"><a href="#L-4769"><span class="linenos">4769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</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-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4774"><a href="#L-4774"><span class="linenos">4774</span></a>
+</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a>
+</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</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-4777"><a href="#L-4777"><span class="linenos">4777</span></a> <span class="k">pass</span>
+</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a>
+</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a>
+</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a> <span class="k">pass</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">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a> <span class="k">pass</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><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a><span class="k">class</span> <span class="nc">Lag</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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-4790"><a href="#L-4790"><span class="linenos">4790</span></a>
+</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a>
+</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a><span class="k">class</span> <span class="nc">Lead</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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-4794"><a href="#L-4794"><span class="linenos">4794</span></a>
+</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a>
+</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="c1"># some dialects have a distinction between first and first_value, usually first is an aggregate func</span>
+</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a><span class="c1"># and first_value is a window func</span>
+</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">AggFunc</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><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a>
+</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a> <span class="k">pass</span>
+</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a>
+</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a>
+</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a><span class="k">class</span> <span class="nc">FirstValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a> <span class="k">pass</span>
</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a>
</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a>
-</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</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-4813"><a href="#L-4813"><span class="linenos">4813</span></a> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a> <span class="p">}</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="nd">@property</span>
-</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</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-4821"><a href="#L-4821"><span class="linenos">4821</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-4822"><a href="#L-4822"><span class="linenos">4822</span></a>
-</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a> <span class="nd">@property</span>
-</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</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 class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</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-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="nd">@property</span>
-</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</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-4830"><a href="#L-4830"><span class="linenos">4830</span></a>
-</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a> <span 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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
-</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
-</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="k">class</span> <span class="nc">LastValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="k">pass</span>
+</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a>
+</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a>
+</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a><span class="k">class</span> <span class="nc">NthValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a>
+</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a>
+</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4820"><a href="#L-4820"><span class="linenos">4820</span></a>
+</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a> <span class="p">),</span>
+</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a> <span class="p">)</span>
+</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a> <span class="k">return</span> <span class="n">instance</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">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a>
-</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a><span class="sd"> Args:</span>
-</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
-</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a>
-</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a><span class="sd"> Returns:</span>
-</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
-</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</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="o">*</span><span class="n">dtypes</span><span class="p">)</span>
-</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a>
-</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="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-4847"><a href="#L-4847"><span class="linenos">4847</span></a> <span class="k">pass</span>
-</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><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-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><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</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 class="n">Func</span><span class="p">):</span>
-</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a> <span class="k">pass</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><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</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-4859"><a href="#L-4859"><span class="linenos">4859</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a> <span 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-4861"><a href="#L-4861"><span class="linenos">4861</span></a>
-</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a>
-</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</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-4837"><a href="#L-4837"><span class="linenos">4837</span></a>
+</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</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-4841"><a href="#L-4841"><span class="linenos">4841</span></a> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a> <span class="p">}</span>
+</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a>
+</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a> <span class="nd">@property</span>
+</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</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-4849"><a href="#L-4849"><span class="linenos">4849</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-4850"><a href="#L-4850"><span class="linenos">4850</span></a>
+</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a> <span class="nd">@property</span>
+</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</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 class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</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-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="nd">@property</span>
+</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</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-4858"><a href="#L-4858"><span class="linenos">4858</span></a>
+</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
+</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
+</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a>
+</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a><span class="sd"> Args:</span>
+</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a>
-</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a>
-</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
+</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="sd"> Returns:</span>
+</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
+</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</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="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a>
</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a>
-</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a>
-</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</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-4876"><a href="#L-4876"><span class="linenos">4876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a>
-</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a>
-</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
-</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</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-4882"><a href="#L-4882"><span class="linenos">4882</span></a>
-</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a>
-</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a><span class="c1"># https://docs.oracle.com/cd/B13789_01/server.101/b10759/operators004.htm#i1035022</span>
-</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a><span class="k">class</span> <span class="nc">ConnectByRoot</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="k">pass</span>
-</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a>
+</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
+</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a> <span class="k">pass</span>
+</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a>
+</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a>
+</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a><span class="k">class</span> <span class="nc">Try</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a> <span class="k">pass</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">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4884"><a href="#L-4884"><span class="linenos">4884</span></a>
+</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a>
+</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</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 class="n">Func</span><span class="p">):</span>
+</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a> <span class="k">pass</span>
</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">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a>
+</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">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4892"><a href="#L-4892"><span class="linenos">4892</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-4893"><a href="#L-4893"><span class="linenos">4893</span></a>
-</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COUNT_IF&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNTIF&quot;</span><span class="p">]</span>
-</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a>
-</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a>
-</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="c1"># cube root</span>
-</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="k">class</span> <span class="nc">Cbrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a> <span class="k">pass</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="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-4904"><a href="#L-4904"><span class="linenos">4904</span></a> <span class="n">arg_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-4894"><a href="#L-4894"><span class="linenos">4894</span></a>
+</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4897"><a href="#L-4897"><span class="linenos">4897</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</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-4899"><a href="#L-4899"><span class="linenos">4899</span></a>
+</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a>
+</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a>
</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a>
-</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a><span 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-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="n">arg_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-4909"><a href="#L-4909"><span class="linenos">4909</span></a>
+</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</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-4908"><a href="#L-4908"><span class="linenos">4908</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;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a>
-</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</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-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a>
+</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a>
+</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a><span 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-4913"><a href="#L-4913"><span class="linenos">4913</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-4914"><a href="#L-4914"><span class="linenos">4914</span></a>
-</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;transaction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a>
-</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a>
-</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a> <span class="n">arg_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-4921"><a href="#L-4921"><span class="linenos">4921</span></a>
-</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a>
-</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-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 class="c1"># https://docs.oracle.com/cd/B13789_01/server.101/b10759/operators004.htm#i1035022</span>
+</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a><span class="k">class</span> <span class="nc">ConnectByRoot</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a> <span class="k">pass</span>
+</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a>
+</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a>
+</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a><span class="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-4922"><a href="#L-4922"><span class="linenos">4922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a>
</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a>
-</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a>
-</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">IntervalOp</span><span class="p">):</span>
-</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">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-4926"><a href="#L-4926"><span class="linenos">4926</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COUNT_IF&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNTIF&quot;</span><span class="p">]</span>
+</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a>
</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a>
-</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a>
-</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a><span class="k">class</span> <span class="nc">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-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
-</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a><span class="c1"># cube root</span>
+</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a><span class="k">class</span> <span class="nc">Cbrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="k">pass</span>
+</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a>
</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a>
-</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a>
-</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</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-4937"><a href="#L-4937"><span class="linenos">4937</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span 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-4935"><a href="#L-4935"><span class="linenos">4935</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-4936"><a href="#L-4936"><span class="linenos">4936</span></a> <span class="n">arg_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-4937"><a href="#L-4937"><span class="linenos">4937</span></a>
</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a>
-</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</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-4940"><a href="#L-4940"><span class="linenos">4940</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-4941"><a href="#L-4941"><span class="linenos">4941</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">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
-</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a> <span class="p">)</span>
-</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</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-4946"><a href="#L-4946"><span class="linenos">4946</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
-</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a>
-</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a> <span class="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-4939"><a href="#L-4939"><span class="linenos">4939</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-4940"><a href="#L-4940"><span class="linenos">4940</span></a> <span class="n">arg_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-4941"><a href="#L-4941"><span class="linenos">4941</span></a>
+</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a>
+</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</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-4944"><a href="#L-4944"><span class="linenos">4944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a>
+</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a>
+</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a><span class="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-4948"><a href="#L-4948"><span class="linenos">4948</span></a> <span class="n">arg_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;transaction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a>
-</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="nd">@property</span>
-</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</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;unit&quot;</span><span class="p">]</span>
+</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a>
+</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="n">arg_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-4953"><a href="#L-4953"><span class="linenos">4953</span></a>
</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a>
-</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</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">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</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">IntervalOp</span><span class="p">):</span>
</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4957"><a href="#L-4957"><span class="linenos">4957</span></a>
</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a>
-</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</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">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</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">IntervalOp</span><span class="p">):</span>
</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4961"><a href="#L-4961"><span class="linenos">4961</span></a>
</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a>
-</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</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-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a>
+</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</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-4964"><a href="#L-4964"><span class="linenos">4964</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-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4966"><a href="#L-4966"><span class="linenos">4966</span></a>
-</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a><span 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-4968"><a href="#L-4968"><span class="linenos">4968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4969"><a href="#L-4969"><span class="linenos">4969</span></a>
+</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a>
+</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</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-4970"><a href="#L-4970"><span class="linenos">4970</span></a>
-</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a> <span class="n">_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-4973"><a href="#L-4973"><span class="linenos">4973</span></a>
-</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a>
-</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a><span class="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-4976"><a href="#L-4976"><span class="linenos">4976</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-4977"><a href="#L-4977"><span class="linenos">4977</span></a>
-</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a>
-</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</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-4980"><a href="#L-4980"><span class="linenos">4980</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-4971"><a href="#L-4971"><span class="linenos">4971</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-4972"><a href="#L-4972"><span class="linenos">4972</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-4973"><a href="#L-4973"><span class="linenos">4973</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">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a> <span class="p">)</span>
+</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</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-4978"><a href="#L-4978"><span class="linenos">4978</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a>
+</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</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-4981"><a href="#L-4981"><span class="linenos">4981</span></a>
-</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a>
-</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a> <span class="k">pass</span>
+</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a> <span class="nd">@property</span>
+</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</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;unit&quot;</span><span class="p">]</span>
</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a>
</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a>
-</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</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-4988"><a href="#L-4988"><span class="linenos">4988</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-4987"><a href="#L-4987"><span class="linenos">4987</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">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4989"><a href="#L-4989"><span class="linenos">4989</span></a>
</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a>
-</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</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">IntervalOp</span><span class="p">):</span>
+</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4993"><a href="#L-4993"><span class="linenos">4993</span></a>
</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a>
-</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a><span class="k">class</span> <span class="nc">LastDay</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-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LAST_DAY&quot;</span><span class="p">,</span> <span class="s2">&quot;LAST_DAY_OF_MONTH&quot;</span><span class="p">]</span>
-</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">False</span><span class="p">}</span>
+</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</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-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4997"><a href="#L-4997"><span class="linenos">4997</span></a>
</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a>
-</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a>
-</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a><span class="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-5001"><a href="#L-5001"><span class="linenos">5001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4999"><a href="#L-4999"><span class="linenos">4999</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-5000"><a href="#L-5000"><span class="linenos">5000</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5001"><a href="#L-5001"><span class="linenos">5001</span></a>
</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a>
-</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a>
-</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a> <span class="n">arg_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;with_tz&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</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-5004"><a href="#L-5004"><span class="linenos">5004</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-5005"><a href="#L-5005"><span class="linenos">5005</span></a>
</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a>
-</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a>
-</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</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-5009"><a href="#L-5009"><span class="linenos">5009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5007"><a href="#L-5007"><span class="linenos">5007</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-5008"><a href="#L-5008"><span class="linenos">5008</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-5009"><a href="#L-5009"><span class="linenos">5009</span></a>
</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a>
-</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a>
-</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</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-5013"><a href="#L-5013"><span class="linenos">5013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5011"><a href="#L-5011"><span class="linenos">5011</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-5012"><a href="#L-5012"><span class="linenos">5012</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-5013"><a href="#L-5013"><span class="linenos">5013</span></a>
</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a>
-</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a>
-</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</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-5017"><a href="#L-5017"><span class="linenos">5017</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMPDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMP_DIFF&quot;</span><span class="p">]</span>
-</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5019"><a href="#L-5019"><span class="linenos">5019</span></a>
-</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a>
-</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a><span 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-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5023"><a href="#L-5023"><span class="linenos">5023</span></a>
-</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a>
-</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a><span 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-5026"><a href="#L-5026"><span class="linenos">5026</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5027"><a href="#L-5027"><span class="linenos">5027</span></a>
-</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
-</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</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-5030"><a href="#L-5030"><span class="linenos">5030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5015"><a href="#L-5015"><span class="linenos">5015</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a> <span class="k">pass</span>
+</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a>
+</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a>
+</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</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-5020"><a href="#L-5020"><span class="linenos">5020</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-5021"><a href="#L-5021"><span class="linenos">5021</span></a>
+</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a>
+</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a>
+</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a>
+</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a><span class="k">class</span> <span class="nc">LastDay</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-5028"><a href="#L-5028"><span class="linenos">5028</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LAST_DAY&quot;</span><span class="p">,</span> <span class="s2">&quot;LAST_DAY_OF_MONTH&quot;</span><span class="p">]</span>
+</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">False</span><span class="p">}</span>
+</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a>
</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a>
-</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a>
-</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a><span 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-5034"><a href="#L-5034"><span class="linenos">5034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5032"><a href="#L-5032"><span class="linenos">5032</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-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5034"><a href="#L-5034"><span class="linenos">5034</span></a>
</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a>
-</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a>
-</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a><span class="k">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-5038"><a href="#L-5038"><span class="linenos">5038</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5036"><a href="#L-5036"><span class="linenos">5036</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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;with_tz&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a>
</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a>
-</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a>
-</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</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-5042"><a href="#L-5042"><span class="linenos">5042</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATE_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</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-5044"><a href="#L-5044"><span class="linenos">5044</span></a>
-</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a>
-</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a><span class="k">class</span> <span class="nc">TimeFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIME_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a> <span class="s2">&quot;fractions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a> <span class="p">}</span>
+</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</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-5041"><a href="#L-5041"><span class="linenos">5041</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5042"><a href="#L-5042"><span class="linenos">5042</span></a>
+</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a>
+</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="k">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-5045"><a href="#L-5045"><span class="linenos">5045</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5046"><a href="#L-5046"><span class="linenos">5046</span></a>
+</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a>
+</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</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-5049"><a href="#L-5049"><span class="linenos">5049</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMPDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMP_DIFF&quot;</span><span class="p">]</span>
+</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5051"><a href="#L-5051"><span class="linenos">5051</span></a>
+</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a>
+</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span 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-5054"><a href="#L-5054"><span class="linenos">5054</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5055"><a href="#L-5055"><span class="linenos">5055</span></a>
</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a>
-</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a>
-</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span 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-5059"><a href="#L-5059"><span class="linenos">5059</span></a> <span class="k">pass</span>
+</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</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-5058"><a href="#L-5058"><span class="linenos">5058</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5059"><a href="#L-5059"><span class="linenos">5059</span></a>
</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a>
-</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a>
-</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a><span 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-5063"><a href="#L-5063"><span class="linenos">5063</span></a> <span class="k">pass</span>
+</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</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-5062"><a href="#L-5062"><span class="linenos">5062</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5063"><a href="#L-5063"><span class="linenos">5063</span></a>
</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a>
-</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a>
-</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a><span 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-5067"><a href="#L-5067"><span class="linenos">5067</span></a> <span class="k">pass</span>
+</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</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-5066"><a href="#L-5066"><span class="linenos">5066</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5067"><a href="#L-5067"><span class="linenos">5067</span></a>
</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a>
-</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a>
-</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date</span>
-</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a> <span class="n">arg_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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a>
-</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a>
-</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span 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-5077"><a href="#L-5077"><span class="linenos">5077</span></a> <span class="k">pass</span>
-</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a>
-</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a>
-</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</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-5081"><a href="#L-5081"><span class="linenos">5081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5082"><a href="#L-5082"><span class="linenos">5082</span></a>
-</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a>
-</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a><span 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-5085"><a href="#L-5085"><span class="linenos">5085</span></a> <span class="k">pass</span>
-</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a>
-</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a>
-</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a><span class="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-5089"><a href="#L-5089"><span class="linenos">5089</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5090"><a href="#L-5090"><span class="linenos">5090</span></a>
-</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a>
-</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</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-5093"><a href="#L-5093"><span class="linenos">5093</span></a> <span class="k">pass</span>
-</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a>
-</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a>
-</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/flatten</span>
-</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</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-5098"><a href="#L-5098"><span class="linenos">5098</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</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-5070"><a href="#L-5070"><span class="linenos">5070</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5071"><a href="#L-5071"><span class="linenos">5071</span></a>
+</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a>
+</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATE_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-5076"><a href="#L-5076"><span class="linenos">5076</span></a>
+</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a>
+</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a><span class="k">class</span> <span class="nc">TimeFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIME_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5081"><a href="#L-5081"><span class="linenos">5081</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a> <span class="s2">&quot;fractions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a> <span class="p">}</span>
+</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a>
+</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a>
+</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</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-5091"><a href="#L-5091"><span class="linenos">5091</span></a> <span class="k">pass</span>
+</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a>
+</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a>
+</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</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-5095"><a href="#L-5095"><span class="linenos">5095</span></a> <span class="k">pass</span>
+</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a>
+</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a>
+</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</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-5099"><a href="#L-5099"><span class="linenos">5099</span></a> <span class="k">pass</span>
</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a>
</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a>
-</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a> <span class="k">pass</span>
-</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a>
-</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a>
-</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="k">pass</span>
-</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a>
-</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a>
-</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">,</span> <span class="n">ExplodeOuter</span><span class="p">):</span>
-</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a> <span class="k">pass</span>
-</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a>
-</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a>
-</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</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-5115"><a href="#L-5115"><span class="linenos">5115</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a>
-</span><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</span></a>
-</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a> <span class="k">pass</span>
-</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a>
-</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a>
-</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a> <span class="k">pass</span>
-</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a>
-</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a>
-</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a><span class="k">class</span> <span class="nc">GenerateDateArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</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;interval&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a>
-</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a>
-</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</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-5131"><a href="#L-5131"><span class="linenos">5131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5132"><a href="#L-5132"><span class="linenos">5132</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date</span>
+</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a> <span class="n">arg_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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a>
+</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a>
+</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</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-5109"><a href="#L-5109"><span class="linenos">5109</span></a> <span class="k">pass</span>
+</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a>
+</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a>
+</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a><span 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-5113"><a href="#L-5113"><span class="linenos">5113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5114"><a href="#L-5114"><span class="linenos">5114</span></a>
+</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a>
+</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</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-5117"><a href="#L-5117"><span class="linenos">5117</span></a> <span class="k">pass</span>
+</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a>
+</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a>
+</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</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-5121"><a href="#L-5121"><span class="linenos">5121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5122"><a href="#L-5122"><span class="linenos">5122</span></a>
+</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a>
+</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</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-5125"><a href="#L-5125"><span class="linenos">5125</span></a> <span class="k">pass</span>
+</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a>
+</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a>
+</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/flatten</span>
+</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</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-5130"><a href="#L-5130"><span class="linenos">5130</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5131"><a href="#L-5131"><span class="linenos">5131</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a>
</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a>
-</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a>
-</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5134"><a href="#L-5134"><span class="linenos">5134</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a> <span class="k">pass</span>
+</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a>
</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a>
-</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a>
-</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</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-5140"><a href="#L-5140"><span class="linenos">5140</span></a> <span class="k">pass</span>
+</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a> <span class="k">pass</span>
+</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a>
</span><span id="L-5141"><a href="#L-5141"><span class="linenos">5141</span></a>
-</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a>
-</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">,</span> <span class="n">ExplodeOuter</span><span class="p">):</span>
+</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <span class="k">pass</span>
+</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a>
</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a>
-</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a>
-</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</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-5148"><a href="#L-5148"><span class="linenos">5148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5149"><a href="#L-5149"><span class="linenos">5149</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IF&quot;</span><span class="p">,</span> <span class="s2">&quot;IIF&quot;</span><span class="p">]</span>
-</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a>
-</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a>
-</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5154"><a href="#L-5154"><span class="linenos">5154</span></a>
-</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a>
-</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</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-5157"><a href="#L-5157"><span class="linenos">5157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5158"><a href="#L-5158"><span class="linenos">5158</span></a>
-</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a>
-</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
-</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a>
-</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a>
-</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
+</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</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-5147"><a href="#L-5147"><span class="linenos">5147</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5148"><a href="#L-5148"><span class="linenos">5148</span></a>
+</span><span id="L-5149"><a href="#L-5149"><span class="linenos">5149</span></a>
+</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a> <span class="k">pass</span>
+</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a>
+</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a>
+</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a> <span class="k">pass</span>
+</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a>
+</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a>
+</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="k">class</span> <span class="nc">GenerateDateArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</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;interval&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a>
+</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a>
+</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</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-5163"><a href="#L-5163"><span class="linenos">5163</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5164"><a href="#L-5164"><span class="linenos">5164</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a>
</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</span></a>
-</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a>
-</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a><span class="k">class</span> <span class="nc">JSONPath</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</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-5167"><a href="#L-5167"><span class="linenos">5167</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5169"><a href="#L-5169"><span class="linenos">5169</span></a>
</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a>
-</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a> <span class="nd">@property</span>
-</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a> <span class="n">last_segment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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">this</span>
-</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a> <span class="k">return</span> <span class="n">last_segment</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">last_segment</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a>
-</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a>
-</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a><span class="k">class</span> <span class="nc">JSONPathPart</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
-</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a>
-</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a>
-</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a><span class="k">class</span> <span class="nc">JSONPathFilter</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</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-5172"><a href="#L-5172"><span class="linenos">5172</span></a> <span class="k">pass</span>
+</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a>
+</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a>
+</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a>
+</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a>
+</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</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-5180"><a href="#L-5180"><span class="linenos">5180</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5181"><a href="#L-5181"><span class="linenos">5181</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IF&quot;</span><span class="p">,</span> <span class="s2">&quot;IIF&quot;</span><span class="p">]</span>
+</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a>
</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a>
-</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a>
-</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a><span class="k">class</span> <span class="nc">JSONPathKey</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5186"><a href="#L-5186"><span class="linenos">5186</span></a>
</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a>
-</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a>
-</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a><span class="k">class</span> <span class="nc">JSONPathRecursive</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a> <span class="n">arg_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-5188"><a href="#L-5188"><span class="linenos">5188</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-5189"><a href="#L-5189"><span class="linenos">5189</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5190"><a href="#L-5190"><span class="linenos">5190</span></a>
</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a>
-</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a>
-</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a><span class="k">class</span> <span class="nc">JSONPathRoot</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a> <span class="k">pass</span>
+</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a>
</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a>
-</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a>
-</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a><span class="k">class</span> <span class="nc">JSONPathScript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
+</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a>
</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a>
-</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a>
-</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a><span class="k">class</span> <span class="nc">JSONPathSlice</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</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">False</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</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-5203"><a href="#L-5203"><span class="linenos">5203</span></a>
-</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a>
-</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a><span class="k">class</span> <span class="nc">JSONPathSelector</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a><span class="k">class</span> <span class="nc">JSONPath</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</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-5202"><a href="#L-5202"><span class="linenos">5202</span></a>
+</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a> <span class="nd">@property</span>
+</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a> <span class="n">last_segment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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">this</span>
+</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a> <span class="k">return</span> <span class="n">last_segment</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">last_segment</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a>
</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a>
-</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a><span class="k">class</span> <span class="nc">JSONPathSubscript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a><span class="k">class</span> <span class="nc">JSONPathPart</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</span></a>
</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</span></a>
-</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a><span class="k">class</span> <span class="nc">JSONPathUnion</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</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-5213"><a href="#L-5213"><span class="linenos">5213</span></a><span class="k">class</span> <span class="nc">JSONPathFilter</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a>
</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a>
-</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a><span class="k">class</span> <span class="nc">JSONPathWildcard</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="k">pass</span>
+</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a><span class="k">class</span> <span class="nc">JSONPathKey</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a>
</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a>
-</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="k">pass</span>
+</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="k">class</span> <span class="nc">JSONPathRecursive</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="n">arg_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-5223"><a href="#L-5223"><span class="linenos">5223</span></a>
</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a>
-</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5225"><a href="#L-5225"><span class="linenos">5225</span></a><span class="k">class</span> <span class="nc">JSONPathRoot</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a> <span class="k">pass</span>
</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a>
</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a>
-</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</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-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a> <span class="p">}</span>
-</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a>
-</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a>
-</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a><span class="k">class</span> <span class="nc">JSONObjectAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</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-5242"><a href="#L-5242"><span class="linenos">5242</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a> <span class="p">}</span>
+</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a><span class="k">class</span> <span class="nc">JSONPathScript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a>
+</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a>
+</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a><span class="k">class</span> <span class="nc">JSONPathSlice</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</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">False</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</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-5235"><a href="#L-5235"><span class="linenos">5235</span></a>
+</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a>
+</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a><span class="k">class</span> <span class="nc">JSONPathSelector</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a>
+</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a>
+</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a><span class="k">class</span> <span class="nc">JSONPathSubscript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a>
+</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a>
+</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a><span class="k">class</span> <span class="nc">JSONPathUnion</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</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-5247"><a href="#L-5247"><span class="linenos">5247</span></a>
</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a>
-</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAY.html</span>
-</span><span id="L-5250"><a href="#L-5250"><span class="linenos">5250</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a> <span class="p">}</span>
-</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a>
-</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a>
-</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAYAGG.html</span>
-</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</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-5263"><a href="#L-5263"><span class="linenos">5263</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a><span class="k">class</span> <span class="nc">JSONPathWildcard</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="L-5250"><a href="#L-5250"><span class="linenos">5250</span></a> <span class="k">pass</span>
+</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a>
+</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a>
+</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="k">pass</span>
+</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a>
+</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a>
+</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5259"><a href="#L-5259"><span class="linenos">5259</span></a>
+</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a>
+</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</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-5264"><a href="#L-5264"><span class="linenos">5264</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a> <span class="p">}</span>
-</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a>
+</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a> <span class="p">}</span>
</span><span id="L-5269"><a href="#L-5269"><span class="linenos">5269</span></a>
-</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
-</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="c1"># Note: parsing of JSON column definitions is currently incomplete.</span>
-</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a>
-</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a>
-</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</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-5278"><a href="#L-5278"><span class="linenos">5278</span></a>
+</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a>
+</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="k">class</span> <span class="nc">JSONObjectAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</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-5274"><a href="#L-5274"><span class="linenos">5274</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a> <span class="p">}</span>
</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a>
-</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="c1"># # https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
-</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</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-5284"><a href="#L-5284"><span class="linenos">5284</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a>
+</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAY.html</span>
+</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a> <span class="p">}</span>
</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a>
</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</span></a>
-</span><span id="L-5291"><a href="#L-5291"><span class="linenos">5291</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a>
-</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a>
-</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a>
-</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a>
-</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</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-5300"><a href="#L-5300"><span class="linenos">5300</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-5291"><a href="#L-5291"><span class="linenos">5291</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_ARRAYAGG.html</span>
+</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a> <span class="p">}</span>
+</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a>
</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</span></a>
-</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a>
-</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a><span class="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-5304"><a href="#L-5304"><span class="linenos">5304</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</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-5306"><a href="#L-5306"><span class="linenos">5306</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
+</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a><span class="c1"># Note: parsing of JSON column definitions is currently incomplete.</span>
+</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5306"><a href="#L-5306"><span class="linenos">5306</span></a>
</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</span></a>
-</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a> <span class="nd">@property</span>
-</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</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">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</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-5310"><a href="#L-5310"><span class="linenos">5310</span></a>
</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a>
-</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a>
-</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</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-5314"><a href="#L-5314"><span class="linenos">5314</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</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-5316"><a href="#L-5316"><span class="linenos">5316</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a>
-</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a> <span class="nd">@property</span>
-</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</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">output_name</span>
+</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a><span class="c1"># # https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/JSON_TABLE.html</span>
+</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</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-5316"><a href="#L-5316"><span class="linenos">5316</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</span></a> <span class="p">}</span>
</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a>
</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a>
-</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="k">class</span> <span class="nc">JSONBExtract</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-5324"><a href="#L-5324"><span class="linenos">5324</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-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a>
</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a>
-</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</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-5328"><a href="#L-5328"><span class="linenos">5328</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-5327"><a href="#L-5327"><span class="linenos">5327</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a>
</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a>
-</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</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-5332"><a href="#L-5332"><span class="linenos">5332</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-5333"><a href="#L-5333"><span class="linenos">5333</span></a>
</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a>
-</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</span></a>
-</span><span id="L-5336"><a href="#L-5336"><span class="linenos">5336</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of</span>
-</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</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-5336"><a href="#L-5336"><span class="linenos">5336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</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-5338"><a href="#L-5338"><span class="linenos">5338</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</span></a>
-</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a>
-</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
-</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
-</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5345"><a href="#L-5345"><span class="linenos">5345</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a>
-</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a>
-</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</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-5349"><a href="#L-5349"><span class="linenos">5349</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5350"><a href="#L-5350"><span class="linenos">5350</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a>
-</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a>
-</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5355"><a href="#L-5355"><span class="linenos">5355</span></a>
-</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a>
-</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5359"><a href="#L-5359"><span class="linenos">5359</span></a>
-</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a>
-</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a><span class="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-5362"><a href="#L-5362"><span class="linenos">5362</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
-</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a>
-</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a>
-</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</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-5366"><a href="#L-5366"><span class="linenos">5366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</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-5368"><a href="#L-5368"><span class="linenos">5368</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-5369"><a href="#L-5369"><span class="linenos">5369</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-5370"><a href="#L-5370"><span class="linenos">5370</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-5371"><a href="#L-5371"><span class="linenos">5371</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-5372"><a href="#L-5372"><span class="linenos">5372</span></a> <span class="p">}</span>
-</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a>
-</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a>
-</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</span></a> <span class="k">pass</span>
-</span><span id="L-5377"><a href="#L-5377"><span class="linenos">5377</span></a>
+</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a> <span class="nd">@property</span>
+</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</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">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</span></a>
+</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a>
+</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</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-5346"><a href="#L-5346"><span class="linenos">5346</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</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-5348"><a href="#L-5348"><span class="linenos">5348</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a>
+</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a> <span class="nd">@property</span>
+</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</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">output_name</span>
+</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a>
+</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a>
+</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a><span class="k">class</span> <span class="nc">JSONBExtract</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-5356"><a href="#L-5356"><span class="linenos">5356</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-5357"><a href="#L-5357"><span class="linenos">5357</span></a>
+</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a>
+</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</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-5360"><a href="#L-5360"><span class="linenos">5360</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-5361"><a href="#L-5361"><span class="linenos">5361</span></a>
+</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a>
+</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+</span><span id="L-5366"><a href="#L-5366"><span class="linenos">5366</span></a>
+</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</span></a>
+</span><span id="L-5368"><a href="#L-5368"><span class="linenos">5368</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of</span>
+</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</span></a>
+</span><span id="L-5372"><a href="#L-5372"><span class="linenos">5372</span></a>
+</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
+</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
+</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5377"><a href="#L-5377"><span class="linenos">5377</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</span></a>
-</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a><span 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-5380"><a href="#L-5380"><span class="linenos">5380</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5381"><a href="#L-5381"><span class="linenos">5381</span></a>
-</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a>
-</span><span id="L-5383"><a href="#L-5383"><span class="linenos">5383</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-5384"><a href="#L-5384"><span class="linenos">5384</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
-</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</span></a>
-</span><span id="L-5386"><a href="#L-5386"><span class="linenos">5386</span></a>
-</span><span id="L-5387"><a href="#L-5387"><span class="linenos">5387</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
-</span><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a>
-</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</span></a>
-</span><span id="L-5391"><a href="#L-5391"><span class="linenos">5391</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-5392"><a href="#L-5392"><span class="linenos">5392</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-5393"><a href="#L-5393"><span class="linenos">5393</span></a>
-</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</span></a>
-</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</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-5396"><a href="#L-5396"><span class="linenos">5396</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-5397"><a href="#L-5397"><span class="linenos">5397</span></a>
-</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a> <span class="nd">@property</span>
-</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
-</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a>
-</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a> <span class="nd">@property</span>
-</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
-</span><span id="L-5406"><a href="#L-5406"><span class="linenos">5406</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a>
-</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a>
-</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a><span class="c1"># Represents the MAP {...} syntax in DuckDB - basically convert a struct to a MAP</span>
-</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a><span class="k">class</span> <span class="nc">ToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a> <span class="k">pass</span>
-</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</span></a>
+</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a>
+</span><span id="L-5380"><a href="#L-5380"><span class="linenos">5380</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5381"><a href="#L-5381"><span class="linenos">5381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5382"><a href="#L-5382"><span class="linenos">5382</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5383"><a href="#L-5383"><span class="linenos">5383</span></a>
+</span><span id="L-5384"><a href="#L-5384"><span class="linenos">5384</span></a>
+</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5386"><a href="#L-5386"><span class="linenos">5386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5387"><a href="#L-5387"><span class="linenos">5387</span></a>
+</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</span></a>
+</span><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5391"><a href="#L-5391"><span class="linenos">5391</span></a>
+</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a>
+</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</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-5394"><a href="#L-5394"><span class="linenos">5394</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a>
+</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a>
+</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</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-5400"><a href="#L-5400"><span class="linenos">5400</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-5401"><a href="#L-5401"><span class="linenos">5401</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-5402"><a href="#L-5402"><span class="linenos">5402</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-5403"><a href="#L-5403"><span class="linenos">5403</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-5404"><a href="#L-5404"><span class="linenos">5404</span></a> <span class="p">}</span>
+</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a>
+</span><span id="L-5406"><a href="#L-5406"><span class="linenos">5406</span></a>
+</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a> <span class="k">pass</span>
+</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a>
+</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a>
+</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a><span class="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-5412"><a href="#L-5412"><span class="linenos">5412</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5413"><a href="#L-5413"><span class="linenos">5413</span></a>
-</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a> <span class="k">pass</span>
-</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a>
+</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a>
+</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a><span class="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-5416"><a href="#L-5416"><span class="linenos">5416</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a>
-</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a> <span class="k">pass</span>
-</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a>
+</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a>
+</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a>
-</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</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-5423"><a href="#L-5423"><span class="linenos">5423</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-5424"><a href="#L-5424"><span class="linenos">5424</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a>
+</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a><span class="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-5424"><a href="#L-5424"><span class="linenos">5424</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-5425"><a href="#L-5425"><span class="linenos">5425</span></a>
-</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a> <span class="nd">@property</span>
-</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a>
+</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a><span class="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-5428"><a href="#L-5428"><span class="linenos">5428</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-5429"><a href="#L-5429"><span class="linenos">5429</span></a>
</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</span></a> <span class="nd">@property</span>
-</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a>
+</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
+</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
</span><span id="L-5434"><a href="#L-5434"><span class="linenos">5434</span></a>
-</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
-</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a>
+</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a> <span class="nd">@property</span>
+</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
+</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</span></a>
-</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a><span 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-5441"><a href="#L-5441"><span class="linenos">5441</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5442"><a href="#L-5442"><span class="linenos">5442</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5443"><a href="#L-5443"><span class="linenos">5443</span></a>
+</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a>
+</span><span id="L-5441"><a href="#L-5441"><span class="linenos">5441</span></a><span class="c1"># Represents the MAP {...} syntax in DuckDB - basically convert a struct to a MAP</span>
+</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</span></a><span class="k">class</span> <span class="nc">ToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5443"><a href="#L-5443"><span class="linenos">5443</span></a> <span class="k">pass</span>
</span><span id="L-5444"><a href="#L-5444"><span class="linenos">5444</span></a>
-</span><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
-</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a>
+</span><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a>
+</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a> <span class="k">pass</span>
</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a>
-</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a><span class="c1"># Represents the variant of the MD5 function that returns a binary value</span>
-</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a>
+</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a> <span class="k">pass</span>
</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</span></a>
</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a>
-</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</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-5455"><a href="#L-5455"><span class="linenos">5455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5454"><a href="#L-5454"><span class="linenos">5454</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-5455"><a href="#L-5455"><span class="linenos">5455</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-5456"><a href="#L-5456"><span class="linenos">5456</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a>
-</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a>
-</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="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-5460"><a href="#L-5460"><span class="linenos">5460</span></a> <span class="k">pass</span>
+</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a> <span class="nd">@property</span>
+</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a>
-</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a>
-</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a><span class="k">class</span> <span class="nc">AddMonths</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5462"><a href="#L-5462"><span class="linenos">5462</span></a> <span class="nd">@property</span>
+</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a>
</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a>
-</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</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-5468"><a href="#L-5468"><span class="linenos">5468</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5469"><a href="#L-5469"><span class="linenos">5469</span></a>
+</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
+</span><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a>
-</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-predict#mlpredict_function</span>
-</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a>
+</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a>
+</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a><span 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-5473"><a href="#L-5473"><span class="linenos">5473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5474"><a href="#L-5474"><span class="linenos">5474</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a>
-</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a><span class="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-5477"><a href="#L-5477"><span class="linenos">5477</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-5478"><a href="#L-5478"><span class="linenos">5478</span></a>
+</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a>
+</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</span></a>
-</span><span id="L-5480"><a href="#L-5480"><span class="linenos">5480</span></a><span 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-5481"><a href="#L-5481"><span class="linenos">5481</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5482"><a href="#L-5482"><span class="linenos">5482</span></a>
-</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</span></a>
-</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5486"><a href="#L-5486"><span class="linenos">5486</span></a>
-</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a>
-</span><span id="L-5488"><a href="#L-5488"><span class="linenos">5488</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-5489"><a href="#L-5489"><span class="linenos">5489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5480"><a href="#L-5480"><span class="linenos">5480</span></a>
+</span><span id="L-5481"><a href="#L-5481"><span class="linenos">5481</span></a><span class="c1"># Represents the variant of the MD5 function that returns a binary value</span>
+</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a>
+</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a>
+</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</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-5487"><a href="#L-5487"><span class="linenos">5487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5488"><a href="#L-5488"><span class="linenos">5488</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a>
</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a>
-</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a>
-</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</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-5493"><a href="#L-5493"><span class="linenos">5493</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5491"><a href="#L-5491"><span class="linenos">5491</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-5492"><a href="#L-5492"><span class="linenos">5492</span></a> <span class="k">pass</span>
+</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a>
</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a>
-</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a>
-</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a><span class="k">class</span> <span class="nc">Quarter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a> <span class="k">pass</span>
+</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a><span class="k">class</span> <span class="nc">AddMonths</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5497"><a href="#L-5497"><span class="linenos">5497</span></a>
</span><span id="L-5498"><a href="#L-5498"><span class="linenos">5498</span></a>
-</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</span></a>
-</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</span></a><span class="k">class</span> <span class="nc">Rand</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5501"><a href="#L-5501"><span class="linenos">5501</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RAND&quot;</span><span class="p">,</span> <span class="s2">&quot;RANDOM&quot;</span><span class="p">]</span>
-</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a> <span class="n">arg_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-5503"><a href="#L-5503"><span class="linenos">5503</span></a>
-</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a>
-</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a><span class="k">class</span> <span class="nc">Randn</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a> <span class="n">arg_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-5499"><a href="#L-5499"><span class="linenos">5499</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-5500"><a href="#L-5500"><span class="linenos">5500</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5501"><a href="#L-5501"><span class="linenos">5501</span></a>
+</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a>
+</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-predict#mlpredict_function</span>
+</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a>
</span><span id="L-5507"><a href="#L-5507"><span class="linenos">5507</span></a>
-</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</span></a>
-</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a><span 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-5510"><a href="#L-5510"><span class="linenos">5510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5508"><a href="#L-5508"><span class="linenos">5508</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-5509"><a href="#L-5509"><span class="linenos">5509</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-5510"><a href="#L-5510"><span class="linenos">5510</span></a>
</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a>
-</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</span></a>
-</span><span id="L-5513"><a href="#L-5513"><span class="linenos">5513</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-5514"><a href="#L-5514"><span class="linenos">5514</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-5515"><a href="#L-5515"><span class="linenos">5515</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5517"><a href="#L-5517"><span class="linenos">5517</span></a>
+</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</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-5513"><a href="#L-5513"><span class="linenos">5513</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5514"><a href="#L-5514"><span class="linenos">5514</span></a>
+</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a>
+</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</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-5517"><a href="#L-5517"><span class="linenos">5517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5518"><a href="#L-5518"><span class="linenos">5518</span></a>
-</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</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-5520"><a href="#L-5520"><span class="linenos">5520</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5521"><a href="#L-5521"><span class="linenos">5521</span></a>
+</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a>
+</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</span></a><span class="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-5521"><a href="#L-5521"><span class="linenos">5521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5522"><a href="#L-5522"><span class="linenos">5522</span></a>
-</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a><span class="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-5524"><a href="#L-5524"><span class="linenos">5524</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</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-5526"><a href="#L-5526"><span class="linenos">5526</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-5527"><a href="#L-5527"><span class="linenos">5527</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-5528"><a href="#L-5528"><span class="linenos">5528</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-5529"><a href="#L-5529"><span class="linenos">5529</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</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-5531"><a href="#L-5531"><span class="linenos">5531</span></a> <span class="p">}</span>
-</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</span></a>
-</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a>
-</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5535"><a href="#L-5535"><span class="linenos">5535</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</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-5537"><a href="#L-5537"><span class="linenos">5537</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-5538"><a href="#L-5538"><span class="linenos">5538</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</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-5540"><a href="#L-5540"><span class="linenos">5540</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-5541"><a href="#L-5541"><span class="linenos">5541</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5543"><a href="#L-5543"><span class="linenos">5543</span></a> <span class="p">}</span>
+</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a>
+</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</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-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5526"><a href="#L-5526"><span class="linenos">5526</span></a>
+</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</span></a>
+</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a><span class="k">class</span> <span class="nc">Quarter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a> <span class="k">pass</span>
+</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</span></a>
+</span><span id="L-5531"><a href="#L-5531"><span class="linenos">5531</span></a>
+</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</span></a><span class="k">class</span> <span class="nc">Rand</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RAND&quot;</span><span class="p">,</span> <span class="s2">&quot;RANDOM&quot;</span><span class="p">]</span>
+</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a> <span class="n">arg_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-5535"><a href="#L-5535"><span class="linenos">5535</span></a>
+</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</span></a>
+</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a><span class="k">class</span> <span class="nc">Randn</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a> <span class="n">arg_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-5539"><a href="#L-5539"><span class="linenos">5539</span></a>
+</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a>
+</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</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-5542"><a href="#L-5542"><span class="linenos">5542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5543"><a href="#L-5543"><span class="linenos">5543</span></a>
</span><span id="L-5544"><a href="#L-5544"><span class="linenos">5544</span></a>
-</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</span></a>
-</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5548"><a href="#L-5548"><span class="linenos">5548</span></a>
+</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</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-5546"><a href="#L-5546"><span class="linenos">5546</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-5547"><a href="#L-5547"><span class="linenos">5547</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5549"><a href="#L-5549"><span class="linenos">5549</span></a>
-</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a><span class="k">class</span> <span class="nc">RegexpILike</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-5551"><a href="#L-5551"><span class="linenos">5551</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5552"><a href="#L-5552"><span class="linenos">5552</span></a>
+</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a>
+</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</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-5552"><a href="#L-5552"><span class="linenos">5552</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5553"><a href="#L-5553"><span class="linenos">5553</span></a>
-</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
-</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
-</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</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-5557"><a href="#L-5557"><span class="linenos">5557</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5558"><a href="#L-5558"><span class="linenos">5558</span></a>
-</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a>
-</span><span id="L-5560"><a href="#L-5560"><span class="linenos">5560</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-5561"><a href="#L-5561"><span class="linenos">5561</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5562"><a href="#L-5562"><span class="linenos">5562</span></a>
-</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a>
-</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/round-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a><span class="c1"># tsql third argument function == trunctaion if not 0</span>
-</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</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-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;truncate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a>
-</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a>
-</span><span id="L-5570"><a href="#L-5570"><span class="linenos">5570</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-5571"><a href="#L-5571"><span class="linenos">5571</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-5572"><a href="#L-5572"><span class="linenos">5572</span></a>
-</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a>
-</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="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-5575"><a href="#L-5575"><span class="linenos">5575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5554"><a href="#L-5554"><span class="linenos">5554</span></a>
+</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a><span 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-5556"><a href="#L-5556"><span class="linenos">5556</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</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-5558"><a href="#L-5558"><span class="linenos">5558</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-5559"><a href="#L-5559"><span class="linenos">5559</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-5560"><a href="#L-5560"><span class="linenos">5560</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-5561"><a href="#L-5561"><span class="linenos">5561</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</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-5563"><a href="#L-5563"><span class="linenos">5563</span></a> <span class="p">}</span>
+</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a>
+</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a>
+</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</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-5569"><a href="#L-5569"><span class="linenos">5569</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-5570"><a href="#L-5570"><span class="linenos">5570</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</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-5572"><a href="#L-5572"><span class="linenos">5572</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-5573"><a href="#L-5573"><span class="linenos">5573</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a> <span class="p">}</span>
+</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a>
</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a>
-</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a>
-</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5579"><a href="#L-5579"><span class="linenos">5579</span></a>
</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a>
-</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a>
-</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
-</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a>
-</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a>
-</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a><span class="k">class</span> <span class="nc">Sign</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SIGN&quot;</span><span class="p">,</span> <span class="s2">&quot;SIGNUM&quot;</span><span class="p">]</span>
+</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a><span class="k">class</span> <span class="nc">RegexpILike</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-5582"><a href="#L-5582"><span class="linenos">5582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5583"><a href="#L-5583"><span class="linenos">5583</span></a>
+</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a>
+</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
+</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
+</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</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-5588"><a href="#L-5588"><span class="linenos">5588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5589"><a href="#L-5589"><span class="linenos">5589</span></a>
</span><span id="L-5590"><a href="#L-5590"><span class="linenos">5590</span></a>
-</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a><span class="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-5592"><a href="#L-5592"><span class="linenos">5592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5591"><a href="#L-5591"><span class="linenos">5591</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-5592"><a href="#L-5592"><span class="linenos">5592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5593"><a href="#L-5593"><span class="linenos">5593</span></a>
</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</span></a>
-</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5597"><a href="#L-5597"><span class="linenos">5597</span></a>
-</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a>
-</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
-</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
-</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</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-5602"><a href="#L-5602"><span class="linenos">5602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5595"><a href="#L-5595"><span class="linenos">5595</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/round-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a><span class="c1"># tsql third argument function == trunctaion if not 0</span>
+</span><span id="L-5597"><a href="#L-5597"><span class="linenos">5597</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-5598"><a href="#L-5598"><span class="linenos">5598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;truncate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a>
+</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a>
+</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a><span class="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-5602"><a href="#L-5602"><span class="linenos">5602</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-5603"><a href="#L-5603"><span class="linenos">5603</span></a>
</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a>
-</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5605"><a href="#L-5605"><span class="linenos">5605</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-5606"><a href="#L-5606"><span class="linenos">5606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5607"><a href="#L-5607"><span class="linenos">5607</span></a>
</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a>
-</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
-</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5609"><a href="#L-5609"><span class="linenos">5609</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a>
</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</span></a>
-</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a>
-</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</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-5615"><a href="#L-5615"><span class="linenos">5615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</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-5617"><a href="#L-5617"><span class="linenos">5617</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-5618"><a href="#L-5618"><span class="linenos">5618</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-5619"><a href="#L-5619"><span class="linenos">5619</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-5620"><a href="#L-5620"><span class="linenos">5620</span></a> <span class="p">}</span>
+</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
+</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a>
+</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a>
+</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a><span class="k">class</span> <span class="nc">Sign</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SIGN&quot;</span><span class="p">,</span> <span class="s2">&quot;SIGNUM&quot;</span><span class="p">]</span>
+</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a>
</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a>
-</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a>
-</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="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-5624"><a href="#L-5624"><span class="linenos">5624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5622"><a href="#L-5622"><span class="linenos">5622</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-5623"><a href="#L-5623"><span class="linenos">5623</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5624"><a href="#L-5624"><span class="linenos">5624</span></a>
</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a>
-</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a>
-</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a><span class="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-5628"><a href="#L-5628"><span class="linenos">5628</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</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-5627"><a href="#L-5627"><span class="linenos">5627</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5628"><a href="#L-5628"><span class="linenos">5628</span></a>
</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</span></a>
-</span><span id="L-5630"><a href="#L-5630"><span class="linenos">5630</span></a>
-</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="c1"># Spark allows unix_timestamp()</span>
-</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</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-5633"><a href="#L-5633"><span class="linenos">5633</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-5634"><a href="#L-5634"><span class="linenos">5634</span></a> <span class="n">arg_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-5630"><a href="#L-5630"><span class="linenos">5630</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
+</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
+</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</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-5633"><a href="#L-5633"><span class="linenos">5633</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5634"><a href="#L-5634"><span class="linenos">5634</span></a>
</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a>
-</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a>
-</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a><span class="c1"># https://prestodb.io/docs/current/functions/string.html</span>
-</span><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#str_to_map</span>
-</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</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-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</span></a> <span class="p">}</span>
-</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a>
-</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</span></a>
-</span><span id="L-5648"><a href="#L-5648"><span class="linenos">5648</span></a><span class="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-5649"><a href="#L-5649"><span class="linenos">5649</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</span></a>
-</span><span id="L-5651"><a href="#L-5651"><span class="linenos">5651</span></a>
-</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5654"><a href="#L-5654"><span class="linenos">5654</span></a>
-</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a>
-</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</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-5657"><a href="#L-5657"><span class="linenos">5657</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-5658"><a href="#L-5658"><span class="linenos">5658</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a>
+</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5638"><a href="#L-5638"><span class="linenos">5638</span></a>
+</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a>
+</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
+</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5643"><a href="#L-5643"><span class="linenos">5643</span></a>
+</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a>
+</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</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-5646"><a href="#L-5646"><span class="linenos">5646</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</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-5648"><a href="#L-5648"><span class="linenos">5648</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-5649"><a href="#L-5649"><span class="linenos">5649</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-5650"><a href="#L-5650"><span class="linenos">5650</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-5651"><a href="#L-5651"><span class="linenos">5651</span></a> <span class="p">}</span>
+</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a>
+</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a>
+</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5656"><a href="#L-5656"><span class="linenos">5656</span></a>
+</span><span id="L-5657"><a href="#L-5657"><span class="linenos">5657</span></a>
+</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a><span class="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-5659"><a href="#L-5659"><span class="linenos">5659</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a>
-</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</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-5662"><a href="#L-5662"><span class="linenos">5662</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5663"><a href="#L-5663"><span class="linenos">5663</span></a>
-</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a>
-</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/insert</span>
-</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
-</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a>
-</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a>
-</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a><span class="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-5673"><a href="#L-5673"><span class="linenos">5673</span></a> <span class="k">pass</span>
-</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a>
-</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a>
-</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a><span 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-5677"><a href="#L-5677"><span class="linenos">5677</span></a> <span class="k">pass</span>
+</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a>
+</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a><span class="c1"># Spark allows unix_timestamp()</span>
+</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</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-5664"><a href="#L-5664"><span class="linenos">5664</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-5665"><a href="#L-5665"><span class="linenos">5665</span></a> <span class="n">arg_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-5666"><a href="#L-5666"><span class="linenos">5666</span></a>
+</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a>
+</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="c1"># https://prestodb.io/docs/current/functions/string.html</span>
+</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/sql/index.html#str_to_map</span>
+</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</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-5673"><a href="#L-5673"><span class="linenos">5673</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a> <span class="p">}</span>
+</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a>
</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a>
-</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a>
-</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</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-5681"><a href="#L-5681"><span class="linenos">5681</span></a> <span class="k">pass</span>
+</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</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-5680"><a href="#L-5680"><span class="linenos">5680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a>
</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a>
-</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a>
-</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</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-5685"><a href="#L-5685"><span class="linenos">5685</span></a> <span class="k">pass</span>
+</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5685"><a href="#L-5685"><span class="linenos">5685</span></a>
</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</span></a>
-</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</span></a>
-</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</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-5689"><a href="#L-5689"><span class="linenos">5689</span></a> <span class="k">pass</span>
+</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</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-5688"><a href="#L-5688"><span class="linenos">5688</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-5689"><a href="#L-5689"><span class="linenos">5689</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a>
</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a>
-</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</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-5693"><a href="#L-5693"><span class="linenos">5693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;timezone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</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-5693"><a href="#L-5693"><span class="linenos">5693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5694"><a href="#L-5694"><span class="linenos">5694</span></a>
</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</span></a>
-</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a><span class="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-5697"><a href="#L-5697"><span class="linenos">5697</span></a> <span class="k">pass</span>
-</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a>
-</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a>
-</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</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-5701"><a href="#L-5701"><span class="linenos">5701</span></a> <span class="k">pass</span>
+</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/insert</span>
+</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
+</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a>
</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a>
-</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a>
-</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a> <span class="k">pass</span>
+</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</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-5704"><a href="#L-5704"><span class="linenos">5704</span></a> <span class="k">pass</span>
+</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a>
</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a>
-</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a>
-</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="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-5709"><a href="#L-5709"><span class="linenos">5709</span></a> <span class="k">pass</span>
+</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</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-5708"><a href="#L-5708"><span class="linenos">5708</span></a> <span class="k">pass</span>
+</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a>
</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a>
-</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a>
-</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</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-5713"><a href="#L-5713"><span class="linenos">5713</span></a> <span class="k">pass</span>
+</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</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-5712"><a href="#L-5712"><span class="linenos">5712</span></a> <span class="k">pass</span>
+</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a>
</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</span></a>
-</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</span></a>
-</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</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-5717"><a href="#L-5717"><span class="linenos">5717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</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-5719"><a href="#L-5719"><span class="linenos">5719</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-5720"><a href="#L-5720"><span class="linenos">5720</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-5721"><a href="#L-5721"><span class="linenos">5721</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-5722"><a href="#L-5722"><span class="linenos">5722</span></a> <span class="p">}</span>
-</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a>
-</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</span></a>
-</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a><span class="k">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-5726"><a href="#L-5726"><span class="linenos">5726</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
-</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a>
-</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a> <span class="nd">@property</span>
-</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
-</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a>
+</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</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-5716"><a href="#L-5716"><span class="linenos">5716</span></a> <span class="k">pass</span>
+</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</span></a>
+</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a>
+</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a><span class="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-5720"><a href="#L-5720"><span class="linenos">5720</span></a> <span class="k">pass</span>
+</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a>
+</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</span></a>
+</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</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-5724"><a href="#L-5724"><span class="linenos">5724</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;timezone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a>
+</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a>
+</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a> <span class="k">pass</span>
+</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a>
+</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a>
+</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a><span class="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-5732"><a href="#L-5732"><span class="linenos">5732</span></a> <span class="k">pass</span>
</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a>
-</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</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-5735"><a href="#L-5735"><span class="linenos">5735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5736"><a href="#L-5736"><span class="linenos">5736</span></a>
+</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a>
+</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</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-5736"><a href="#L-5736"><span class="linenos">5736</span></a> <span class="k">pass</span>
</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a>
-</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</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-5739"><a href="#L-5739"><span class="linenos">5739</span></a> <span class="k">pass</span>
-</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a>
+</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a>
+</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</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-5740"><a href="#L-5740"><span class="linenos">5740</span></a> <span class="k">pass</span>
</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a>
-</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</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-5743"><a href="#L-5743"><span class="linenos">5743</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a>
+</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a>
+</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</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-5744"><a href="#L-5744"><span class="linenos">5744</span></a> <span class="k">pass</span>
</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a>
-</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a><span class="k">class</span> <span class="nc">TsOrDsToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a> <span class="k">pass</span>
-</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a>
-</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</span></a>
-</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a><span class="k">class</span> <span class="nc">TsOrDsToTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5751"><a href="#L-5751"><span class="linenos">5751</span></a> <span class="k">pass</span>
-</span><span id="L-5752"><a href="#L-5752"><span class="linenos">5752</span></a>
-</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a>
-</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="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-5755"><a href="#L-5755"><span class="linenos">5755</span></a> <span class="k">pass</span>
-</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a>
-</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a>
-</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</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-5759"><a href="#L-5759"><span class="linenos">5759</span></a> <span class="k">pass</span>
-</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a>
-</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a>
-</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#unix_date</span>
-</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a><span class="k">class</span> <span class="nc">UnixDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a> <span class="k">pass</span>
-</span><span id="L-5765"><a href="#L-5765"><span class="linenos">5765</span></a>
-</span><span id="L-5766"><a href="#L-5766"><span class="linenos">5766</span></a>
-</span><span id="L-5767"><a href="#L-5767"><span class="linenos">5767</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-5768"><a href="#L-5768"><span class="linenos">5768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5769"><a href="#L-5769"><span class="linenos">5769</span></a>
-</span><span id="L-5770"><a href="#L-5770"><span class="linenos">5770</span></a>
-</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
-</span><span id="L-5772"><a href="#L-5772"><span class="linenos">5772</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
-</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</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-5774"><a href="#L-5774"><span class="linenos">5774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</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-5776"><a href="#L-5776"><span class="linenos">5776</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5778"><a href="#L-5778"><span class="linenos">5778</span></a> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</span></a> <span class="p">}</span>
-</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a>
-</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
-</span><span id="L-5784"><a href="#L-5784"><span class="linenos">5784</span></a> <span class="n">DECIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
-</span><span id="L-5785"><a href="#L-5785"><span class="linenos">5785</span></a> <span class="n">CENTIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
-</span><span id="L-5786"><a href="#L-5786"><span class="linenos">5786</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
-</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</span></a> <span class="n">DECIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
-</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a> <span class="n">CENTIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
-</span><span id="L-5789"><a href="#L-5789"><span class="linenos">5789</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span>
-</span><span id="L-5790"><a href="#L-5790"><span class="linenos">5790</span></a> <span class="n">DECIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span>
-</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a> <span class="n">CENTIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
-</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a> <span class="n">NANOS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
-</span><span id="L-5793"><a href="#L-5793"><span class="linenos">5793</span></a>
-</span><span id="L-5794"><a href="#L-5794"><span class="linenos">5794</span></a>
-</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</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-5796"><a href="#L-5796"><span class="linenos">5796</span></a> <span class="k">pass</span>
+</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a>
+</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a><span class="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-5748"><a href="#L-5748"><span class="linenos">5748</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</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-5750"><a href="#L-5750"><span class="linenos">5750</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-5751"><a href="#L-5751"><span class="linenos">5751</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-5752"><a href="#L-5752"><span class="linenos">5752</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-5753"><a href="#L-5753"><span class="linenos">5753</span></a> <span class="p">}</span>
+</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a>
+</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</span></a>
+</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a><span class="k">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-5757"><a href="#L-5757"><span class="linenos">5757</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
+</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5759"><a href="#L-5759"><span class="linenos">5759</span></a>
+</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a> <span class="nd">@property</span>
+</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
+</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a>
+</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a>
+</span><span id="L-5765"><a href="#L-5765"><span class="linenos">5765</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</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-5766"><a href="#L-5766"><span class="linenos">5766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5767"><a href="#L-5767"><span class="linenos">5767</span></a>
+</span><span id="L-5768"><a href="#L-5768"><span class="linenos">5768</span></a>
+</span><span id="L-5769"><a href="#L-5769"><span class="linenos">5769</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-5770"><a href="#L-5770"><span class="linenos">5770</span></a> <span class="k">pass</span>
+</span><span id="L-5771"><a href="#L-5771"><span class="linenos">5771</span></a>
+</span><span id="L-5772"><a href="#L-5772"><span class="linenos">5772</span></a>
+</span><span id="L-5773"><a href="#L-5773"><span class="linenos">5773</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-5774"><a href="#L-5774"><span class="linenos">5774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5775"><a href="#L-5775"><span class="linenos">5775</span></a>
+</span><span id="L-5776"><a href="#L-5776"><span class="linenos">5776</span></a>
+</span><span id="L-5777"><a href="#L-5777"><span class="linenos">5777</span></a><span class="k">class</span> <span class="nc">TsOrDsToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5778"><a href="#L-5778"><span class="linenos">5778</span></a> <span class="k">pass</span>
+</span><span id="L-5779"><a href="#L-5779"><span class="linenos">5779</span></a>
+</span><span id="L-5780"><a href="#L-5780"><span class="linenos">5780</span></a>
+</span><span id="L-5781"><a href="#L-5781"><span class="linenos">5781</span></a><span class="k">class</span> <span class="nc">TsOrDsToTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5782"><a href="#L-5782"><span class="linenos">5782</span></a> <span class="k">pass</span>
+</span><span id="L-5783"><a href="#L-5783"><span class="linenos">5783</span></a>
+</span><span id="L-5784"><a href="#L-5784"><span class="linenos">5784</span></a>
+</span><span id="L-5785"><a href="#L-5785"><span class="linenos">5785</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-5786"><a href="#L-5786"><span class="linenos">5786</span></a> <span class="k">pass</span>
+</span><span id="L-5787"><a href="#L-5787"><span class="linenos">5787</span></a>
+</span><span id="L-5788"><a href="#L-5788"><span class="linenos">5788</span></a>
+</span><span id="L-5789"><a href="#L-5789"><span class="linenos">5789</span></a><span class="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-5790"><a href="#L-5790"><span class="linenos">5790</span></a> <span class="k">pass</span>
+</span><span id="L-5791"><a href="#L-5791"><span class="linenos">5791</span></a>
+</span><span id="L-5792"><a href="#L-5792"><span class="linenos">5792</span></a>
+</span><span id="L-5793"><a href="#L-5793"><span class="linenos">5793</span></a><span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#unix_date</span>
+</span><span id="L-5794"><a href="#L-5794"><span class="linenos">5794</span></a><span class="k">class</span> <span class="nc">UnixDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5795"><a href="#L-5795"><span class="linenos">5795</span></a> <span class="k">pass</span>
+</span><span id="L-5796"><a href="#L-5796"><span class="linenos">5796</span></a>
</span><span id="L-5797"><a href="#L-5797"><span class="linenos">5797</span></a>
-</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</span></a>
-</span><span id="L-5799"><a href="#L-5799"><span class="linenos">5799</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5800"><a href="#L-5800"><span class="linenos">5800</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMP_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMPFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="L-5801"><a href="#L-5801"><span class="linenos">5801</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5805"><a href="#L-5805"><span class="linenos">5805</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5807"><a href="#L-5807"><span class="linenos">5807</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</span></a> <span class="s2">&quot;milli&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</span></a> <span class="p">}</span>
-</span><span id="L-5812"><a href="#L-5812"><span class="linenos">5812</span></a>
+</span><span id="L-5798"><a href="#L-5798"><span class="linenos">5798</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-5799"><a href="#L-5799"><span class="linenos">5799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5800"><a href="#L-5800"><span class="linenos">5800</span></a>
+</span><span id="L-5801"><a href="#L-5801"><span class="linenos">5801</span></a>
+</span><span id="L-5802"><a href="#L-5802"><span class="linenos">5802</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
+</span><span id="L-5803"><a href="#L-5803"><span class="linenos">5803</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
+</span><span id="L-5804"><a href="#L-5804"><span class="linenos">5804</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-5805"><a href="#L-5805"><span class="linenos">5805</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5806"><a href="#L-5806"><span class="linenos">5806</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-5807"><a href="#L-5807"><span class="linenos">5807</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5808"><a href="#L-5808"><span class="linenos">5808</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5809"><a href="#L-5809"><span class="linenos">5809</span></a> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5810"><a href="#L-5810"><span class="linenos">5810</span></a> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5811"><a href="#L-5811"><span class="linenos">5811</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5812"><a href="#L-5812"><span class="linenos">5812</span></a> <span class="p">}</span>
</span><span id="L-5813"><a href="#L-5813"><span class="linenos">5813</span></a>
-</span><span id="L-5814"><a href="#L-5814"><span class="linenos">5814</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-5815"><a href="#L-5815"><span class="linenos">5815</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-5816"><a href="#L-5816"><span class="linenos">5816</span></a>
-</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a>
-</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</span></a><span class="k">class</span> <span class="nc">Corr</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</span></a> <span class="k">pass</span>
-</span><span id="L-5820"><a href="#L-5820"><span class="linenos">5820</span></a>
-</span><span id="L-5821"><a href="#L-5821"><span class="linenos">5821</span></a>
-</span><span id="L-5822"><a href="#L-5822"><span class="linenos">5822</span></a><span class="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-5823"><a href="#L-5823"><span class="linenos">5823</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-5814"><a href="#L-5814"><span class="linenos">5814</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+</span><span id="L-5815"><a href="#L-5815"><span class="linenos">5815</span></a> <span class="n">DECIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+</span><span id="L-5816"><a href="#L-5816"><span class="linenos">5816</span></a> <span class="n">CENTIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+</span><span id="L-5817"><a href="#L-5817"><span class="linenos">5817</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
+</span><span id="L-5818"><a href="#L-5818"><span class="linenos">5818</span></a> <span class="n">DECIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
+</span><span id="L-5819"><a href="#L-5819"><span class="linenos">5819</span></a> <span class="n">CENTIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
+</span><span id="L-5820"><a href="#L-5820"><span class="linenos">5820</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span>
+</span><span id="L-5821"><a href="#L-5821"><span class="linenos">5821</span></a> <span class="n">DECIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span>
+</span><span id="L-5822"><a href="#L-5822"><span class="linenos">5822</span></a> <span class="n">CENTIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
+</span><span id="L-5823"><a href="#L-5823"><span class="linenos">5823</span></a> <span class="n">NANOS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
</span><span id="L-5824"><a href="#L-5824"><span class="linenos">5824</span></a>
</span><span id="L-5825"><a href="#L-5825"><span class="linenos">5825</span></a>
-</span><span id="L-5826"><a href="#L-5826"><span class="linenos">5826</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-5827"><a href="#L-5827"><span class="linenos">5827</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-5826"><a href="#L-5826"><span class="linenos">5826</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-5827"><a href="#L-5827"><span class="linenos">5827</span></a> <span class="k">pass</span>
</span><span id="L-5828"><a href="#L-5828"><span class="linenos">5828</span></a>
</span><span id="L-5829"><a href="#L-5829"><span class="linenos">5829</span></a>
-</span><span id="L-5830"><a href="#L-5830"><span class="linenos">5830</span></a><span class="k">class</span> <span class="nc">CovarSamp</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5831"><a href="#L-5831"><span class="linenos">5831</span></a> <span class="k">pass</span>
-</span><span id="L-5832"><a href="#L-5832"><span class="linenos">5832</span></a>
-</span><span id="L-5833"><a href="#L-5833"><span class="linenos">5833</span></a>
-</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</span></a><span class="k">class</span> <span class="nc">CovarPop</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a> <span class="k">pass</span>
-</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</span></a>
-</span><span id="L-5837"><a href="#L-5837"><span class="linenos">5837</span></a>
-</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5839"><a href="#L-5839"><span class="linenos">5839</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5840"><a href="#L-5840"><span class="linenos">5840</span></a>
-</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</span></a>
-</span><span id="L-5842"><a href="#L-5842"><span class="linenos">5842</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-5843"><a href="#L-5843"><span class="linenos">5843</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5830"><a href="#L-5830"><span class="linenos">5830</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5831"><a href="#L-5831"><span class="linenos">5831</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMP_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMPFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="L-5832"><a href="#L-5832"><span class="linenos">5832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5833"><a href="#L-5833"><span class="linenos">5833</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5834"><a href="#L-5834"><span class="linenos">5834</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5835"><a href="#L-5835"><span class="linenos">5835</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5836"><a href="#L-5836"><span class="linenos">5836</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5837"><a href="#L-5837"><span class="linenos">5837</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5838"><a href="#L-5838"><span class="linenos">5838</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5839"><a href="#L-5839"><span class="linenos">5839</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5840"><a href="#L-5840"><span class="linenos">5840</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5841"><a href="#L-5841"><span class="linenos">5841</span></a> <span class="s2">&quot;milli&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5842"><a href="#L-5842"><span class="linenos">5842</span></a> <span class="p">}</span>
+</span><span id="L-5843"><a href="#L-5843"><span class="linenos">5843</span></a>
</span><span id="L-5844"><a href="#L-5844"><span class="linenos">5844</span></a>
-</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</span></a>
-</span><span id="L-5846"><a href="#L-5846"><span class="linenos">5846</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-5847"><a href="#L-5847"><span class="linenos">5847</span></a> <span class="k">pass</span>
+</span><span id="L-5845"><a href="#L-5845"><span class="linenos">5845</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-5846"><a href="#L-5846"><span class="linenos">5846</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-5847"><a href="#L-5847"><span class="linenos">5847</span></a>
</span><span id="L-5848"><a href="#L-5848"><span class="linenos">5848</span></a>
-</span><span id="L-5849"><a href="#L-5849"><span class="linenos">5849</span></a>
-</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</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-5851"><a href="#L-5851"><span class="linenos">5851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5849"><a href="#L-5849"><span class="linenos">5849</span></a><span class="k">class</span> <span class="nc">Corr</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5850"><a href="#L-5850"><span class="linenos">5850</span></a> <span class="k">pass</span>
+</span><span id="L-5851"><a href="#L-5851"><span class="linenos">5851</span></a>
</span><span id="L-5852"><a href="#L-5852"><span class="linenos">5852</span></a>
-</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</span></a>
-</span><span id="L-5854"><a href="#L-5854"><span class="linenos">5854</span></a><span class="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-5855"><a href="#L-5855"><span class="linenos">5855</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="L-5856"><a href="#L-5856"><span class="linenos">5856</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-5857"><a href="#L-5857"><span class="linenos">5857</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5858"><a href="#L-5858"><span class="linenos">5858</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5859"><a href="#L-5859"><span class="linenos">5859</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-5860"><a href="#L-5860"><span class="linenos">5860</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</span></a> <span class="p">}</span>
-</span><span id="L-5862"><a href="#L-5862"><span class="linenos">5862</span></a>
+</span><span id="L-5853"><a href="#L-5853"><span class="linenos">5853</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-5854"><a href="#L-5854"><span class="linenos">5854</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-5855"><a href="#L-5855"><span class="linenos">5855</span></a>
+</span><span id="L-5856"><a href="#L-5856"><span class="linenos">5856</span></a>
+</span><span id="L-5857"><a href="#L-5857"><span class="linenos">5857</span></a><span class="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-5858"><a href="#L-5858"><span class="linenos">5858</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-5859"><a href="#L-5859"><span class="linenos">5859</span></a>
+</span><span id="L-5860"><a href="#L-5860"><span class="linenos">5860</span></a>
+</span><span id="L-5861"><a href="#L-5861"><span class="linenos">5861</span></a><span class="k">class</span> <span class="nc">CovarSamp</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5862"><a href="#L-5862"><span class="linenos">5862</span></a> <span class="k">pass</span>
</span><span id="L-5863"><a href="#L-5863"><span class="linenos">5863</span></a>
-</span><span id="L-5864"><a href="#L-5864"><span class="linenos">5864</span></a><span class="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-5865"><a href="#L-5865"><span class="linenos">5865</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-5866"><a href="#L-5866"><span class="linenos">5866</span></a>
+</span><span id="L-5864"><a href="#L-5864"><span class="linenos">5864</span></a>
+</span><span id="L-5865"><a href="#L-5865"><span class="linenos">5865</span></a><span class="k">class</span> <span class="nc">CovarPop</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="L-5866"><a href="#L-5866"><span class="linenos">5866</span></a> <span class="k">pass</span>
</span><span id="L-5867"><a href="#L-5867"><span class="linenos">5867</span></a>
-</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
-</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
-</span><span id="L-5870"><a href="#L-5870"><span class="linenos">5870</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="L-5871"><a href="#L-5871"><span class="linenos">5871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5868"><a href="#L-5868"><span class="linenos">5868</span></a>
+</span><span id="L-5869"><a href="#L-5869"><span class="linenos">5869</span></a><span class="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-5870"><a href="#L-5870"><span class="linenos">5870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5871"><a href="#L-5871"><span class="linenos">5871</span></a>
</span><span id="L-5872"><a href="#L-5872"><span class="linenos">5872</span></a>
-</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</span></a>
-</span><span id="L-5874"><a href="#L-5874"><span class="linenos">5874</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-5875"><a href="#L-5875"><span class="linenos">5875</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">str</span> <span class="k">else</span> <span class="n">arg</span>
+</span><span id="L-5873"><a href="#L-5873"><span class="linenos">5873</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-5874"><a href="#L-5874"><span class="linenos">5874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5875"><a href="#L-5875"><span class="linenos">5875</span></a>
</span><span id="L-5876"><a href="#L-5876"><span class="linenos">5876</span></a>
-</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</span></a>
-</span><span id="L-5878"><a href="#L-5878"><span class="linenos">5878</span></a><span class="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-5879"><a href="#L-5879"><span class="linenos">5879</span></a><span class="n">FUNCTION_BY_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">func</span> <span class="k">for</span> <span class="n">func</span> <span class="ow">in</span> <span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">func</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
+</span><span id="L-5877"><a href="#L-5877"><span class="linenos">5877</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-5878"><a href="#L-5878"><span class="linenos">5878</span></a> <span class="k">pass</span>
+</span><span id="L-5879"><a href="#L-5879"><span class="linenos">5879</span></a>
</span><span id="L-5880"><a href="#L-5880"><span class="linenos">5880</span></a>
-</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</span></a><span class="n">JSON_PATH_PARTS</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">JSONPathPart</span><span class="p">,</span> <span class="p">(</span><span class="n">JSONPathPart</span><span class="p">,))</span>
-</span><span id="L-5882"><a href="#L-5882"><span class="linenos">5882</span></a>
-</span><span id="L-5883"><a href="#L-5883"><span class="linenos">5883</span></a><span class="n">PERCENTILES</span> <span class="o">=</span> <span class="p">(</span><span class="n">PercentileCont</span><span class="p">,</span> <span class="n">PercentileDisc</span><span class="p">)</span>
+</span><span id="L-5881"><a href="#L-5881"><span class="linenos">5881</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-5882"><a href="#L-5882"><span class="linenos">5882</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5883"><a href="#L-5883"><span class="linenos">5883</span></a>
</span><span id="L-5884"><a href="#L-5884"><span class="linenos">5884</span></a>
-</span><span id="L-5885"><a href="#L-5885"><span class="linenos">5885</span></a>
-</span><span id="L-5886"><a href="#L-5886"><span class="linenos">5886</span></a><span class="c1"># Helpers</span>
-</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5888"><a href="#L-5888"><span class="linenos">5888</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5889"><a href="#L-5889"><span class="linenos">5889</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5890"><a href="#L-5890"><span class="linenos">5890</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span>
-</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</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-5893"><a href="#L-5893"><span class="linenos">5893</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-5894"><a href="#L-5894"><span class="linenos">5894</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-5895"><a href="#L-5895"><span class="linenos">5895</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5896"><a href="#L-5896"><span class="linenos">5896</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-5885"><a href="#L-5885"><span class="linenos">5885</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-5886"><a href="#L-5886"><span class="linenos">5886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="L-5887"><a href="#L-5887"><span class="linenos">5887</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-5888"><a href="#L-5888"><span class="linenos">5888</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5889"><a href="#L-5889"><span class="linenos">5889</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5890"><a href="#L-5890"><span class="linenos">5890</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-5891"><a href="#L-5891"><span class="linenos">5891</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="L-5892"><a href="#L-5892"><span class="linenos">5892</span></a> <span class="p">}</span>
+</span><span id="L-5893"><a href="#L-5893"><span class="linenos">5893</span></a>
+</span><span id="L-5894"><a href="#L-5894"><span class="linenos">5894</span></a>
+</span><span id="L-5895"><a href="#L-5895"><span class="linenos">5895</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-5896"><a href="#L-5896"><span class="linenos">5896</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-5897"><a href="#L-5897"><span class="linenos">5897</span></a>
</span><span id="L-5898"><a href="#L-5898"><span class="linenos">5898</span></a>
-</span><span id="L-5899"><a href="#L-5899"><span class="linenos">5899</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5901"><a href="#L-5901"><span class="linenos">5901</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">E</span><span class="p">,</span>
-</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</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-5904"><a href="#L-5904"><span class="linenos">5904</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-5905"><a href="#L-5905"><span class="linenos">5905</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-5906"><a href="#L-5906"><span class="linenos">5906</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-5907"><a href="#L-5907"><span class="linenos">5907</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span> <span class="o">...</span>
-</span><span id="L-5909"><a href="#L-5909"><span class="linenos">5909</span></a>
-</span><span id="L-5910"><a href="#L-5910"><span class="linenos">5910</span></a>
-</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-5913"><a href="#L-5913"><span class="linenos">5913</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</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-5915"><a href="#L-5915"><span class="linenos">5915</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-5916"><a href="#L-5916"><span class="linenos">5916</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-5917"><a href="#L-5917"><span class="linenos">5917</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-5918"><a href="#L-5918"><span class="linenos">5918</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-5919"><a href="#L-5919"><span class="linenos">5919</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
-</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a>
-</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a><span class="sd"> Example:</span>
-</span><span id="L-5923"><a href="#L-5923"><span class="linenos">5923</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="L-5924"><a href="#L-5924"><span class="linenos">5924</span></a><span class="sd"> Literal(this=1, is_string=False)</span>
-</span><span id="L-5925"><a href="#L-5925"><span class="linenos">5925</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="L-5926"><a href="#L-5926"><span class="linenos">5926</span></a><span class="sd"> Identifier(this=x, quoted=False)</span>
-</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</span></a>
-</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a><span class="sd"> Args:</span>
-</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="L-5931"><a href="#L-5931"><span class="linenos">5931</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-5933"><a href="#L-5933"><span class="linenos">5933</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="L-5935"><a href="#L-5935"><span class="linenos">5935</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-5936"><a href="#L-5936"><span class="linenos">5936</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-5937"><a href="#L-5937"><span class="linenos">5937</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-5938"><a href="#L-5938"><span class="linenos">5938</span></a>
-</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a><span class="sd"> Returns:</span>
-</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="L-5941"><a href="#L-5941"><span class="linenos">5941</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</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-5943"><a href="#L-5943"><span class="linenos">5943</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="L-5944"><a href="#L-5944"><span class="linenos">5944</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="L-5946"><a href="#L-5946"><span class="linenos">5946</span></a>
-</span><span id="L-5947"><a href="#L-5947"><span class="linenos">5947</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-5948"><a href="#L-5948"><span class="linenos">5948</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
-</span><span id="L-5949"><a href="#L-5949"><span class="linenos">5949</span></a>
-</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a>
-</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</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-5953"><a href="#L-5953"><span class="linenos">5953</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</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-5955"><a href="#L-5955"><span class="linenos">5955</span></a>
-</span><span id="L-5956"><a href="#L-5956"><span class="linenos">5956</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-5957"><a href="#L-5957"><span class="linenos">5957</span></a>
+</span><span id="L-5899"><a href="#L-5899"><span class="linenos">5899</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
+</span><span id="L-5900"><a href="#L-5900"><span class="linenos">5900</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
+</span><span id="L-5901"><a href="#L-5901"><span class="linenos">5901</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="L-5902"><a href="#L-5902"><span class="linenos">5902</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="L-5903"><a href="#L-5903"><span class="linenos">5903</span></a>
+</span><span id="L-5904"><a href="#L-5904"><span class="linenos">5904</span></a>
+</span><span id="L-5905"><a href="#L-5905"><span class="linenos">5905</span></a><span class="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-5906"><a href="#L-5906"><span class="linenos">5906</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">str</span> <span class="k">else</span> <span class="n">arg</span>
+</span><span id="L-5907"><a href="#L-5907"><span class="linenos">5907</span></a>
+</span><span id="L-5908"><a href="#L-5908"><span class="linenos">5908</span></a>
+</span><span id="L-5909"><a href="#L-5909"><span class="linenos">5909</span></a><span class="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-5910"><a href="#L-5910"><span class="linenos">5910</span></a><span class="n">FUNCTION_BY_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">func</span> <span class="k">for</span> <span class="n">func</span> <span class="ow">in</span> <span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">func</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
+</span><span id="L-5911"><a href="#L-5911"><span class="linenos">5911</span></a>
+</span><span id="L-5912"><a href="#L-5912"><span class="linenos">5912</span></a><span class="n">JSON_PATH_PARTS</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">JSONPathPart</span><span class="p">,</span> <span class="p">(</span><span class="n">JSONPathPart</span><span class="p">,))</span>
+</span><span id="L-5913"><a href="#L-5913"><span class="linenos">5913</span></a>
+</span><span id="L-5914"><a href="#L-5914"><span class="linenos">5914</span></a><span class="n">PERCENTILES</span> <span class="o">=</span> <span class="p">(</span><span class="n">PercentileCont</span><span class="p">,</span> <span class="n">PercentileDisc</span><span class="p">)</span>
+</span><span id="L-5915"><a href="#L-5915"><span class="linenos">5915</span></a>
+</span><span id="L-5916"><a href="#L-5916"><span class="linenos">5916</span></a>
+</span><span id="L-5917"><a href="#L-5917"><span class="linenos">5917</span></a><span class="c1"># Helpers</span>
+</span><span id="L-5918"><a href="#L-5918"><span class="linenos">5918</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5919"><a href="#L-5919"><span class="linenos">5919</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5920"><a href="#L-5920"><span class="linenos">5920</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5921"><a href="#L-5921"><span class="linenos">5921</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5922"><a href="#L-5922"><span class="linenos">5922</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span>
+</span><span id="L-5923"><a href="#L-5923"><span class="linenos">5923</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-5924"><a href="#L-5924"><span class="linenos">5924</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-5925"><a href="#L-5925"><span class="linenos">5925</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-5926"><a href="#L-5926"><span class="linenos">5926</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5927"><a href="#L-5927"><span class="linenos">5927</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-5928"><a href="#L-5928"><span class="linenos">5928</span></a>
+</span><span id="L-5929"><a href="#L-5929"><span class="linenos">5929</span></a>
+</span><span id="L-5930"><a href="#L-5930"><span class="linenos">5930</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5931"><a href="#L-5931"><span class="linenos">5931</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5932"><a href="#L-5932"><span class="linenos">5932</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">E</span><span class="p">,</span>
+</span><span id="L-5933"><a href="#L-5933"><span class="linenos">5933</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5934"><a href="#L-5934"><span class="linenos">5934</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-5935"><a href="#L-5935"><span class="linenos">5935</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-5936"><a href="#L-5936"><span class="linenos">5936</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-5937"><a href="#L-5937"><span class="linenos">5937</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-5938"><a href="#L-5938"><span class="linenos">5938</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5939"><a href="#L-5939"><span class="linenos">5939</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-5940"><a href="#L-5940"><span class="linenos">5940</span></a>
+</span><span id="L-5941"><a href="#L-5941"><span class="linenos">5941</span></a>
+</span><span id="L-5942"><a href="#L-5942"><span class="linenos">5942</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="L-5943"><a href="#L-5943"><span class="linenos">5943</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-5944"><a href="#L-5944"><span class="linenos">5944</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-5945"><a href="#L-5945"><span class="linenos">5945</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-5946"><a href="#L-5946"><span class="linenos">5946</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-5947"><a href="#L-5947"><span class="linenos">5947</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-5948"><a href="#L-5948"><span class="linenos">5948</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-5949"><a href="#L-5949"><span class="linenos">5949</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-5950"><a href="#L-5950"><span class="linenos">5950</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-5951"><a href="#L-5951"><span class="linenos">5951</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
+</span><span id="L-5952"><a href="#L-5952"><span class="linenos">5952</span></a>
+</span><span id="L-5953"><a href="#L-5953"><span class="linenos">5953</span></a><span class="sd"> Example:</span>
+</span><span id="L-5954"><a href="#L-5954"><span class="linenos">5954</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="L-5955"><a href="#L-5955"><span class="linenos">5955</span></a><span class="sd"> Literal(this=1, is_string=False)</span>
+</span><span id="L-5956"><a href="#L-5956"><span class="linenos">5956</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="L-5957"><a href="#L-5957"><span class="linenos">5957</span></a><span class="sd"> Identifier(this=x, quoted=False)</span>
</span><span id="L-5958"><a href="#L-5958"><span class="linenos">5958</span></a>
-</span><span id="L-5959"><a href="#L-5959"><span class="linenos">5959</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span> <span class="o">...</span>
-</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a>
-</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a>
-</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span> <span class="o">...</span>
-</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a>
-</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a>
-</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</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-5968"><a href="#L-5968"><span class="linenos">5968</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-5959"><a href="#L-5959"><span class="linenos">5959</span></a><span class="sd"> Args:</span>
+</span><span id="L-5960"><a href="#L-5960"><span class="linenos">5960</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="L-5961"><a href="#L-5961"><span class="linenos">5961</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="L-5962"><a href="#L-5962"><span class="linenos">5962</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-5963"><a href="#L-5963"><span class="linenos">5963</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-5964"><a href="#L-5964"><span class="linenos">5964</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="L-5965"><a href="#L-5965"><span class="linenos">5965</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="L-5966"><a href="#L-5966"><span class="linenos">5966</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="L-5967"><a href="#L-5967"><span class="linenos">5967</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-5968"><a href="#L-5968"><span class="linenos">5968</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="L-5969"><a href="#L-5969"><span class="linenos">5969</span></a>
-</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a>
-</span><span id="L-5971"><a href="#L-5971"><span class="linenos">5971</span></a><span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">verbose</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-5972"><a href="#L-5972"><span class="linenos">5972</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate a textual representation of an Expression tree&quot;&quot;&quot;</span>
-</span><span id="L-5973"><a href="#L-5973"><span class="linenos">5973</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
-</span><span id="L-5974"><a href="#L-5974"><span class="linenos">5974</span></a> <span class="n">delim</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;,</span><span class="si">{</span><span class="n">indent</span><span class="si">}</span><span class="s2">&quot;</span>
-</span><span id="L-5975"><a href="#L-5975"><span class="linenos">5975</span></a>
-</span><span id="L-5976"><a href="#L-5976"><span class="linenos">5976</span></a> <span class="k">if</span> <span class="nb">isinstance</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-5977"><a href="#L-5977"><span class="linenos">5977</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">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="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">v</span> <span class="o">!=</span> <span class="p">[])</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">}</span>
-</span><span id="L-5978"><a href="#L-5978"><span class="linenos">5978</span></a>
-</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">or</span> <span class="n">verbose</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">node</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
-</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span>
-</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">comments</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">:</span>
-</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">comments</span>
-</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a>
-</span><span id="L-5984"><a href="#L-5984"><span class="linenos">5984</span></a> <span class="k">if</span> <span class="n">verbose</span><span class="p">:</span>
-</span><span id="L-5985"><a href="#L-5985"><span class="linenos">5985</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_id&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">id</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-5970"><a href="#L-5970"><span class="linenos">5970</span></a><span class="sd"> Returns:</span>
+</span><span id="L-5971"><a href="#L-5971"><span class="linenos">5971</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="L-5972"><a href="#L-5972"><span class="linenos">5972</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-5973"><a href="#L-5973"><span class="linenos">5973</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-5974"><a href="#L-5974"><span class="linenos">5974</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="L-5975"><a href="#L-5975"><span class="linenos">5975</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-5976"><a href="#L-5976"><span class="linenos">5976</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="L-5977"><a href="#L-5977"><span class="linenos">5977</span></a>
+</span><span id="L-5978"><a href="#L-5978"><span class="linenos">5978</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-5979"><a href="#L-5979"><span class="linenos">5979</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
+</span><span id="L-5980"><a href="#L-5980"><span class="linenos">5980</span></a>
+</span><span id="L-5981"><a href="#L-5981"><span class="linenos">5981</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="L-5982"><a href="#L-5982"><span class="linenos">5982</span></a>
+</span><span id="L-5983"><a href="#L-5983"><span class="linenos">5983</span></a> <span class="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-5984"><a href="#L-5984"><span class="linenos">5984</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="L-5985"><a href="#L-5985"><span class="linenos">5985</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-5986"><a href="#L-5986"><span class="linenos">5986</span></a>
-</span><span id="L-5987"><a href="#L-5987"><span class="linenos">5987</span></a> <span class="c1"># Inline leaves for a more compact representation</span>
-</span><span id="L-5988"><a href="#L-5988"><span class="linenos">5988</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
-</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a> <span class="n">delim</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span>
-</span><span id="L-5991"><a href="#L-5991"><span class="linenos">5991</span></a>
-</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a> <span class="n">items</span> <span class="o">=</span> <span class="n">delim</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">=</span><span class="si">{</span><span class="n">_to_s</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="w"> </span><span class="n">verbose</span><span class="p">,</span><span class="w"> </span><span class="n">level</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()])</span>
-</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">node</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">indent</span><span class="si">}{</span><span class="n">items</span><span class="si">}</span><span class="s2">)&quot;</span>
-</span><span id="L-5994"><a href="#L-5994"><span class="linenos">5994</span></a>
-</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a> <span class="n">items</span> <span class="o">=</span> <span class="n">delim</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_to_s</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">verbose</span><span class="p">,</span> <span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">node</span><span class="p">)</span>
-</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">indent</span><span class="si">}{</span><span class="n">items</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
-</span><span id="L-5998"><a href="#L-5998"><span class="linenos">5998</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;[</span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">]&quot;</span>
-</span><span id="L-5999"><a href="#L-5999"><span class="linenos">5999</span></a>
-</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a> <span class="c1"># Indent multiline strings to match the current level</span>
-</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a> <span class="k">return</span> <span class="n">indent</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">textwrap</span><span class="o">.</span><span class="n">dedent</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">node</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">splitlines</span><span class="p">())</span>
-</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a>
-</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a>
-</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</span></a><span class="k">def</span> <span class="nf">_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-6005"><a href="#L-6005"><span class="linenos">6005</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-5987"><a href="#L-5987"><span class="linenos">5987</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-5988"><a href="#L-5988"><span class="linenos">5988</span></a>
+</span><span id="L-5989"><a href="#L-5989"><span class="linenos">5989</span></a>
+</span><span id="L-5990"><a href="#L-5990"><span class="linenos">5990</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5991"><a href="#L-5991"><span class="linenos">5991</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-5992"><a href="#L-5992"><span class="linenos">5992</span></a>
+</span><span id="L-5993"><a href="#L-5993"><span class="linenos">5993</span></a>
+</span><span id="L-5994"><a href="#L-5994"><span class="linenos">5994</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-5995"><a href="#L-5995"><span class="linenos">5995</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-5996"><a href="#L-5996"><span class="linenos">5996</span></a>
+</span><span id="L-5997"><a href="#L-5997"><span class="linenos">5997</span></a>
+</span><span id="L-5998"><a href="#L-5998"><span class="linenos">5998</span></a><span class="k">def</span> <span class="nf">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-5999"><a href="#L-5999"><span class="linenos">5999</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+</span><span id="L-6000"><a href="#L-6000"><span class="linenos">6000</span></a>
+</span><span id="L-6001"><a href="#L-6001"><span class="linenos">6001</span></a>
+</span><span id="L-6002"><a href="#L-6002"><span class="linenos">6002</span></a><span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">verbose</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-6003"><a href="#L-6003"><span class="linenos">6003</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Generate a textual representation of an Expression tree&quot;&quot;&quot;</span>
+</span><span id="L-6004"><a href="#L-6004"><span class="linenos">6004</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>
+</span><span id="L-6005"><a href="#L-6005"><span class="linenos">6005</span></a> <span class="n">delim</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;,</span><span class="si">{</span><span class="n">indent</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-6006"><a href="#L-6006"><span class="linenos">6006</span></a>
-</span><span id="L-6007"><a href="#L-6007"><span class="linenos">6007</span></a>
-</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
-</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-6010"><a href="#L-6010"><span class="linenos">6010</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6013"><a href="#L-6013"><span class="linenos">6013</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6014"><a href="#L-6014"><span class="linenos">6014</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6015"><a href="#L-6015"><span class="linenos">6015</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
-</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</span></a><span class="p">):</span>
-</span><span id="L-6019"><a href="#L-6019"><span class="linenos">6019</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-6020"><a href="#L-6020"><span class="linenos">6020</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="n">into_arg</span><span class="p">:</span> <span class="n">expression</span><span class="p">})</span>
-</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</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-6022"><a href="#L-6022"><span class="linenos">6022</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-6023"><a href="#L-6023"><span class="linenos">6023</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-6024"><a href="#L-6024"><span class="linenos">6024</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-6027"><a href="#L-6027"><span class="linenos">6027</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a> <span class="p">)</span>
-</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</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-6030"><a href="#L-6030"><span class="linenos">6030</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-6031"><a href="#L-6031"><span class="linenos">6031</span></a>
-</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a>
-</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-6036"><a href="#L-6036"><span class="linenos">6036</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-6037"><a href="#L-6037"><span class="linenos">6037</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6039"><a href="#L-6039"><span class="linenos">6039</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6040"><a href="#L-6040"><span class="linenos">6040</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6041"><a href="#L-6041"><span class="linenos">6041</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6042"><a href="#L-6042"><span class="linenos">6042</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6043"><a href="#L-6043"><span class="linenos">6043</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a><span class="p">):</span>
-</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</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-6046"><a href="#L-6046"><span class="linenos">6046</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</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-6048"><a href="#L-6048"><span class="linenos">6048</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-6049"><a href="#L-6049"><span class="linenos">6049</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-6050"><a href="#L-6050"><span class="linenos">6050</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-6051"><a href="#L-6051"><span class="linenos">6051</span></a>
-</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-6053"><a href="#L-6053"><span class="linenos">6053</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-6054"><a href="#L-6054"><span class="linenos">6054</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-6055"><a href="#L-6055"><span class="linenos">6055</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-6056"><a href="#L-6056"><span class="linenos">6056</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</span></a> <span class="p">)</span>
-</span><span id="L-6059"><a href="#L-6059"><span class="linenos">6059</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-6060"><a href="#L-6060"><span class="linenos">6060</span></a>
-</span><span id="L-6061"><a href="#L-6061"><span class="linenos">6061</span></a> <span 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-6062"><a href="#L-6062"><span class="linenos">6062</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-6063"><a href="#L-6063"><span class="linenos">6063</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-6064"><a href="#L-6064"><span class="linenos">6064</span></a>
-</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a> <span 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-6066"><a href="#L-6066"><span class="linenos">6066</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-6067"><a href="#L-6067"><span class="linenos">6067</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-6068"><a href="#L-6068"><span class="linenos">6068</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-6069"><a href="#L-6069"><span class="linenos">6069</span></a>
-</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a>
-</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</span></a>
-</span><span id="L-6073"><a href="#L-6073"><span class="linenos">6073</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
-</span><span id="L-6074"><a href="#L-6074"><span class="linenos">6074</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-6075"><a href="#L-6075"><span class="linenos">6075</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-6077"><a href="#L-6077"><span class="linenos">6077</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6079"><a href="#L-6079"><span class="linenos">6079</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6080"><a href="#L-6080"><span class="linenos">6080</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6081"><a href="#L-6081"><span class="linenos">6081</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6082"><a href="#L-6082"><span class="linenos">6082</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6083"><a href="#L-6083"><span class="linenos">6083</span></a><span class="p">):</span>
-</span><span id="L-6084"><a href="#L-6084"><span class="linenos">6084</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-6085"><a href="#L-6085"><span class="linenos">6085</span></a>
-</span><span id="L-6086"><a href="#L-6086"><span class="linenos">6086</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-6087"><a href="#L-6087"><span class="linenos">6087</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-6088"><a href="#L-6088"><span class="linenos">6088</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-6089"><a href="#L-6089"><span class="linenos">6089</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
-</span><span id="L-6090"><a href="#L-6090"><span class="linenos">6090</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
-</span><span id="L-6091"><a href="#L-6091"><span class="linenos">6091</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-6092"><a href="#L-6092"><span class="linenos">6092</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6093"><a href="#L-6093"><span class="linenos">6093</span></a> <span class="p">)</span>
-</span><span id="L-6094"><a href="#L-6094"><span class="linenos">6094</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
-</span><span id="L-6095"><a href="#L-6095"><span class="linenos">6095</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-6096"><a href="#L-6096"><span class="linenos">6096</span></a> <span class="p">]</span>
-</span><span id="L-6097"><a href="#L-6097"><span class="linenos">6097</span></a>
-</span><span id="L-6098"><a href="#L-6098"><span class="linenos">6098</span></a> <span class="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-6099"><a href="#L-6099"><span class="linenos">6099</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-6100"><a href="#L-6100"><span class="linenos">6100</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-6101"><a href="#L-6101"><span class="linenos">6101</span></a>
-</span><span id="L-6102"><a href="#L-6102"><span class="linenos">6102</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-6103"><a href="#L-6103"><span class="linenos">6103</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-6104"><a href="#L-6104"><span class="linenos">6104</span></a>
-</span><span id="L-6105"><a href="#L-6105"><span class="linenos">6105</span></a>
-</span><span id="L-6106"><a href="#L-6106"><span class="linenos">6106</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="L-6107"><a href="#L-6107"><span class="linenos">6107</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="L-6108"><a href="#L-6108"><span class="linenos">6108</span></a> <span class="n">instance</span><span class="p">,</span>
-</span><span id="L-6109"><a href="#L-6109"><span class="linenos">6109</span></a> <span class="n">arg</span><span class="p">,</span>
-</span><span id="L-6110"><a href="#L-6110"><span class="linenos">6110</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6111"><a href="#L-6111"><span class="linenos">6111</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6112"><a href="#L-6112"><span class="linenos">6112</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6113"><a href="#L-6113"><span class="linenos">6113</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6114"><a href="#L-6114"><span class="linenos">6114</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6115"><a href="#L-6115"><span class="linenos">6115</span></a><span class="p">):</span>
-</span><span id="L-6116"><a href="#L-6116"><span class="linenos">6116</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-6117"><a href="#L-6117"><span class="linenos">6117</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-6118"><a href="#L-6118"><span class="linenos">6118</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="L-6119"><a href="#L-6119"><span class="linenos">6119</span></a>
-</span><span id="L-6120"><a href="#L-6120"><span class="linenos">6120</span></a> <span 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-6121"><a href="#L-6121"><span class="linenos">6121</span></a>
-</span><span id="L-6122"><a href="#L-6122"><span class="linenos">6122</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-6123"><a href="#L-6123"><span class="linenos">6123</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-6124"><a href="#L-6124"><span class="linenos">6124</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-6125"><a href="#L-6125"><span class="linenos">6125</span></a>
-</span><span id="L-6126"><a href="#L-6126"><span class="linenos">6126</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6127"><a href="#L-6127"><span class="linenos">6127</span></a>
-</span><span id="L-6128"><a href="#L-6128"><span class="linenos">6128</span></a> <span 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-6129"><a href="#L-6129"><span class="linenos">6129</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="L-6130"><a href="#L-6130"><span class="linenos">6130</span></a>
-</span><span id="L-6131"><a href="#L-6131"><span class="linenos">6131</span></a>
-</span><span id="L-6132"><a href="#L-6132"><span class="linenos">6132</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="L-6133"><a href="#L-6133"><span class="linenos">6133</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
-</span><span id="L-6134"><a href="#L-6134"><span class="linenos">6134</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6135"><a href="#L-6135"><span class="linenos">6135</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6136"><a href="#L-6136"><span class="linenos">6136</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6137"><a href="#L-6137"><span class="linenos">6137</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6138"><a href="#L-6138"><span class="linenos">6138</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-6139"><a href="#L-6139"><span class="linenos">6139</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6140"><a href="#L-6140"><span class="linenos">6140</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6141"><a href="#L-6141"><span class="linenos">6141</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-6142"><a href="#L-6142"><span class="linenos">6142</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6143"><a href="#L-6143"><span class="linenos">6143</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6144"><a href="#L-6144"><span class="linenos">6144</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
-</span><span id="L-6145"><a href="#L-6145"><span class="linenos">6145</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="L-6146"><a href="#L-6146"><span class="linenos">6146</span></a> <span class="n">cte</span><span class="p">,</span>
-</span><span id="L-6147"><a href="#L-6147"><span class="linenos">6147</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="L-6148"><a href="#L-6148"><span class="linenos">6148</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
-</span><span id="L-6149"><a href="#L-6149"><span class="linenos">6149</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="L-6150"><a href="#L-6150"><span class="linenos">6150</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-6151"><a href="#L-6151"><span class="linenos">6151</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
-</span><span id="L-6152"><a href="#L-6152"><span class="linenos">6152</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
-</span><span id="L-6153"><a href="#L-6153"><span class="linenos">6153</span></a> <span class="p">)</span>
-</span><span id="L-6154"><a href="#L-6154"><span class="linenos">6154</span></a>
-</span><span id="L-6155"><a href="#L-6155"><span class="linenos">6155</span></a>
-</span><span id="L-6156"><a href="#L-6156"><span class="linenos">6156</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
-</span><span id="L-6157"><a href="#L-6157"><span class="linenos">6157</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
-</span><span id="L-6158"><a href="#L-6158"><span class="linenos">6158</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
-</span><span id="L-6159"><a href="#L-6159"><span class="linenos">6159</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-6160"><a href="#L-6160"><span class="linenos">6160</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6161"><a href="#L-6161"><span class="linenos">6161</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6162"><a href="#L-6162"><span class="linenos">6162</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-6163"><a href="#L-6163"><span class="linenos">6163</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
-</span><span id="L-6164"><a href="#L-6164"><span class="linenos">6164</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6165"><a href="#L-6165"><span class="linenos">6165</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-6166"><a href="#L-6166"><span class="linenos">6166</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
-</span><span id="L-6167"><a href="#L-6167"><span class="linenos">6167</span></a> <span class="p">]</span>
-</span><span id="L-6168"><a href="#L-6168"><span class="linenos">6168</span></a>
-</span><span id="L-6169"><a href="#L-6169"><span class="linenos">6169</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
-</span><span id="L-6170"><a href="#L-6170"><span class="linenos">6170</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-6171"><a href="#L-6171"><span class="linenos">6171</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
-</span><span id="L-6172"><a href="#L-6172"><span class="linenos">6172</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
-</span><span id="L-6173"><a href="#L-6173"><span class="linenos">6173</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
-</span><span id="L-6174"><a href="#L-6174"><span class="linenos">6174</span></a>
-</span><span id="L-6175"><a href="#L-6175"><span class="linenos">6175</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="L-6176"><a href="#L-6176"><span class="linenos">6176</span></a>
-</span><span id="L-6177"><a href="#L-6177"><span class="linenos">6177</span></a>
-</span><span id="L-6178"><a href="#L-6178"><span class="linenos">6178</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-6179"><a href="#L-6179"><span class="linenos">6179</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
-</span><span id="L-6180"><a href="#L-6180"><span class="linenos">6180</span></a>
-</span><span id="L-6181"><a href="#L-6181"><span class="linenos">6181</span></a>
-</span><span id="L-6182"><a href="#L-6182"><span class="linenos">6182</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="L-6183"><a href="#L-6183"><span class="linenos">6183</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6184"><a href="#L-6184"><span class="linenos">6184</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6185"><a href="#L-6185"><span class="linenos">6185</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6186"><a href="#L-6186"><span class="linenos">6186</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-6187"><a href="#L-6187"><span class="linenos">6187</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6188"><a href="#L-6188"><span class="linenos">6188</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6189"><a href="#L-6189"><span class="linenos">6189</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="L-6190"><a href="#L-6190"><span class="linenos">6190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6191"><a href="#L-6191"><span class="linenos">6191</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="L-6192"><a href="#L-6192"><span class="linenos">6192</span></a>
-</span><span id="L-6193"><a href="#L-6193"><span class="linenos">6193</span></a><span class="sd"> Example:</span>
-</span><span id="L-6194"><a href="#L-6194"><span class="linenos">6194</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-6195"><a href="#L-6195"><span class="linenos">6195</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="L-6196"><a href="#L-6196"><span class="linenos">6196</span></a>
-</span><span id="L-6197"><a href="#L-6197"><span class="linenos">6197</span></a><span class="sd"> Args:</span>
-</span><span id="L-6198"><a href="#L-6198"><span class="linenos">6198</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-6199"><a href="#L-6199"><span class="linenos">6199</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-6200"><a href="#L-6200"><span class="linenos">6200</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-6201"><a href="#L-6201"><span class="linenos">6201</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-6202"><a href="#L-6202"><span class="linenos">6202</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-6203"><a href="#L-6203"><span class="linenos">6203</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6204"><a href="#L-6204"><span class="linenos">6204</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-6205"><a href="#L-6205"><span class="linenos">6205</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6206"><a href="#L-6206"><span class="linenos">6206</span></a>
-</span><span id="L-6207"><a href="#L-6207"><span class="linenos">6207</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6208"><a href="#L-6208"><span class="linenos">6208</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="L-6209"><a href="#L-6209"><span class="linenos">6209</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6210"><a href="#L-6210"><span class="linenos">6210</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6211"><a href="#L-6211"><span class="linenos">6211</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6007"><a href="#L-6007"><span class="linenos">6007</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">Expression</span><span class="p">):</span>
+</span><span id="L-6008"><a href="#L-6008"><span class="linenos">6008</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">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="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">v</span> <span class="o">!=</span> <span class="p">[])</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">}</span>
+</span><span id="L-6009"><a href="#L-6009"><span class="linenos">6009</span></a>
+</span><span id="L-6010"><a href="#L-6010"><span class="linenos">6010</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">or</span> <span class="n">verbose</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">node</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
+</span><span id="L-6011"><a href="#L-6011"><span class="linenos">6011</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span>
+</span><span id="L-6012"><a href="#L-6012"><span class="linenos">6012</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">comments</span> <span class="ow">or</span> <span class="n">verbose</span><span class="p">:</span>
+</span><span id="L-6013"><a href="#L-6013"><span class="linenos">6013</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">comments</span>
+</span><span id="L-6014"><a href="#L-6014"><span class="linenos">6014</span></a>
+</span><span id="L-6015"><a href="#L-6015"><span class="linenos">6015</span></a> <span class="k">if</span> <span class="n">verbose</span><span class="p">:</span>
+</span><span id="L-6016"><a href="#L-6016"><span class="linenos">6016</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;_id&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">id</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-6017"><a href="#L-6017"><span class="linenos">6017</span></a>
+</span><span id="L-6018"><a href="#L-6018"><span class="linenos">6018</span></a> <span class="c1"># Inline leaves for a more compact representation</span>
+</span><span id="L-6019"><a href="#L-6019"><span class="linenos">6019</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">():</span>
+</span><span id="L-6020"><a href="#L-6020"><span class="linenos">6020</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-6021"><a href="#L-6021"><span class="linenos">6021</span></a> <span class="n">delim</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span>
+</span><span id="L-6022"><a href="#L-6022"><span class="linenos">6022</span></a>
+</span><span id="L-6023"><a href="#L-6023"><span class="linenos">6023</span></a> <span class="n">items</span> <span class="o">=</span> <span class="n">delim</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">=</span><span class="si">{</span><span class="n">_to_s</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="w"> </span><span class="n">verbose</span><span class="p">,</span><span class="w"> </span><span class="n">level</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()])</span>
+</span><span id="L-6024"><a href="#L-6024"><span class="linenos">6024</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">node</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">indent</span><span class="si">}{</span><span class="n">items</span><span class="si">}</span><span class="s2">)&quot;</span>
+</span><span id="L-6025"><a href="#L-6025"><span class="linenos">6025</span></a>
+</span><span id="L-6026"><a href="#L-6026"><span class="linenos">6026</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="nb">list</span><span class="p">):</span>
+</span><span id="L-6027"><a href="#L-6027"><span class="linenos">6027</span></a> <span class="n">items</span> <span class="o">=</span> <span class="n">delim</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_to_s</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">verbose</span><span class="p">,</span> <span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">node</span><span class="p">)</span>
+</span><span id="L-6028"><a href="#L-6028"><span class="linenos">6028</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">indent</span><span class="si">}{</span><span class="n">items</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+</span><span id="L-6029"><a href="#L-6029"><span class="linenos">6029</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;[</span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">]&quot;</span>
+</span><span id="L-6030"><a href="#L-6030"><span class="linenos">6030</span></a>
+</span><span id="L-6031"><a href="#L-6031"><span class="linenos">6031</span></a> <span class="c1"># Indent multiline strings to match the current level</span>
+</span><span id="L-6032"><a href="#L-6032"><span class="linenos">6032</span></a> <span class="k">return</span> <span class="n">indent</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">textwrap</span><span class="o">.</span><span class="n">dedent</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">node</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">splitlines</span><span class="p">())</span>
+</span><span id="L-6033"><a href="#L-6033"><span class="linenos">6033</span></a>
+</span><span id="L-6034"><a href="#L-6034"><span class="linenos">6034</span></a>
+</span><span id="L-6035"><a href="#L-6035"><span class="linenos">6035</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-6036"><a href="#L-6036"><span class="linenos">6036</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-6037"><a href="#L-6037"><span class="linenos">6037</span></a>
+</span><span id="L-6038"><a href="#L-6038"><span class="linenos">6038</span></a>
+</span><span id="L-6039"><a href="#L-6039"><span class="linenos">6039</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
+</span><span id="L-6040"><a href="#L-6040"><span class="linenos">6040</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-6041"><a href="#L-6041"><span class="linenos">6041</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-6042"><a href="#L-6042"><span class="linenos">6042</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-6043"><a href="#L-6043"><span class="linenos">6043</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6044"><a href="#L-6044"><span class="linenos">6044</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6045"><a href="#L-6045"><span class="linenos">6045</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6046"><a href="#L-6046"><span class="linenos">6046</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6047"><a href="#L-6047"><span class="linenos">6047</span></a> <span class="n">into_arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
+</span><span id="L-6048"><a href="#L-6048"><span class="linenos">6048</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6049"><a href="#L-6049"><span class="linenos">6049</span></a><span class="p">):</span>
+</span><span id="L-6050"><a href="#L-6050"><span class="linenos">6050</span></a> <span 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-6051"><a href="#L-6051"><span class="linenos">6051</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="n">into_arg</span><span class="p">:</span> <span class="n">expression</span><span class="p">})</span>
+</span><span id="L-6052"><a href="#L-6052"><span class="linenos">6052</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-6053"><a href="#L-6053"><span class="linenos">6053</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-6054"><a href="#L-6054"><span class="linenos">6054</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-6055"><a href="#L-6055"><span class="linenos">6055</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-6056"><a href="#L-6056"><span class="linenos">6056</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-6057"><a href="#L-6057"><span class="linenos">6057</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6058"><a href="#L-6058"><span class="linenos">6058</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6059"><a href="#L-6059"><span class="linenos">6059</span></a> <span class="p">)</span>
+</span><span id="L-6060"><a href="#L-6060"><span class="linenos">6060</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-6061"><a href="#L-6061"><span class="linenos">6061</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-6062"><a href="#L-6062"><span class="linenos">6062</span></a>
+</span><span id="L-6063"><a href="#L-6063"><span class="linenos">6063</span></a>
+</span><span id="L-6064"><a href="#L-6064"><span class="linenos">6064</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-6065"><a href="#L-6065"><span class="linenos">6065</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-6066"><a href="#L-6066"><span class="linenos">6066</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-6067"><a href="#L-6067"><span class="linenos">6067</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-6068"><a href="#L-6068"><span class="linenos">6068</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6069"><a href="#L-6069"><span class="linenos">6069</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6070"><a href="#L-6070"><span class="linenos">6070</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6071"><a href="#L-6071"><span class="linenos">6071</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6072"><a href="#L-6072"><span class="linenos">6072</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6073"><a href="#L-6073"><span class="linenos">6073</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6074"><a href="#L-6074"><span class="linenos">6074</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6075"><a href="#L-6075"><span class="linenos">6075</span></a><span class="p">):</span>
+</span><span id="L-6076"><a href="#L-6076"><span class="linenos">6076</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-6077"><a href="#L-6077"><span class="linenos">6077</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-6078"><a href="#L-6078"><span class="linenos">6078</span></a> <span class="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-6079"><a href="#L-6079"><span class="linenos">6079</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-6080"><a href="#L-6080"><span class="linenos">6080</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-6081"><a href="#L-6081"><span class="linenos">6081</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-6082"><a href="#L-6082"><span class="linenos">6082</span></a>
+</span><span id="L-6083"><a href="#L-6083"><span class="linenos">6083</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-6084"><a href="#L-6084"><span class="linenos">6084</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-6085"><a href="#L-6085"><span class="linenos">6085</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-6086"><a href="#L-6086"><span class="linenos">6086</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6087"><a href="#L-6087"><span class="linenos">6087</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-6088"><a href="#L-6088"><span class="linenos">6088</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6089"><a href="#L-6089"><span class="linenos">6089</span></a> <span class="p">)</span>
+</span><span id="L-6090"><a href="#L-6090"><span class="linenos">6090</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-6091"><a href="#L-6091"><span class="linenos">6091</span></a>
+</span><span id="L-6092"><a href="#L-6092"><span class="linenos">6092</span></a> <span class="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-6093"><a href="#L-6093"><span class="linenos">6093</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-6094"><a href="#L-6094"><span class="linenos">6094</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-6095"><a href="#L-6095"><span class="linenos">6095</span></a>
+</span><span id="L-6096"><a href="#L-6096"><span class="linenos">6096</span></a> <span 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-6097"><a href="#L-6097"><span class="linenos">6097</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-6098"><a href="#L-6098"><span class="linenos">6098</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-6099"><a href="#L-6099"><span class="linenos">6099</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-6100"><a href="#L-6100"><span class="linenos">6100</span></a>
+</span><span id="L-6101"><a href="#L-6101"><span class="linenos">6101</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-6102"><a href="#L-6102"><span class="linenos">6102</span></a>
+</span><span id="L-6103"><a href="#L-6103"><span class="linenos">6103</span></a>
+</span><span id="L-6104"><a href="#L-6104"><span class="linenos">6104</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
+</span><span id="L-6105"><a href="#L-6105"><span class="linenos">6105</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-6106"><a href="#L-6106"><span class="linenos">6106</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-6107"><a href="#L-6107"><span class="linenos">6107</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-6108"><a href="#L-6108"><span class="linenos">6108</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6109"><a href="#L-6109"><span class="linenos">6109</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6110"><a href="#L-6110"><span class="linenos">6110</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6111"><a href="#L-6111"><span class="linenos">6111</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6112"><a href="#L-6112"><span class="linenos">6112</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6113"><a href="#L-6113"><span class="linenos">6113</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6114"><a href="#L-6114"><span class="linenos">6114</span></a><span class="p">):</span>
+</span><span id="L-6115"><a href="#L-6115"><span class="linenos">6115</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-6116"><a href="#L-6116"><span class="linenos">6116</span></a>
+</span><span id="L-6117"><a href="#L-6117"><span class="linenos">6117</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-6118"><a href="#L-6118"><span class="linenos">6118</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-6119"><a href="#L-6119"><span class="linenos">6119</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-6120"><a href="#L-6120"><span class="linenos">6120</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
+</span><span id="L-6121"><a href="#L-6121"><span class="linenos">6121</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
+</span><span id="L-6122"><a href="#L-6122"><span class="linenos">6122</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6123"><a href="#L-6123"><span class="linenos">6123</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6124"><a href="#L-6124"><span class="linenos">6124</span></a> <span class="p">)</span>
+</span><span id="L-6125"><a href="#L-6125"><span class="linenos">6125</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-6126"><a href="#L-6126"><span class="linenos">6126</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-6127"><a href="#L-6127"><span class="linenos">6127</span></a> <span class="p">]</span>
+</span><span id="L-6128"><a href="#L-6128"><span class="linenos">6128</span></a>
+</span><span id="L-6129"><a href="#L-6129"><span class="linenos">6129</span></a> <span class="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-6130"><a href="#L-6130"><span class="linenos">6130</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-6131"><a href="#L-6131"><span class="linenos">6131</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-6132"><a href="#L-6132"><span class="linenos">6132</span></a>
+</span><span id="L-6133"><a href="#L-6133"><span class="linenos">6133</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-6134"><a href="#L-6134"><span class="linenos">6134</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-6135"><a href="#L-6135"><span class="linenos">6135</span></a>
+</span><span id="L-6136"><a href="#L-6136"><span class="linenos">6136</span></a>
+</span><span id="L-6137"><a href="#L-6137"><span class="linenos">6137</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="L-6138"><a href="#L-6138"><span class="linenos">6138</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="L-6139"><a href="#L-6139"><span class="linenos">6139</span></a> <span class="n">instance</span><span class="p">,</span>
+</span><span id="L-6140"><a href="#L-6140"><span class="linenos">6140</span></a> <span class="n">arg</span><span class="p">,</span>
+</span><span id="L-6141"><a href="#L-6141"><span class="linenos">6141</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6142"><a href="#L-6142"><span class="linenos">6142</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6143"><a href="#L-6143"><span class="linenos">6143</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6144"><a href="#L-6144"><span class="linenos">6144</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6145"><a href="#L-6145"><span class="linenos">6145</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6146"><a href="#L-6146"><span class="linenos">6146</span></a><span class="p">):</span>
+</span><span id="L-6147"><a href="#L-6147"><span class="linenos">6147</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-6148"><a href="#L-6148"><span class="linenos">6148</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-6149"><a href="#L-6149"><span class="linenos">6149</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="L-6150"><a href="#L-6150"><span class="linenos">6150</span></a>
+</span><span id="L-6151"><a href="#L-6151"><span class="linenos">6151</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-6152"><a href="#L-6152"><span class="linenos">6152</span></a>
+</span><span id="L-6153"><a href="#L-6153"><span class="linenos">6153</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-6154"><a href="#L-6154"><span class="linenos">6154</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-6155"><a href="#L-6155"><span class="linenos">6155</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-6156"><a href="#L-6156"><span class="linenos">6156</span></a>
+</span><span id="L-6157"><a href="#L-6157"><span class="linenos">6157</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6158"><a href="#L-6158"><span class="linenos">6158</span></a>
+</span><span id="L-6159"><a href="#L-6159"><span class="linenos">6159</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-6160"><a href="#L-6160"><span class="linenos">6160</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="L-6161"><a href="#L-6161"><span class="linenos">6161</span></a>
+</span><span id="L-6162"><a href="#L-6162"><span class="linenos">6162</span></a>
+</span><span id="L-6163"><a href="#L-6163"><span class="linenos">6163</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="L-6164"><a href="#L-6164"><span class="linenos">6164</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
+</span><span id="L-6165"><a href="#L-6165"><span class="linenos">6165</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6166"><a href="#L-6166"><span class="linenos">6166</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6167"><a href="#L-6167"><span class="linenos">6167</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6168"><a href="#L-6168"><span class="linenos">6168</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6169"><a href="#L-6169"><span class="linenos">6169</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-6170"><a href="#L-6170"><span class="linenos">6170</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6171"><a href="#L-6171"><span class="linenos">6171</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6172"><a href="#L-6172"><span class="linenos">6172</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-6173"><a href="#L-6173"><span class="linenos">6173</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6174"><a href="#L-6174"><span class="linenos">6174</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6175"><a href="#L-6175"><span class="linenos">6175</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
+</span><span id="L-6176"><a href="#L-6176"><span class="linenos">6176</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="L-6177"><a href="#L-6177"><span class="linenos">6177</span></a> <span class="n">cte</span><span class="p">,</span>
+</span><span id="L-6178"><a href="#L-6178"><span class="linenos">6178</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="L-6179"><a href="#L-6179"><span class="linenos">6179</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
+</span><span id="L-6180"><a href="#L-6180"><span class="linenos">6180</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="L-6181"><a href="#L-6181"><span class="linenos">6181</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-6182"><a href="#L-6182"><span class="linenos">6182</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
+</span><span id="L-6183"><a href="#L-6183"><span class="linenos">6183</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
+</span><span id="L-6184"><a href="#L-6184"><span class="linenos">6184</span></a> <span class="p">)</span>
+</span><span id="L-6185"><a href="#L-6185"><span class="linenos">6185</span></a>
+</span><span id="L-6186"><a href="#L-6186"><span class="linenos">6186</span></a>
+</span><span id="L-6187"><a href="#L-6187"><span class="linenos">6187</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
+</span><span id="L-6188"><a href="#L-6188"><span class="linenos">6188</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
+</span><span id="L-6189"><a href="#L-6189"><span class="linenos">6189</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
+</span><span id="L-6190"><a href="#L-6190"><span class="linenos">6190</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-6191"><a href="#L-6191"><span class="linenos">6191</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6192"><a href="#L-6192"><span class="linenos">6192</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6193"><a href="#L-6193"><span class="linenos">6193</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-6194"><a href="#L-6194"><span class="linenos">6194</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="L-6195"><a href="#L-6195"><span class="linenos">6195</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6196"><a href="#L-6196"><span class="linenos">6196</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-6197"><a href="#L-6197"><span class="linenos">6197</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
+</span><span id="L-6198"><a href="#L-6198"><span class="linenos">6198</span></a> <span class="p">]</span>
+</span><span id="L-6199"><a href="#L-6199"><span class="linenos">6199</span></a>
+</span><span id="L-6200"><a href="#L-6200"><span class="linenos">6200</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
+</span><span id="L-6201"><a href="#L-6201"><span class="linenos">6201</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-6202"><a href="#L-6202"><span class="linenos">6202</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
+</span><span id="L-6203"><a href="#L-6203"><span class="linenos">6203</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
+</span><span id="L-6204"><a href="#L-6204"><span class="linenos">6204</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+</span><span id="L-6205"><a href="#L-6205"><span class="linenos">6205</span></a>
+</span><span id="L-6206"><a href="#L-6206"><span class="linenos">6206</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="L-6207"><a href="#L-6207"><span class="linenos">6207</span></a>
+</span><span id="L-6208"><a href="#L-6208"><span class="linenos">6208</span></a>
+</span><span id="L-6209"><a href="#L-6209"><span class="linenos">6209</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-6210"><a href="#L-6210"><span class="linenos">6210</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
+</span><span id="L-6211"><a href="#L-6211"><span class="linenos">6211</span></a>
</span><span id="L-6212"><a href="#L-6212"><span class="linenos">6212</span></a>
-</span><span id="L-6213"><a href="#L-6213"><span class="linenos">6213</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-6214"><a href="#L-6214"><span class="linenos">6214</span></a>
-</span><span id="L-6215"><a href="#L-6215"><span class="linenos">6215</span></a>
-</span><span id="L-6216"><a href="#L-6216"><span class="linenos">6216</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="L-6217"><a href="#L-6217"><span class="linenos">6217</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6218"><a href="#L-6218"><span class="linenos">6218</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6219"><a href="#L-6219"><span class="linenos">6219</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6220"><a href="#L-6220"><span class="linenos">6220</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-6221"><a href="#L-6221"><span class="linenos">6221</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6222"><a href="#L-6222"><span class="linenos">6222</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6223"><a href="#L-6223"><span class="linenos">6223</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="L-6224"><a href="#L-6224"><span class="linenos">6224</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6225"><a href="#L-6225"><span class="linenos">6225</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="L-6226"><a href="#L-6226"><span class="linenos">6226</span></a>
-</span><span id="L-6227"><a href="#L-6227"><span class="linenos">6227</span></a><span class="sd"> Example:</span>
-</span><span id="L-6228"><a href="#L-6228"><span class="linenos">6228</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-6229"><a href="#L-6229"><span class="linenos">6229</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="L-6230"><a href="#L-6230"><span class="linenos">6230</span></a>
-</span><span id="L-6231"><a href="#L-6231"><span class="linenos">6231</span></a><span class="sd"> Args:</span>
-</span><span id="L-6232"><a href="#L-6232"><span class="linenos">6232</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-6233"><a href="#L-6233"><span class="linenos">6233</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-6234"><a href="#L-6234"><span class="linenos">6234</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-6235"><a href="#L-6235"><span class="linenos">6235</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-6236"><a href="#L-6236"><span class="linenos">6236</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-6237"><a href="#L-6237"><span class="linenos">6237</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6238"><a href="#L-6238"><span class="linenos">6238</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-6239"><a href="#L-6239"><span class="linenos">6239</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6240"><a href="#L-6240"><span class="linenos">6240</span></a>
-</span><span id="L-6241"><a href="#L-6241"><span class="linenos">6241</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6242"><a href="#L-6242"><span class="linenos">6242</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="L-6243"><a href="#L-6243"><span class="linenos">6243</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6244"><a href="#L-6244"><span class="linenos">6244</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6245"><a href="#L-6245"><span class="linenos">6245</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6213"><a href="#L-6213"><span class="linenos">6213</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="L-6214"><a href="#L-6214"><span class="linenos">6214</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6215"><a href="#L-6215"><span class="linenos">6215</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6216"><a href="#L-6216"><span class="linenos">6216</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6217"><a href="#L-6217"><span class="linenos">6217</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-6218"><a href="#L-6218"><span class="linenos">6218</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6219"><a href="#L-6219"><span class="linenos">6219</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6220"><a href="#L-6220"><span class="linenos">6220</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="L-6221"><a href="#L-6221"><span class="linenos">6221</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6222"><a href="#L-6222"><span class="linenos">6222</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="L-6223"><a href="#L-6223"><span class="linenos">6223</span></a>
+</span><span id="L-6224"><a href="#L-6224"><span class="linenos">6224</span></a><span class="sd"> Example:</span>
+</span><span id="L-6225"><a href="#L-6225"><span class="linenos">6225</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-6226"><a href="#L-6226"><span class="linenos">6226</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="L-6227"><a href="#L-6227"><span class="linenos">6227</span></a>
+</span><span id="L-6228"><a href="#L-6228"><span class="linenos">6228</span></a><span class="sd"> Args:</span>
+</span><span id="L-6229"><a href="#L-6229"><span class="linenos">6229</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-6230"><a href="#L-6230"><span class="linenos">6230</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-6231"><a href="#L-6231"><span class="linenos">6231</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-6232"><a href="#L-6232"><span class="linenos">6232</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-6233"><a href="#L-6233"><span class="linenos">6233</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-6234"><a href="#L-6234"><span class="linenos">6234</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6235"><a href="#L-6235"><span class="linenos">6235</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="L-6236"><a href="#L-6236"><span class="linenos">6236</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6237"><a href="#L-6237"><span class="linenos">6237</span></a>
+</span><span id="L-6238"><a href="#L-6238"><span class="linenos">6238</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6239"><a href="#L-6239"><span class="linenos">6239</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="L-6240"><a href="#L-6240"><span class="linenos">6240</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6241"><a href="#L-6241"><span class="linenos">6241</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6242"><a href="#L-6242"><span class="linenos">6242</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6243"><a href="#L-6243"><span class="linenos">6243</span></a>
+</span><span id="L-6244"><a href="#L-6244"><span class="linenos">6244</span></a> <span 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-6245"><a href="#L-6245"><span class="linenos">6245</span></a>
</span><span id="L-6246"><a href="#L-6246"><span class="linenos">6246</span></a>
-</span><span id="L-6247"><a href="#L-6247"><span class="linenos">6247</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-6248"><a href="#L-6248"><span class="linenos">6248</span></a>
-</span><span id="L-6249"><a href="#L-6249"><span class="linenos">6249</span></a>
-</span><span id="L-6250"><a href="#L-6250"><span class="linenos">6250</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="L-6251"><a href="#L-6251"><span class="linenos">6251</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6252"><a href="#L-6252"><span class="linenos">6252</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6253"><a href="#L-6253"><span class="linenos">6253</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6254"><a href="#L-6254"><span class="linenos">6254</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-6255"><a href="#L-6255"><span class="linenos">6255</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6256"><a href="#L-6256"><span class="linenos">6256</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6257"><a href="#L-6257"><span class="linenos">6257</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="L-6258"><a href="#L-6258"><span class="linenos">6258</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6259"><a href="#L-6259"><span class="linenos">6259</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="L-6260"><a href="#L-6260"><span class="linenos">6260</span></a>
-</span><span id="L-6261"><a href="#L-6261"><span class="linenos">6261</span></a><span class="sd"> Example:</span>
-</span><span id="L-6262"><a href="#L-6262"><span class="linenos">6262</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-6263"><a href="#L-6263"><span class="linenos">6263</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="L-6264"><a href="#L-6264"><span class="linenos">6264</span></a>
-</span><span id="L-6265"><a href="#L-6265"><span class="linenos">6265</span></a><span class="sd"> Args:</span>
-</span><span id="L-6266"><a href="#L-6266"><span class="linenos">6266</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="L-6267"><a href="#L-6267"><span class="linenos">6267</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-6268"><a href="#L-6268"><span class="linenos">6268</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="L-6269"><a href="#L-6269"><span class="linenos">6269</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="L-6270"><a href="#L-6270"><span class="linenos">6270</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="L-6271"><a href="#L-6271"><span class="linenos">6271</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6272"><a href="#L-6272"><span class="linenos">6272</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-6273"><a href="#L-6273"><span class="linenos">6273</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6274"><a href="#L-6274"><span class="linenos">6274</span></a>
-</span><span id="L-6275"><a href="#L-6275"><span class="linenos">6275</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6276"><a href="#L-6276"><span class="linenos">6276</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="L-6277"><a href="#L-6277"><span class="linenos">6277</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6278"><a href="#L-6278"><span class="linenos">6278</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6279"><a href="#L-6279"><span class="linenos">6279</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6247"><a href="#L-6247"><span class="linenos">6247</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="L-6248"><a href="#L-6248"><span class="linenos">6248</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6249"><a href="#L-6249"><span class="linenos">6249</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6250"><a href="#L-6250"><span class="linenos">6250</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6251"><a href="#L-6251"><span class="linenos">6251</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-6252"><a href="#L-6252"><span class="linenos">6252</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6253"><a href="#L-6253"><span class="linenos">6253</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6254"><a href="#L-6254"><span class="linenos">6254</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="L-6255"><a href="#L-6255"><span class="linenos">6255</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6256"><a href="#L-6256"><span class="linenos">6256</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="L-6257"><a href="#L-6257"><span class="linenos">6257</span></a>
+</span><span id="L-6258"><a href="#L-6258"><span class="linenos">6258</span></a><span class="sd"> Example:</span>
+</span><span id="L-6259"><a href="#L-6259"><span class="linenos">6259</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-6260"><a href="#L-6260"><span class="linenos">6260</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="L-6261"><a href="#L-6261"><span class="linenos">6261</span></a>
+</span><span id="L-6262"><a href="#L-6262"><span class="linenos">6262</span></a><span class="sd"> Args:</span>
+</span><span id="L-6263"><a href="#L-6263"><span class="linenos">6263</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-6264"><a href="#L-6264"><span class="linenos">6264</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-6265"><a href="#L-6265"><span class="linenos">6265</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-6266"><a href="#L-6266"><span class="linenos">6266</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-6267"><a href="#L-6267"><span class="linenos">6267</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-6268"><a href="#L-6268"><span class="linenos">6268</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6269"><a href="#L-6269"><span class="linenos">6269</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="L-6270"><a href="#L-6270"><span class="linenos">6270</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6271"><a href="#L-6271"><span class="linenos">6271</span></a>
+</span><span id="L-6272"><a href="#L-6272"><span class="linenos">6272</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6273"><a href="#L-6273"><span class="linenos">6273</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="L-6274"><a href="#L-6274"><span class="linenos">6274</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6275"><a href="#L-6275"><span class="linenos">6275</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6276"><a href="#L-6276"><span class="linenos">6276</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6277"><a href="#L-6277"><span class="linenos">6277</span></a>
+</span><span id="L-6278"><a href="#L-6278"><span class="linenos">6278</span></a> <span class="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-6279"><a href="#L-6279"><span class="linenos">6279</span></a>
</span><span id="L-6280"><a href="#L-6280"><span class="linenos">6280</span></a>
-</span><span id="L-6281"><a href="#L-6281"><span class="linenos">6281</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-6282"><a href="#L-6282"><span class="linenos">6282</span></a>
-</span><span id="L-6283"><a href="#L-6283"><span class="linenos">6283</span></a>
-</span><span id="L-6284"><a href="#L-6284"><span class="linenos">6284</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-6285"><a href="#L-6285"><span class="linenos">6285</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6286"><a href="#L-6286"><span class="linenos">6286</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="L-6287"><a href="#L-6287"><span class="linenos">6287</span></a>
-</span><span id="L-6288"><a href="#L-6288"><span class="linenos">6288</span></a><span class="sd"> Example:</span>
-</span><span id="L-6289"><a href="#L-6289"><span class="linenos">6289</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-6290"><a href="#L-6290"><span class="linenos">6290</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-6281"><a href="#L-6281"><span class="linenos">6281</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="L-6282"><a href="#L-6282"><span class="linenos">6282</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6283"><a href="#L-6283"><span class="linenos">6283</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6284"><a href="#L-6284"><span class="linenos">6284</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6285"><a href="#L-6285"><span class="linenos">6285</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-6286"><a href="#L-6286"><span class="linenos">6286</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6287"><a href="#L-6287"><span class="linenos">6287</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6288"><a href="#L-6288"><span class="linenos">6288</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="L-6289"><a href="#L-6289"><span class="linenos">6289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6290"><a href="#L-6290"><span class="linenos">6290</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
</span><span id="L-6291"><a href="#L-6291"><span class="linenos">6291</span></a>
-</span><span id="L-6292"><a href="#L-6292"><span class="linenos">6292</span></a><span class="sd"> Args:</span>
-</span><span id="L-6293"><a href="#L-6293"><span class="linenos">6293</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="L-6294"><a href="#L-6294"><span class="linenos">6294</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6295"><a href="#L-6295"><span class="linenos">6295</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="L-6296"><a href="#L-6296"><span class="linenos">6296</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-6297"><a href="#L-6297"><span class="linenos">6297</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-6298"><a href="#L-6298"><span class="linenos">6298</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="L-6299"><a href="#L-6299"><span class="linenos">6299</span></a>
-</span><span id="L-6300"><a href="#L-6300"><span class="linenos">6300</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6301"><a href="#L-6301"><span class="linenos">6301</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-6302"><a href="#L-6302"><span class="linenos">6302</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6303"><a href="#L-6303"><span class="linenos">6303</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-6304"><a href="#L-6304"><span class="linenos">6304</span></a>
+</span><span id="L-6292"><a href="#L-6292"><span class="linenos">6292</span></a><span class="sd"> Example:</span>
+</span><span id="L-6293"><a href="#L-6293"><span class="linenos">6293</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-6294"><a href="#L-6294"><span class="linenos">6294</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="L-6295"><a href="#L-6295"><span class="linenos">6295</span></a>
+</span><span id="L-6296"><a href="#L-6296"><span class="linenos">6296</span></a><span class="sd"> Args:</span>
+</span><span id="L-6297"><a href="#L-6297"><span class="linenos">6297</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="L-6298"><a href="#L-6298"><span class="linenos">6298</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-6299"><a href="#L-6299"><span class="linenos">6299</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="L-6300"><a href="#L-6300"><span class="linenos">6300</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="L-6301"><a href="#L-6301"><span class="linenos">6301</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="L-6302"><a href="#L-6302"><span class="linenos">6302</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6303"><a href="#L-6303"><span class="linenos">6303</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="L-6304"><a href="#L-6304"><span class="linenos">6304</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-6305"><a href="#L-6305"><span class="linenos">6305</span></a>
-</span><span id="L-6306"><a href="#L-6306"><span class="linenos">6306</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-6307"><a href="#L-6307"><span class="linenos">6307</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6308"><a href="#L-6308"><span class="linenos">6308</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="L-6309"><a href="#L-6309"><span class="linenos">6309</span></a>
-</span><span id="L-6310"><a href="#L-6310"><span class="linenos">6310</span></a><span class="sd"> Example:</span>
-</span><span id="L-6311"><a href="#L-6311"><span class="linenos">6311</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-6312"><a href="#L-6312"><span class="linenos">6312</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-6306"><a href="#L-6306"><span class="linenos">6306</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6307"><a href="#L-6307"><span class="linenos">6307</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="L-6308"><a href="#L-6308"><span class="linenos">6308</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6309"><a href="#L-6309"><span class="linenos">6309</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6310"><a href="#L-6310"><span class="linenos">6310</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6311"><a href="#L-6311"><span class="linenos">6311</span></a>
+</span><span id="L-6312"><a href="#L-6312"><span class="linenos">6312</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-6313"><a href="#L-6313"><span class="linenos">6313</span></a>
-</span><span id="L-6314"><a href="#L-6314"><span class="linenos">6314</span></a><span class="sd"> Args:</span>
-</span><span id="L-6315"><a href="#L-6315"><span class="linenos">6315</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="L-6316"><a href="#L-6316"><span class="linenos">6316</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6317"><a href="#L-6317"><span class="linenos">6317</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-6318"><a href="#L-6318"><span class="linenos">6318</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-6319"><a href="#L-6319"><span class="linenos">6319</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-6320"><a href="#L-6320"><span class="linenos">6320</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="L-6321"><a href="#L-6321"><span class="linenos">6321</span></a>
-</span><span id="L-6322"><a href="#L-6322"><span class="linenos">6322</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6323"><a href="#L-6323"><span class="linenos">6323</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="L-6324"><a href="#L-6324"><span class="linenos">6324</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6325"><a href="#L-6325"><span class="linenos">6325</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-6326"><a href="#L-6326"><span class="linenos">6326</span></a>
-</span><span id="L-6327"><a href="#L-6327"><span class="linenos">6327</span></a>
-</span><span id="L-6328"><a href="#L-6328"><span class="linenos">6328</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="L-6329"><a href="#L-6329"><span class="linenos">6329</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
-</span><span id="L-6330"><a href="#L-6330"><span class="linenos">6330</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="L-6331"><a href="#L-6331"><span class="linenos">6331</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6332"><a href="#L-6332"><span class="linenos">6332</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6333"><a href="#L-6333"><span class="linenos">6333</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-6334"><a href="#L-6334"><span class="linenos">6334</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6335"><a href="#L-6335"><span class="linenos">6335</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="L-6336"><a href="#L-6336"><span class="linenos">6336</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6337"><a href="#L-6337"><span class="linenos">6337</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="L-6338"><a href="#L-6338"><span class="linenos">6338</span></a>
-</span><span id="L-6339"><a href="#L-6339"><span class="linenos">6339</span></a><span class="sd"> Example:</span>
-</span><span id="L-6340"><a href="#L-6340"><span class="linenos">6340</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-6341"><a href="#L-6341"><span class="linenos">6341</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-6342"><a href="#L-6342"><span class="linenos">6342</span></a>
-</span><span id="L-6343"><a href="#L-6343"><span class="linenos">6343</span></a><span class="sd"> Args:</span>
-</span><span id="L-6344"><a href="#L-6344"><span class="linenos">6344</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="L-6345"><a href="#L-6345"><span class="linenos">6345</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="L-6346"><a href="#L-6346"><span class="linenos">6346</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-6347"><a href="#L-6347"><span class="linenos">6347</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="L-6348"><a href="#L-6348"><span class="linenos">6348</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-6349"><a href="#L-6349"><span class="linenos">6349</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6350"><a href="#L-6350"><span class="linenos">6350</span></a>
-</span><span id="L-6351"><a href="#L-6351"><span class="linenos">6351</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6352"><a href="#L-6352"><span class="linenos">6352</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="L-6353"><a href="#L-6353"><span class="linenos">6353</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6354"><a href="#L-6354"><span class="linenos">6354</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
-</span><span id="L-6355"><a href="#L-6355"><span class="linenos">6355</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-6356"><a href="#L-6356"><span class="linenos">6356</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="L-6357"><a href="#L-6357"><span class="linenos">6357</span></a> <span class="p">[</span>
-</span><span id="L-6358"><a href="#L-6358"><span class="linenos">6358</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-6359"><a href="#L-6359"><span class="linenos">6359</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-6360"><a href="#L-6360"><span class="linenos">6360</span></a> <span class="p">],</span>
-</span><span id="L-6361"><a href="#L-6361"><span class="linenos">6361</span></a> <span class="p">)</span>
-</span><span id="L-6362"><a href="#L-6362"><span class="linenos">6362</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="L-6363"><a href="#L-6363"><span class="linenos">6363</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-6364"><a href="#L-6364"><span class="linenos">6364</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="L-6365"><a href="#L-6365"><span class="linenos">6365</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-6366"><a href="#L-6366"><span class="linenos">6366</span></a> <span class="p">)</span>
-</span><span id="L-6367"><a href="#L-6367"><span class="linenos">6367</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-6368"><a href="#L-6368"><span class="linenos">6368</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-6369"><a href="#L-6369"><span class="linenos">6369</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-6370"><a href="#L-6370"><span class="linenos">6370</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="L-6371"><a href="#L-6371"><span class="linenos">6371</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="L-6372"><a href="#L-6372"><span class="linenos">6372</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-6373"><a href="#L-6373"><span class="linenos">6373</span></a> <span class="p">)</span>
-</span><span id="L-6374"><a href="#L-6374"><span class="linenos">6374</span></a> <span class="k">return</span> <span class="n">update_expr</span>
-</span><span id="L-6375"><a href="#L-6375"><span class="linenos">6375</span></a>
-</span><span id="L-6376"><a href="#L-6376"><span class="linenos">6376</span></a>
-</span><span id="L-6377"><a href="#L-6377"><span class="linenos">6377</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="L-6378"><a href="#L-6378"><span class="linenos">6378</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6379"><a href="#L-6379"><span class="linenos">6379</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6380"><a href="#L-6380"><span class="linenos">6380</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6381"><a href="#L-6381"><span class="linenos">6381</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-6382"><a href="#L-6382"><span class="linenos">6382</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6383"><a href="#L-6383"><span class="linenos">6383</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="L-6384"><a href="#L-6384"><span class="linenos">6384</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6385"><a href="#L-6385"><span class="linenos">6385</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="L-6386"><a href="#L-6386"><span class="linenos">6386</span></a>
-</span><span id="L-6387"><a href="#L-6387"><span class="linenos">6387</span></a><span class="sd"> Example:</span>
-</span><span id="L-6388"><a href="#L-6388"><span class="linenos">6388</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-6389"><a href="#L-6389"><span class="linenos">6389</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="L-6390"><a href="#L-6390"><span class="linenos">6390</span></a>
-</span><span id="L-6391"><a href="#L-6391"><span class="linenos">6391</span></a><span class="sd"> Args:</span>
-</span><span id="L-6392"><a href="#L-6392"><span class="linenos">6392</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="L-6393"><a href="#L-6393"><span class="linenos">6393</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-6394"><a href="#L-6394"><span class="linenos">6394</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-6395"><a href="#L-6395"><span class="linenos">6395</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6396"><a href="#L-6396"><span class="linenos">6396</span></a>
-</span><span id="L-6397"><a href="#L-6397"><span class="linenos">6397</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6398"><a href="#L-6398"><span class="linenos">6398</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="L-6399"><a href="#L-6399"><span class="linenos">6399</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6400"><a href="#L-6400"><span class="linenos">6400</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6401"><a href="#L-6401"><span class="linenos">6401</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="L-6402"><a href="#L-6402"><span class="linenos">6402</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6403"><a href="#L-6403"><span class="linenos">6403</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-6404"><a href="#L-6404"><span class="linenos">6404</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
-</span><span id="L-6405"><a href="#L-6405"><span class="linenos">6405</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6406"><a href="#L-6406"><span class="linenos">6406</span></a> <span class="p">)</span>
-</span><span id="L-6407"><a href="#L-6407"><span class="linenos">6407</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
-</span><span id="L-6408"><a href="#L-6408"><span class="linenos">6408</span></a>
-</span><span id="L-6409"><a href="#L-6409"><span class="linenos">6409</span></a>
-</span><span id="L-6410"><a href="#L-6410"><span class="linenos">6410</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="L-6411"><a href="#L-6411"><span class="linenos">6411</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6412"><a href="#L-6412"><span class="linenos">6412</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6413"><a href="#L-6413"><span class="linenos">6413</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="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-6414"><a href="#L-6414"><span class="linenos">6414</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6415"><a href="#L-6415"><span class="linenos">6415</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6416"><a href="#L-6416"><span class="linenos">6416</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-6417"><a href="#L-6417"><span class="linenos">6417</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6418"><a href="#L-6418"><span class="linenos">6418</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6419"><a href="#L-6419"><span class="linenos">6419</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="L-6420"><a href="#L-6420"><span class="linenos">6420</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6421"><a href="#L-6421"><span class="linenos">6421</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="L-6422"><a href="#L-6422"><span class="linenos">6422</span></a>
-</span><span id="L-6423"><a href="#L-6423"><span class="linenos">6423</span></a><span class="sd"> Example:</span>
-</span><span id="L-6424"><a href="#L-6424"><span class="linenos">6424</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="L-6425"><a href="#L-6425"><span class="linenos">6425</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="L-6426"><a href="#L-6426"><span class="linenos">6426</span></a>
-</span><span id="L-6427"><a href="#L-6427"><span class="linenos">6427</span></a><span class="sd"> Args:</span>
-</span><span id="L-6428"><a href="#L-6428"><span class="linenos">6428</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="L-6429"><a href="#L-6429"><span class="linenos">6429</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="L-6430"><a href="#L-6430"><span class="linenos">6430</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="L-6431"><a href="#L-6431"><span class="linenos">6431</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="L-6432"><a href="#L-6432"><span class="linenos">6432</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="L-6433"><a href="#L-6433"><span class="linenos">6433</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="L-6434"><a href="#L-6434"><span class="linenos">6434</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-6435"><a href="#L-6435"><span class="linenos">6435</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6436"><a href="#L-6436"><span class="linenos">6436</span></a>
-</span><span id="L-6437"><a href="#L-6437"><span class="linenos">6437</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6438"><a href="#L-6438"><span class="linenos">6438</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="L-6439"><a href="#L-6439"><span class="linenos">6439</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6440"><a href="#L-6440"><span class="linenos">6440</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6441"><a href="#L-6441"><span class="linenos">6441</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6442"><a href="#L-6442"><span class="linenos">6442</span></a>
-</span><span id="L-6443"><a href="#L-6443"><span class="linenos">6443</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="L-6444"><a href="#L-6444"><span class="linenos">6444</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
-</span><span id="L-6445"><a href="#L-6445"><span class="linenos">6445</span></a>
-</span><span id="L-6446"><a href="#L-6446"><span class="linenos">6446</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
-</span><span id="L-6447"><a href="#L-6447"><span class="linenos">6447</span></a>
-</span><span id="L-6448"><a href="#L-6448"><span class="linenos">6448</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="L-6449"><a href="#L-6449"><span class="linenos">6449</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-6450"><a href="#L-6450"><span class="linenos">6450</span></a>
-</span><span id="L-6451"><a href="#L-6451"><span class="linenos">6451</span></a> <span class="k">return</span> <span class="n">insert</span>
-</span><span id="L-6452"><a href="#L-6452"><span class="linenos">6452</span></a>
+</span><span id="L-6314"><a href="#L-6314"><span class="linenos">6314</span></a>
+</span><span id="L-6315"><a href="#L-6315"><span class="linenos">6315</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-6316"><a href="#L-6316"><span class="linenos">6316</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6317"><a href="#L-6317"><span class="linenos">6317</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="L-6318"><a href="#L-6318"><span class="linenos">6318</span></a>
+</span><span id="L-6319"><a href="#L-6319"><span class="linenos">6319</span></a><span class="sd"> Example:</span>
+</span><span id="L-6320"><a href="#L-6320"><span class="linenos">6320</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-6321"><a href="#L-6321"><span class="linenos">6321</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-6322"><a href="#L-6322"><span class="linenos">6322</span></a>
+</span><span id="L-6323"><a href="#L-6323"><span class="linenos">6323</span></a><span class="sd"> Args:</span>
+</span><span id="L-6324"><a href="#L-6324"><span class="linenos">6324</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="L-6325"><a href="#L-6325"><span class="linenos">6325</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6326"><a href="#L-6326"><span class="linenos">6326</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="L-6327"><a href="#L-6327"><span class="linenos">6327</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-6328"><a href="#L-6328"><span class="linenos">6328</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-6329"><a href="#L-6329"><span class="linenos">6329</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="L-6330"><a href="#L-6330"><span class="linenos">6330</span></a>
+</span><span id="L-6331"><a href="#L-6331"><span class="linenos">6331</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6332"><a href="#L-6332"><span class="linenos">6332</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-6333"><a href="#L-6333"><span class="linenos">6333</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6334"><a href="#L-6334"><span class="linenos">6334</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-6335"><a href="#L-6335"><span class="linenos">6335</span></a>
+</span><span id="L-6336"><a href="#L-6336"><span class="linenos">6336</span></a>
+</span><span id="L-6337"><a href="#L-6337"><span class="linenos">6337</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-6338"><a href="#L-6338"><span class="linenos">6338</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6339"><a href="#L-6339"><span class="linenos">6339</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="L-6340"><a href="#L-6340"><span class="linenos">6340</span></a>
+</span><span id="L-6341"><a href="#L-6341"><span class="linenos">6341</span></a><span class="sd"> Example:</span>
+</span><span id="L-6342"><a href="#L-6342"><span class="linenos">6342</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-6343"><a href="#L-6343"><span class="linenos">6343</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="L-6344"><a href="#L-6344"><span class="linenos">6344</span></a>
+</span><span id="L-6345"><a href="#L-6345"><span class="linenos">6345</span></a><span class="sd"> Args:</span>
+</span><span id="L-6346"><a href="#L-6346"><span class="linenos">6346</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="L-6347"><a href="#L-6347"><span class="linenos">6347</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6348"><a href="#L-6348"><span class="linenos">6348</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-6349"><a href="#L-6349"><span class="linenos">6349</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-6350"><a href="#L-6350"><span class="linenos">6350</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-6351"><a href="#L-6351"><span class="linenos">6351</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-6352"><a href="#L-6352"><span class="linenos">6352</span></a>
+</span><span id="L-6353"><a href="#L-6353"><span class="linenos">6353</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6354"><a href="#L-6354"><span class="linenos">6354</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="L-6355"><a href="#L-6355"><span class="linenos">6355</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6356"><a href="#L-6356"><span class="linenos">6356</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-6357"><a href="#L-6357"><span class="linenos">6357</span></a>
+</span><span id="L-6358"><a href="#L-6358"><span class="linenos">6358</span></a>
+</span><span id="L-6359"><a href="#L-6359"><span class="linenos">6359</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="L-6360"><a href="#L-6360"><span class="linenos">6360</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
+</span><span id="L-6361"><a href="#L-6361"><span class="linenos">6361</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="L-6362"><a href="#L-6362"><span class="linenos">6362</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6363"><a href="#L-6363"><span class="linenos">6363</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6364"><a href="#L-6364"><span class="linenos">6364</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-6365"><a href="#L-6365"><span class="linenos">6365</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6366"><a href="#L-6366"><span class="linenos">6366</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="L-6367"><a href="#L-6367"><span class="linenos">6367</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6368"><a href="#L-6368"><span class="linenos">6368</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="L-6369"><a href="#L-6369"><span class="linenos">6369</span></a>
+</span><span id="L-6370"><a href="#L-6370"><span class="linenos">6370</span></a><span class="sd"> Example:</span>
+</span><span id="L-6371"><a href="#L-6371"><span class="linenos">6371</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-6372"><a href="#L-6372"><span class="linenos">6372</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-6373"><a href="#L-6373"><span class="linenos">6373</span></a>
+</span><span id="L-6374"><a href="#L-6374"><span class="linenos">6374</span></a><span class="sd"> Args:</span>
+</span><span id="L-6375"><a href="#L-6375"><span class="linenos">6375</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="L-6376"><a href="#L-6376"><span class="linenos">6376</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="L-6377"><a href="#L-6377"><span class="linenos">6377</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-6378"><a href="#L-6378"><span class="linenos">6378</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="L-6379"><a href="#L-6379"><span class="linenos">6379</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-6380"><a href="#L-6380"><span class="linenos">6380</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6381"><a href="#L-6381"><span class="linenos">6381</span></a>
+</span><span id="L-6382"><a href="#L-6382"><span class="linenos">6382</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6383"><a href="#L-6383"><span class="linenos">6383</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="L-6384"><a href="#L-6384"><span class="linenos">6384</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6385"><a href="#L-6385"><span class="linenos">6385</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
+</span><span id="L-6386"><a href="#L-6386"><span class="linenos">6386</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-6387"><a href="#L-6387"><span class="linenos">6387</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="L-6388"><a href="#L-6388"><span class="linenos">6388</span></a> <span class="p">[</span>
+</span><span id="L-6389"><a href="#L-6389"><span class="linenos">6389</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-6390"><a href="#L-6390"><span class="linenos">6390</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-6391"><a href="#L-6391"><span class="linenos">6391</span></a> <span class="p">],</span>
+</span><span id="L-6392"><a href="#L-6392"><span class="linenos">6392</span></a> <span class="p">)</span>
+</span><span id="L-6393"><a href="#L-6393"><span class="linenos">6393</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="L-6394"><a href="#L-6394"><span class="linenos">6394</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-6395"><a href="#L-6395"><span class="linenos">6395</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="L-6396"><a href="#L-6396"><span class="linenos">6396</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-6397"><a href="#L-6397"><span class="linenos">6397</span></a> <span class="p">)</span>
+</span><span id="L-6398"><a href="#L-6398"><span class="linenos">6398</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-6399"><a href="#L-6399"><span class="linenos">6399</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-6400"><a href="#L-6400"><span class="linenos">6400</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-6401"><a href="#L-6401"><span class="linenos">6401</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="L-6402"><a href="#L-6402"><span class="linenos">6402</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="L-6403"><a href="#L-6403"><span class="linenos">6403</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-6404"><a href="#L-6404"><span class="linenos">6404</span></a> <span class="p">)</span>
+</span><span id="L-6405"><a href="#L-6405"><span class="linenos">6405</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+</span><span id="L-6406"><a href="#L-6406"><span class="linenos">6406</span></a>
+</span><span id="L-6407"><a href="#L-6407"><span class="linenos">6407</span></a>
+</span><span id="L-6408"><a href="#L-6408"><span class="linenos">6408</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="L-6409"><a href="#L-6409"><span class="linenos">6409</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6410"><a href="#L-6410"><span class="linenos">6410</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6411"><a href="#L-6411"><span class="linenos">6411</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6412"><a href="#L-6412"><span class="linenos">6412</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-6413"><a href="#L-6413"><span class="linenos">6413</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6414"><a href="#L-6414"><span class="linenos">6414</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="L-6415"><a href="#L-6415"><span class="linenos">6415</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6416"><a href="#L-6416"><span class="linenos">6416</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="L-6417"><a href="#L-6417"><span class="linenos">6417</span></a>
+</span><span id="L-6418"><a href="#L-6418"><span class="linenos">6418</span></a><span class="sd"> Example:</span>
+</span><span id="L-6419"><a href="#L-6419"><span class="linenos">6419</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-6420"><a href="#L-6420"><span class="linenos">6420</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="L-6421"><a href="#L-6421"><span class="linenos">6421</span></a>
+</span><span id="L-6422"><a href="#L-6422"><span class="linenos">6422</span></a><span class="sd"> Args:</span>
+</span><span id="L-6423"><a href="#L-6423"><span class="linenos">6423</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="L-6424"><a href="#L-6424"><span class="linenos">6424</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-6425"><a href="#L-6425"><span class="linenos">6425</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-6426"><a href="#L-6426"><span class="linenos">6426</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6427"><a href="#L-6427"><span class="linenos">6427</span></a>
+</span><span id="L-6428"><a href="#L-6428"><span class="linenos">6428</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6429"><a href="#L-6429"><span class="linenos">6429</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="L-6430"><a href="#L-6430"><span class="linenos">6430</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6431"><a href="#L-6431"><span class="linenos">6431</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6432"><a href="#L-6432"><span class="linenos">6432</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="L-6433"><a href="#L-6433"><span class="linenos">6433</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6434"><a href="#L-6434"><span class="linenos">6434</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-6435"><a href="#L-6435"><span class="linenos">6435</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
+</span><span id="L-6436"><a href="#L-6436"><span class="linenos">6436</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6437"><a href="#L-6437"><span class="linenos">6437</span></a> <span class="p">)</span>
+</span><span id="L-6438"><a href="#L-6438"><span class="linenos">6438</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+</span><span id="L-6439"><a href="#L-6439"><span class="linenos">6439</span></a>
+</span><span id="L-6440"><a href="#L-6440"><span class="linenos">6440</span></a>
+</span><span id="L-6441"><a href="#L-6441"><span class="linenos">6441</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="L-6442"><a href="#L-6442"><span class="linenos">6442</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6443"><a href="#L-6443"><span class="linenos">6443</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6444"><a href="#L-6444"><span class="linenos">6444</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="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-6445"><a href="#L-6445"><span class="linenos">6445</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6446"><a href="#L-6446"><span class="linenos">6446</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6447"><a href="#L-6447"><span class="linenos">6447</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-6448"><a href="#L-6448"><span class="linenos">6448</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6449"><a href="#L-6449"><span class="linenos">6449</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6450"><a href="#L-6450"><span class="linenos">6450</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="L-6451"><a href="#L-6451"><span class="linenos">6451</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6452"><a href="#L-6452"><span class="linenos">6452</span></a><span class="sd"> Builds an INSERT statement.</span>
</span><span id="L-6453"><a href="#L-6453"><span class="linenos">6453</span></a>
-</span><span id="L-6454"><a href="#L-6454"><span class="linenos">6454</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="L-6455"><a href="#L-6455"><span class="linenos">6455</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-6456"><a href="#L-6456"><span class="linenos">6456</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-6457"><a href="#L-6457"><span class="linenos">6457</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6458"><a href="#L-6458"><span class="linenos">6458</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="L-6459"><a href="#L-6459"><span class="linenos">6459</span></a>
-</span><span id="L-6460"><a href="#L-6460"><span class="linenos">6460</span></a><span class="sd"> Example:</span>
-</span><span id="L-6461"><a href="#L-6461"><span class="linenos">6461</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="L-6462"><a href="#L-6462"><span class="linenos">6462</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="L-6463"><a href="#L-6463"><span class="linenos">6463</span></a>
-</span><span id="L-6464"><a href="#L-6464"><span class="linenos">6464</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="L-6465"><a href="#L-6465"><span class="linenos">6465</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="L-6466"><a href="#L-6466"><span class="linenos">6466</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="L-6467"><a href="#L-6467"><span class="linenos">6467</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="L-6468"><a href="#L-6468"><span class="linenos">6468</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="L-6469"><a href="#L-6469"><span class="linenos">6469</span></a>
-</span><span id="L-6470"><a href="#L-6470"><span class="linenos">6470</span></a><span class="sd"> Args:</span>
-</span><span id="L-6471"><a href="#L-6471"><span class="linenos">6471</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="L-6472"><a href="#L-6472"><span class="linenos">6472</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6473"><a href="#L-6473"><span class="linenos">6473</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="L-6474"><a href="#L-6474"><span class="linenos">6474</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="L-6475"><a href="#L-6475"><span class="linenos">6475</span></a><span class="sd"> copy: Whether to copy `expression` (only applies to expressions).</span>
-</span><span id="L-6476"><a href="#L-6476"><span class="linenos">6476</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="L-6477"><a href="#L-6477"><span class="linenos">6477</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-6454"><a href="#L-6454"><span class="linenos">6454</span></a><span class="sd"> Example:</span>
+</span><span id="L-6455"><a href="#L-6455"><span class="linenos">6455</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="L-6456"><a href="#L-6456"><span class="linenos">6456</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="L-6457"><a href="#L-6457"><span class="linenos">6457</span></a>
+</span><span id="L-6458"><a href="#L-6458"><span class="linenos">6458</span></a><span class="sd"> Args:</span>
+</span><span id="L-6459"><a href="#L-6459"><span class="linenos">6459</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="L-6460"><a href="#L-6460"><span class="linenos">6460</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="L-6461"><a href="#L-6461"><span class="linenos">6461</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="L-6462"><a href="#L-6462"><span class="linenos">6462</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="L-6463"><a href="#L-6463"><span class="linenos">6463</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="L-6464"><a href="#L-6464"><span class="linenos">6464</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="L-6465"><a href="#L-6465"><span class="linenos">6465</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="L-6466"><a href="#L-6466"><span class="linenos">6466</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6467"><a href="#L-6467"><span class="linenos">6467</span></a>
+</span><span id="L-6468"><a href="#L-6468"><span class="linenos">6468</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6469"><a href="#L-6469"><span class="linenos">6469</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="L-6470"><a href="#L-6470"><span class="linenos">6470</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6471"><a href="#L-6471"><span class="linenos">6471</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6472"><a href="#L-6472"><span class="linenos">6472</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6473"><a href="#L-6473"><span class="linenos">6473</span></a>
+</span><span id="L-6474"><a href="#L-6474"><span class="linenos">6474</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="L-6475"><a href="#L-6475"><span class="linenos">6475</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
+</span><span id="L-6476"><a href="#L-6476"><span class="linenos">6476</span></a>
+</span><span id="L-6477"><a href="#L-6477"><span class="linenos">6477</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
</span><span id="L-6478"><a href="#L-6478"><span class="linenos">6478</span></a>
-</span><span id="L-6479"><a href="#L-6479"><span class="linenos">6479</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6480"><a href="#L-6480"><span class="linenos">6480</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="L-6481"><a href="#L-6481"><span class="linenos">6481</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6482"><a href="#L-6482"><span class="linenos">6482</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="L-6483"><a href="#L-6483"><span class="linenos">6483</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-6484"><a href="#L-6484"><span class="linenos">6484</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="L-6485"><a href="#L-6485"><span class="linenos">6485</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-6486"><a href="#L-6486"><span class="linenos">6486</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-6487"><a href="#L-6487"><span class="linenos">6487</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6488"><a href="#L-6488"><span class="linenos">6488</span></a> <span class="p">)</span>
-</span><span id="L-6489"><a href="#L-6489"><span class="linenos">6489</span></a>
+</span><span id="L-6479"><a href="#L-6479"><span class="linenos">6479</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="L-6480"><a href="#L-6480"><span class="linenos">6480</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-6481"><a href="#L-6481"><span class="linenos">6481</span></a>
+</span><span id="L-6482"><a href="#L-6482"><span class="linenos">6482</span></a> <span class="k">return</span> <span class="n">insert</span>
+</span><span id="L-6483"><a href="#L-6483"><span class="linenos">6483</span></a>
+</span><span id="L-6484"><a href="#L-6484"><span class="linenos">6484</span></a>
+</span><span id="L-6485"><a href="#L-6485"><span class="linenos">6485</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="L-6486"><a href="#L-6486"><span class="linenos">6486</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-6487"><a href="#L-6487"><span class="linenos">6487</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-6488"><a href="#L-6488"><span class="linenos">6488</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6489"><a href="#L-6489"><span class="linenos">6489</span></a><span class="sd"> Initialize a logical condition expression.</span>
</span><span id="L-6490"><a href="#L-6490"><span class="linenos">6490</span></a>
-</span><span id="L-6491"><a href="#L-6491"><span class="linenos">6491</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="L-6492"><a href="#L-6492"><span class="linenos">6492</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-6493"><a href="#L-6493"><span class="linenos">6493</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-6494"><a href="#L-6494"><span class="linenos">6494</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6495"><a href="#L-6495"><span class="linenos">6495</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="L-6496"><a href="#L-6496"><span class="linenos">6496</span></a>
-</span><span id="L-6497"><a href="#L-6497"><span class="linenos">6497</span></a><span class="sd"> Example:</span>
-</span><span id="L-6498"><a href="#L-6498"><span class="linenos">6498</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-6499"><a href="#L-6499"><span class="linenos">6499</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-6491"><a href="#L-6491"><span class="linenos">6491</span></a><span class="sd"> Example:</span>
+</span><span id="L-6492"><a href="#L-6492"><span class="linenos">6492</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="L-6493"><a href="#L-6493"><span class="linenos">6493</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="L-6494"><a href="#L-6494"><span class="linenos">6494</span></a>
+</span><span id="L-6495"><a href="#L-6495"><span class="linenos">6495</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="L-6496"><a href="#L-6496"><span class="linenos">6496</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="L-6497"><a href="#L-6497"><span class="linenos">6497</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="L-6498"><a href="#L-6498"><span class="linenos">6498</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="L-6499"><a href="#L-6499"><span class="linenos">6499</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
</span><span id="L-6500"><a href="#L-6500"><span class="linenos">6500</span></a>
</span><span id="L-6501"><a href="#L-6501"><span class="linenos">6501</span></a><span class="sd"> Args:</span>
-</span><span id="L-6502"><a href="#L-6502"><span class="linenos">6502</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-6502"><a href="#L-6502"><span class="linenos">6502</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
</span><span id="L-6503"><a href="#L-6503"><span class="linenos">6503</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6504"><a href="#L-6504"><span class="linenos">6504</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6505"><a href="#L-6505"><span class="linenos">6505</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-6506"><a href="#L-6506"><span class="linenos">6506</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6507"><a href="#L-6507"><span class="linenos">6507</span></a>
-</span><span id="L-6508"><a href="#L-6508"><span class="linenos">6508</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6509"><a href="#L-6509"><span class="linenos">6509</span></a><span class="sd"> And: the new condition</span>
-</span><span id="L-6510"><a href="#L-6510"><span class="linenos">6510</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6511"><a href="#L-6511"><span class="linenos">6511</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-6512"><a href="#L-6512"><span class="linenos">6512</span></a>
-</span><span id="L-6513"><a href="#L-6513"><span class="linenos">6513</span></a>
-</span><span id="L-6514"><a href="#L-6514"><span class="linenos">6514</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="L-6515"><a href="#L-6515"><span class="linenos">6515</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="L-6516"><a href="#L-6516"><span class="linenos">6516</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="L-6517"><a href="#L-6517"><span class="linenos">6517</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6518"><a href="#L-6518"><span class="linenos">6518</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="L-6519"><a href="#L-6519"><span class="linenos">6519</span></a>
-</span><span id="L-6520"><a href="#L-6520"><span class="linenos">6520</span></a><span class="sd"> Example:</span>
-</span><span id="L-6521"><a href="#L-6521"><span class="linenos">6521</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-6522"><a href="#L-6522"><span class="linenos">6522</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="L-6523"><a href="#L-6523"><span class="linenos">6523</span></a>
-</span><span id="L-6524"><a href="#L-6524"><span class="linenos">6524</span></a><span class="sd"> Args:</span>
-</span><span id="L-6525"><a href="#L-6525"><span class="linenos">6525</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="L-6526"><a href="#L-6526"><span class="linenos">6526</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6527"><a href="#L-6527"><span class="linenos">6527</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6528"><a href="#L-6528"><span class="linenos">6528</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
-</span><span id="L-6529"><a href="#L-6529"><span class="linenos">6529</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6530"><a href="#L-6530"><span class="linenos">6530</span></a>
-</span><span id="L-6531"><a href="#L-6531"><span class="linenos">6531</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6532"><a href="#L-6532"><span class="linenos">6532</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="L-6533"><a href="#L-6533"><span class="linenos">6533</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6534"><a href="#L-6534"><span class="linenos">6534</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="L-6535"><a href="#L-6535"><span class="linenos">6535</span></a>
-</span><span id="L-6536"><a href="#L-6536"><span class="linenos">6536</span></a>
-</span><span id="L-6537"><a href="#L-6537"><span class="linenos">6537</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="L-6538"><a href="#L-6538"><span class="linenos">6538</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6539"><a href="#L-6539"><span class="linenos">6539</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="L-6540"><a href="#L-6540"><span class="linenos">6540</span></a>
-</span><span id="L-6541"><a href="#L-6541"><span class="linenos">6541</span></a><span class="sd"> Example:</span>
-</span><span id="L-6542"><a href="#L-6542"><span class="linenos">6542</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="L-6543"><a href="#L-6543"><span class="linenos">6543</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="L-6504"><a href="#L-6504"><span class="linenos">6504</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="L-6505"><a href="#L-6505"><span class="linenos">6505</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="L-6506"><a href="#L-6506"><span class="linenos">6506</span></a><span class="sd"> copy: Whether to copy `expression` (only applies to expressions).</span>
+</span><span id="L-6507"><a href="#L-6507"><span class="linenos">6507</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="L-6508"><a href="#L-6508"><span class="linenos">6508</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="L-6509"><a href="#L-6509"><span class="linenos">6509</span></a>
+</span><span id="L-6510"><a href="#L-6510"><span class="linenos">6510</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6511"><a href="#L-6511"><span class="linenos">6511</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="L-6512"><a href="#L-6512"><span class="linenos">6512</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6513"><a href="#L-6513"><span class="linenos">6513</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="L-6514"><a href="#L-6514"><span class="linenos">6514</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-6515"><a href="#L-6515"><span class="linenos">6515</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="L-6516"><a href="#L-6516"><span class="linenos">6516</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6517"><a href="#L-6517"><span class="linenos">6517</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-6518"><a href="#L-6518"><span class="linenos">6518</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6519"><a href="#L-6519"><span class="linenos">6519</span></a> <span class="p">)</span>
+</span><span id="L-6520"><a href="#L-6520"><span class="linenos">6520</span></a>
+</span><span id="L-6521"><a href="#L-6521"><span class="linenos">6521</span></a>
+</span><span id="L-6522"><a href="#L-6522"><span class="linenos">6522</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="L-6523"><a href="#L-6523"><span class="linenos">6523</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-6524"><a href="#L-6524"><span class="linenos">6524</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-6525"><a href="#L-6525"><span class="linenos">6525</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6526"><a href="#L-6526"><span class="linenos">6526</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="L-6527"><a href="#L-6527"><span class="linenos">6527</span></a>
+</span><span id="L-6528"><a href="#L-6528"><span class="linenos">6528</span></a><span class="sd"> Example:</span>
+</span><span id="L-6529"><a href="#L-6529"><span class="linenos">6529</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-6530"><a href="#L-6530"><span class="linenos">6530</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="L-6531"><a href="#L-6531"><span class="linenos">6531</span></a>
+</span><span id="L-6532"><a href="#L-6532"><span class="linenos">6532</span></a><span class="sd"> Args:</span>
+</span><span id="L-6533"><a href="#L-6533"><span class="linenos">6533</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-6534"><a href="#L-6534"><span class="linenos">6534</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6535"><a href="#L-6535"><span class="linenos">6535</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6536"><a href="#L-6536"><span class="linenos">6536</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-6537"><a href="#L-6537"><span class="linenos">6537</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6538"><a href="#L-6538"><span class="linenos">6538</span></a>
+</span><span id="L-6539"><a href="#L-6539"><span class="linenos">6539</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6540"><a href="#L-6540"><span class="linenos">6540</span></a><span class="sd"> The new condition</span>
+</span><span id="L-6541"><a href="#L-6541"><span class="linenos">6541</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6542"><a href="#L-6542"><span class="linenos">6542</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-6543"><a href="#L-6543"><span class="linenos">6543</span></a>
</span><span id="L-6544"><a href="#L-6544"><span class="linenos">6544</span></a>
-</span><span id="L-6545"><a href="#L-6545"><span class="linenos">6545</span></a><span class="sd"> Args:</span>
-</span><span id="L-6546"><a href="#L-6546"><span class="linenos">6546</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-6547"><a href="#L-6547"><span class="linenos">6547</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6548"><a href="#L-6548"><span class="linenos">6548</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6549"><a href="#L-6549"><span class="linenos">6549</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-6550"><a href="#L-6550"><span class="linenos">6550</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6551"><a href="#L-6551"><span class="linenos">6551</span></a>
-</span><span id="L-6552"><a href="#L-6552"><span class="linenos">6552</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6553"><a href="#L-6553"><span class="linenos">6553</span></a><span class="sd"> The new condition.</span>
-</span><span id="L-6554"><a href="#L-6554"><span class="linenos">6554</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6555"><a href="#L-6555"><span class="linenos">6555</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="L-6556"><a href="#L-6556"><span class="linenos">6556</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="L-6557"><a href="#L-6557"><span class="linenos">6557</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-6558"><a href="#L-6558"><span class="linenos">6558</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="L-6559"><a href="#L-6559"><span class="linenos">6559</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6560"><a href="#L-6560"><span class="linenos">6560</span></a> <span class="p">)</span>
-</span><span id="L-6561"><a href="#L-6561"><span class="linenos">6561</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
-</span><span id="L-6562"><a href="#L-6562"><span class="linenos">6562</span></a>
-</span><span id="L-6563"><a href="#L-6563"><span class="linenos">6563</span></a>
-</span><span id="L-6564"><a href="#L-6564"><span class="linenos">6564</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="L-6565"><a href="#L-6565"><span class="linenos">6565</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6566"><a href="#L-6566"><span class="linenos">6566</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="L-6545"><a href="#L-6545"><span class="linenos">6545</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="L-6546"><a href="#L-6546"><span class="linenos">6546</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-6547"><a href="#L-6547"><span class="linenos">6547</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-6548"><a href="#L-6548"><span class="linenos">6548</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6549"><a href="#L-6549"><span class="linenos">6549</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="L-6550"><a href="#L-6550"><span class="linenos">6550</span></a>
+</span><span id="L-6551"><a href="#L-6551"><span class="linenos">6551</span></a><span class="sd"> Example:</span>
+</span><span id="L-6552"><a href="#L-6552"><span class="linenos">6552</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-6553"><a href="#L-6553"><span class="linenos">6553</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="L-6554"><a href="#L-6554"><span class="linenos">6554</span></a>
+</span><span id="L-6555"><a href="#L-6555"><span class="linenos">6555</span></a><span class="sd"> Args:</span>
+</span><span id="L-6556"><a href="#L-6556"><span class="linenos">6556</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-6557"><a href="#L-6557"><span class="linenos">6557</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6558"><a href="#L-6558"><span class="linenos">6558</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6559"><a href="#L-6559"><span class="linenos">6559</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-6560"><a href="#L-6560"><span class="linenos">6560</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6561"><a href="#L-6561"><span class="linenos">6561</span></a>
+</span><span id="L-6562"><a href="#L-6562"><span class="linenos">6562</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6563"><a href="#L-6563"><span class="linenos">6563</span></a><span class="sd"> The new condition</span>
+</span><span id="L-6564"><a href="#L-6564"><span class="linenos">6564</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6565"><a href="#L-6565"><span class="linenos">6565</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="L-6566"><a href="#L-6566"><span class="linenos">6566</span></a>
</span><span id="L-6567"><a href="#L-6567"><span class="linenos">6567</span></a>
-</span><span id="L-6568"><a href="#L-6568"><span class="linenos">6568</span></a><span class="sd"> Example:</span>
-</span><span id="L-6569"><a href="#L-6569"><span class="linenos">6569</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="L-6570"><a href="#L-6570"><span class="linenos">6570</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="L-6571"><a href="#L-6571"><span class="linenos">6571</span></a>
-</span><span id="L-6572"><a href="#L-6572"><span class="linenos">6572</span></a><span class="sd"> Args:</span>
-</span><span id="L-6573"><a href="#L-6573"><span class="linenos">6573</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="L-6574"><a href="#L-6574"><span class="linenos">6574</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6575"><a href="#L-6575"><span class="linenos">6575</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="L-6576"><a href="#L-6576"><span class="linenos">6576</span></a>
-</span><span id="L-6577"><a href="#L-6577"><span class="linenos">6577</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6578"><a href="#L-6578"><span class="linenos">6578</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="L-6579"><a href="#L-6579"><span class="linenos">6579</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6580"><a href="#L-6580"><span class="linenos">6580</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
-</span><span id="L-6581"><a href="#L-6581"><span class="linenos">6581</span></a>
-</span><span id="L-6582"><a href="#L-6582"><span class="linenos">6582</span></a>
-</span><span id="L-6583"><a href="#L-6583"><span class="linenos">6583</span></a><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Pattern</span><span class="p">[</span><span class="nb">str</span><span class="p">]</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-6568"><a href="#L-6568"><span class="linenos">6568</span></a><span class="k">def</span> <span class="nf">xor</span><span class="p">(</span>
+</span><span id="L-6569"><a href="#L-6569"><span class="linenos">6569</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="L-6570"><a href="#L-6570"><span class="linenos">6570</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="L-6571"><a href="#L-6571"><span class="linenos">6571</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6572"><a href="#L-6572"><span class="linenos">6572</span></a><span class="sd"> Combine multiple conditions with an XOR logical operator.</span>
+</span><span id="L-6573"><a href="#L-6573"><span class="linenos">6573</span></a>
+</span><span id="L-6574"><a href="#L-6574"><span class="linenos">6574</span></a><span class="sd"> Example:</span>
+</span><span id="L-6575"><a href="#L-6575"><span class="linenos">6575</span></a><span class="sd"> &gt;&gt;&gt; xor(&quot;x=1&quot;, xor(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
+</span><span id="L-6576"><a href="#L-6576"><span class="linenos">6576</span></a><span class="sd"> &#39;x = 1 XOR (y = 1 XOR z = 1)&#39;</span>
+</span><span id="L-6577"><a href="#L-6577"><span class="linenos">6577</span></a>
+</span><span id="L-6578"><a href="#L-6578"><span class="linenos">6578</span></a><span class="sd"> Args:</span>
+</span><span id="L-6579"><a href="#L-6579"><span class="linenos">6579</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="L-6580"><a href="#L-6580"><span class="linenos">6580</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6581"><a href="#L-6581"><span class="linenos">6581</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6582"><a href="#L-6582"><span class="linenos">6582</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
+</span><span id="L-6583"><a href="#L-6583"><span class="linenos">6583</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-6584"><a href="#L-6584"><span class="linenos">6584</span></a>
-</span><span id="L-6585"><a href="#L-6585"><span class="linenos">6585</span></a>
-</span><span id="L-6586"><a href="#L-6586"><span class="linenos">6586</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-6587"><a href="#L-6587"><span class="linenos">6587</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span> <span class="o">...</span>
-</span><span id="L-6588"><a href="#L-6588"><span class="linenos">6588</span></a>
+</span><span id="L-6585"><a href="#L-6585"><span class="linenos">6585</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6586"><a href="#L-6586"><span class="linenos">6586</span></a><span class="sd"> The new condition</span>
+</span><span id="L-6587"><a href="#L-6587"><span class="linenos">6587</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6588"><a href="#L-6588"><span class="linenos">6588</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Xor</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-6589"><a href="#L-6589"><span class="linenos">6589</span></a>
-</span><span id="L-6590"><a href="#L-6590"><span class="linenos">6590</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-6591"><a href="#L-6591"><span class="linenos">6591</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
-</span><span id="L-6592"><a href="#L-6592"><span class="linenos">6592</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-6593"><a href="#L-6593"><span class="linenos">6593</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-6590"><a href="#L-6590"><span class="linenos">6590</span></a>
+</span><span id="L-6591"><a href="#L-6591"><span class="linenos">6591</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="L-6592"><a href="#L-6592"><span class="linenos">6592</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6593"><a href="#L-6593"><span class="linenos">6593</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
</span><span id="L-6594"><a href="#L-6594"><span class="linenos">6594</span></a>
-</span><span id="L-6595"><a href="#L-6595"><span class="linenos">6595</span></a>
-</span><span id="L-6596"><a href="#L-6596"><span class="linenos">6596</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="L-6597"><a href="#L-6597"><span class="linenos">6597</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="L-6595"><a href="#L-6595"><span class="linenos">6595</span></a><span class="sd"> Example:</span>
+</span><span id="L-6596"><a href="#L-6596"><span class="linenos">6596</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="L-6597"><a href="#L-6597"><span class="linenos">6597</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
</span><span id="L-6598"><a href="#L-6598"><span class="linenos">6598</span></a>
</span><span id="L-6599"><a href="#L-6599"><span class="linenos">6599</span></a><span class="sd"> Args:</span>
-</span><span id="L-6600"><a href="#L-6600"><span class="linenos">6600</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="L-6601"><a href="#L-6601"><span class="linenos">6601</span></a><span class="sd"> quoted: Whether to force quote the identifier.</span>
-</span><span id="L-6602"><a href="#L-6602"><span class="linenos">6602</span></a><span class="sd"> copy: Whether to copy name if it&#39;s an Identifier.</span>
-</span><span id="L-6603"><a href="#L-6603"><span class="linenos">6603</span></a>
-</span><span id="L-6604"><a href="#L-6604"><span class="linenos">6604</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6605"><a href="#L-6605"><span class="linenos">6605</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="L-6606"><a href="#L-6606"><span class="linenos">6606</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6607"><a href="#L-6607"><span class="linenos">6607</span></a>
-</span><span id="L-6608"><a href="#L-6608"><span class="linenos">6608</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-6609"><a href="#L-6609"><span class="linenos">6609</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="L-6610"><a href="#L-6610"><span class="linenos">6610</span></a>
-</span><span id="L-6611"><a href="#L-6611"><span class="linenos">6611</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-6612"><a href="#L-6612"><span class="linenos">6612</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-6613"><a href="#L-6613"><span class="linenos">6613</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-6614"><a href="#L-6614"><span class="linenos">6614</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
-</span><span id="L-6615"><a href="#L-6615"><span class="linenos">6615</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
-</span><span id="L-6616"><a href="#L-6616"><span class="linenos">6616</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
-</span><span id="L-6617"><a href="#L-6617"><span class="linenos">6617</span></a> <span class="p">)</span>
-</span><span id="L-6618"><a href="#L-6618"><span class="linenos">6618</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-6619"><a href="#L-6619"><span class="linenos">6619</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-6620"><a href="#L-6620"><span class="linenos">6620</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="L-6600"><a href="#L-6600"><span class="linenos">6600</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-6601"><a href="#L-6601"><span class="linenos">6601</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6602"><a href="#L-6602"><span class="linenos">6602</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6603"><a href="#L-6603"><span class="linenos">6603</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="L-6604"><a href="#L-6604"><span class="linenos">6604</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6605"><a href="#L-6605"><span class="linenos">6605</span></a>
+</span><span id="L-6606"><a href="#L-6606"><span class="linenos">6606</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6607"><a href="#L-6607"><span class="linenos">6607</span></a><span class="sd"> The new condition.</span>
+</span><span id="L-6608"><a href="#L-6608"><span class="linenos">6608</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6609"><a href="#L-6609"><span class="linenos">6609</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="L-6610"><a href="#L-6610"><span class="linenos">6610</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="L-6611"><a href="#L-6611"><span class="linenos">6611</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-6612"><a href="#L-6612"><span class="linenos">6612</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="L-6613"><a href="#L-6613"><span class="linenos">6613</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6614"><a href="#L-6614"><span class="linenos">6614</span></a> <span class="p">)</span>
+</span><span id="L-6615"><a href="#L-6615"><span class="linenos">6615</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+</span><span id="L-6616"><a href="#L-6616"><span class="linenos">6616</span></a>
+</span><span id="L-6617"><a href="#L-6617"><span class="linenos">6617</span></a>
+</span><span id="L-6618"><a href="#L-6618"><span class="linenos">6618</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="L-6619"><a href="#L-6619"><span class="linenos">6619</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6620"><a href="#L-6620"><span class="linenos">6620</span></a><span class="sd"> Wrap an expression in parentheses.</span>
</span><span id="L-6621"><a href="#L-6621"><span class="linenos">6621</span></a>
-</span><span id="L-6622"><a href="#L-6622"><span class="linenos">6622</span></a>
-</span><span id="L-6623"><a href="#L-6623"><span class="linenos">6623</span></a><span class="k">def</span> <span class="nf">parse_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">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="L-6624"><a href="#L-6624"><span class="linenos">6624</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6625"><a href="#L-6625"><span class="linenos">6625</span></a><span class="sd"> Parses a given string into an identifier.</span>
-</span><span id="L-6626"><a href="#L-6626"><span class="linenos">6626</span></a>
-</span><span id="L-6627"><a href="#L-6627"><span class="linenos">6627</span></a><span class="sd"> Args:</span>
-</span><span id="L-6628"><a href="#L-6628"><span class="linenos">6628</span></a><span class="sd"> name: The name to parse into an identifier.</span>
-</span><span id="L-6629"><a href="#L-6629"><span class="linenos">6629</span></a><span class="sd"> dialect: The dialect to parse against.</span>
+</span><span id="L-6622"><a href="#L-6622"><span class="linenos">6622</span></a><span class="sd"> Example:</span>
+</span><span id="L-6623"><a href="#L-6623"><span class="linenos">6623</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="L-6624"><a href="#L-6624"><span class="linenos">6624</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="L-6625"><a href="#L-6625"><span class="linenos">6625</span></a>
+</span><span id="L-6626"><a href="#L-6626"><span class="linenos">6626</span></a><span class="sd"> Args:</span>
+</span><span id="L-6627"><a href="#L-6627"><span class="linenos">6627</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="L-6628"><a href="#L-6628"><span class="linenos">6628</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6629"><a href="#L-6629"><span class="linenos">6629</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
</span><span id="L-6630"><a href="#L-6630"><span class="linenos">6630</span></a>
</span><span id="L-6631"><a href="#L-6631"><span class="linenos">6631</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6632"><a href="#L-6632"><span class="linenos">6632</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-6632"><a href="#L-6632"><span class="linenos">6632</span></a><span class="sd"> The wrapped expression.</span>
</span><span id="L-6633"><a href="#L-6633"><span class="linenos">6633</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6634"><a href="#L-6634"><span class="linenos">6634</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-6635"><a href="#L-6635"><span class="linenos">6635</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
-</span><span id="L-6636"><a href="#L-6636"><span class="linenos">6636</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-6637"><a href="#L-6637"><span class="linenos">6637</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-6634"><a href="#L-6634"><span class="linenos">6634</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="L-6635"><a href="#L-6635"><span class="linenos">6635</span></a>
+</span><span id="L-6636"><a href="#L-6636"><span class="linenos">6636</span></a>
+</span><span id="L-6637"><a href="#L-6637"><span class="linenos">6637</span></a><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Pattern</span><span class="p">[</span><span class="nb">str</span><span class="p">]</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-6638"><a href="#L-6638"><span class="linenos">6638</span></a>
-</span><span id="L-6639"><a href="#L-6639"><span class="linenos">6639</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="L-6640"><a href="#L-6640"><span class="linenos">6640</span></a>
-</span><span id="L-6641"><a href="#L-6641"><span class="linenos">6641</span></a>
-</span><span id="L-6642"><a href="#L-6642"><span class="linenos">6642</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-6639"><a href="#L-6639"><span class="linenos">6639</span></a>
+</span><span id="L-6640"><a href="#L-6640"><span class="linenos">6640</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6641"><a href="#L-6641"><span class="linenos">6641</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-6642"><a href="#L-6642"><span class="linenos">6642</span></a>
</span><span id="L-6643"><a href="#L-6643"><span class="linenos">6643</span></a>
-</span><span id="L-6644"><a href="#L-6644"><span class="linenos">6644</span></a>
-</span><span id="L-6645"><a href="#L-6645"><span class="linenos">6645</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-6646"><a href="#L-6646"><span class="linenos">6646</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-6647"><a href="#L-6647"><span class="linenos">6647</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-6648"><a href="#L-6648"><span class="linenos">6648</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-6649"><a href="#L-6649"><span class="linenos">6649</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-6650"><a href="#L-6650"><span class="linenos">6650</span></a>
-</span><span id="L-6651"><a href="#L-6651"><span class="linenos">6651</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-6644"><a href="#L-6644"><span class="linenos">6644</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6645"><a href="#L-6645"><span class="linenos">6645</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
+</span><span id="L-6646"><a href="#L-6646"><span class="linenos">6646</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-6647"><a href="#L-6647"><span class="linenos">6647</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span> <span class="o">...</span>
+</span><span id="L-6648"><a href="#L-6648"><span class="linenos">6648</span></a>
+</span><span id="L-6649"><a href="#L-6649"><span class="linenos">6649</span></a>
+</span><span id="L-6650"><a href="#L-6650"><span class="linenos">6650</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="L-6651"><a href="#L-6651"><span class="linenos">6651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
</span><span id="L-6652"><a href="#L-6652"><span class="linenos">6652</span></a>
-</span><span id="L-6653"><a href="#L-6653"><span class="linenos">6653</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-6654"><a href="#L-6654"><span class="linenos">6654</span></a>
-</span><span id="L-6655"><a href="#L-6655"><span class="linenos">6655</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-6656"><a href="#L-6656"><span class="linenos">6656</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-6653"><a href="#L-6653"><span class="linenos">6653</span></a><span class="sd"> Args:</span>
+</span><span id="L-6654"><a href="#L-6654"><span class="linenos">6654</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="L-6655"><a href="#L-6655"><span class="linenos">6655</span></a><span class="sd"> quoted: Whether to force quote the identifier.</span>
+</span><span id="L-6656"><a href="#L-6656"><span class="linenos">6656</span></a><span class="sd"> copy: Whether to copy name if it&#39;s an Identifier.</span>
</span><span id="L-6657"><a href="#L-6657"><span class="linenos">6657</span></a>
-</span><span id="L-6658"><a href="#L-6658"><span class="linenos">6658</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="L-6659"><a href="#L-6659"><span class="linenos">6659</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-6660"><a href="#L-6660"><span class="linenos">6660</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 class="o">.</span><span class="n">upper</span><span class="p">()),</span>
-</span><span id="L-6661"><a href="#L-6661"><span class="linenos">6661</span></a> <span class="p">)</span>
-</span><span id="L-6662"><a href="#L-6662"><span class="linenos">6662</span></a>
-</span><span id="L-6663"><a href="#L-6663"><span class="linenos">6663</span></a>
-</span><span id="L-6664"><a href="#L-6664"><span class="linenos">6664</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="L-6665"><a href="#L-6665"><span class="linenos">6665</span></a> <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="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="L-6666"><a href="#L-6666"><span class="linenos">6666</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-6667"><a href="#L-6667"><span class="linenos">6667</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6668"><a href="#L-6668"><span class="linenos">6668</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-6669"><a href="#L-6669"><span class="linenos">6669</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="L-6670"><a href="#L-6670"><span class="linenos">6670</span></a>
-</span><span id="L-6671"><a href="#L-6671"><span class="linenos">6671</span></a><span class="sd"> Args:</span>
-</span><span id="L-6672"><a href="#L-6672"><span class="linenos">6672</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="L-6673"><a href="#L-6673"><span class="linenos">6673</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="L-6674"><a href="#L-6674"><span class="linenos">6674</span></a><span class="sd"> copy: Whether to copy a table if it is passed in.</span>
-</span><span id="L-6675"><a href="#L-6675"><span class="linenos">6675</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="L-6658"><a href="#L-6658"><span class="linenos">6658</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6659"><a href="#L-6659"><span class="linenos">6659</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-6660"><a href="#L-6660"><span class="linenos">6660</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6661"><a href="#L-6661"><span class="linenos">6661</span></a>
+</span><span id="L-6662"><a href="#L-6662"><span class="linenos">6662</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-6663"><a href="#L-6663"><span class="linenos">6663</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="L-6664"><a href="#L-6664"><span class="linenos">6664</span></a>
+</span><span id="L-6665"><a href="#L-6665"><span class="linenos">6665</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-6666"><a href="#L-6666"><span class="linenos">6666</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-6667"><a href="#L-6667"><span class="linenos">6667</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-6668"><a href="#L-6668"><span class="linenos">6668</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
+</span><span id="L-6669"><a href="#L-6669"><span class="linenos">6669</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+</span><span id="L-6670"><a href="#L-6670"><span class="linenos">6670</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
+</span><span id="L-6671"><a href="#L-6671"><span class="linenos">6671</span></a> <span class="p">)</span>
+</span><span id="L-6672"><a href="#L-6672"><span class="linenos">6672</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-6673"><a href="#L-6673"><span class="linenos">6673</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-6674"><a href="#L-6674"><span class="linenos">6674</span></a> <span class="k">return</span> <span class="n">identifier</span>
+</span><span id="L-6675"><a href="#L-6675"><span class="linenos">6675</span></a>
</span><span id="L-6676"><a href="#L-6676"><span class="linenos">6676</span></a>
-</span><span id="L-6677"><a href="#L-6677"><span class="linenos">6677</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6678"><a href="#L-6678"><span class="linenos">6678</span></a><span class="sd"> A table expression.</span>
-</span><span id="L-6679"><a href="#L-6679"><span class="linenos">6679</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6680"><a href="#L-6680"><span class="linenos">6680</span></a> <span class="k">if</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-6681"><a href="#L-6681"><span class="linenos">6681</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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-6682"><a href="#L-6682"><span class="linenos">6682</span></a>
-</span><span id="L-6683"><a href="#L-6683"><span class="linenos">6683</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6677"><a href="#L-6677"><span class="linenos">6677</span></a><span class="k">def</span> <span class="nf">parse_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">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="L-6678"><a href="#L-6678"><span class="linenos">6678</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6679"><a href="#L-6679"><span class="linenos">6679</span></a><span class="sd"> Parses a given string into an identifier.</span>
+</span><span id="L-6680"><a href="#L-6680"><span class="linenos">6680</span></a>
+</span><span id="L-6681"><a href="#L-6681"><span class="linenos">6681</span></a><span class="sd"> Args:</span>
+</span><span id="L-6682"><a href="#L-6682"><span class="linenos">6682</span></a><span class="sd"> name: The name to parse into an identifier.</span>
+</span><span id="L-6683"><a href="#L-6683"><span class="linenos">6683</span></a><span class="sd"> dialect: The dialect to parse against.</span>
</span><span id="L-6684"><a href="#L-6684"><span class="linenos">6684</span></a>
-</span><span id="L-6685"><a href="#L-6685"><span class="linenos">6685</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-6686"><a href="#L-6686"><span class="linenos">6686</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="L-6687"><a href="#L-6687"><span class="linenos">6687</span></a>
-</span><span id="L-6688"><a href="#L-6688"><span class="linenos">6688</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="L-6689"><a href="#L-6689"><span class="linenos">6689</span></a>
-</span><span id="L-6690"><a href="#L-6690"><span class="linenos">6690</span></a>
-</span><span id="L-6691"><a href="#L-6691"><span class="linenos">6691</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span>
-</span><span id="L-6692"><a href="#L-6692"><span class="linenos">6692</span></a> <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><span id="L-6693"><a href="#L-6693"><span class="linenos">6693</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-6694"><a href="#L-6694"><span class="linenos">6694</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-6695"><a href="#L-6695"><span class="linenos">6695</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6696"><a href="#L-6696"><span class="linenos">6696</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="L-6697"><a href="#L-6697"><span class="linenos">6697</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-6698"><a href="#L-6698"><span class="linenos">6698</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6699"><a href="#L-6699"><span class="linenos">6699</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Table is optional.</span>
-</span><span id="L-6700"><a href="#L-6700"><span class="linenos">6700</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="L-6701"><a href="#L-6701"><span class="linenos">6701</span></a>
-</span><span id="L-6702"><a href="#L-6702"><span class="linenos">6702</span></a><span class="sd"> Args:</span>
-</span><span id="L-6703"><a href="#L-6703"><span class="linenos">6703</span></a><span class="sd"> sql_path: a `[table].[column]` string.</span>
-</span><span id="L-6704"><a href="#L-6704"><span class="linenos">6704</span></a><span class="sd"> quoted: Whether or not to force quote identifiers.</span>
-</span><span id="L-6705"><a href="#L-6705"><span class="linenos">6705</span></a><span class="sd"> dialect: the source dialect according to which the column name will be parsed.</span>
-</span><span id="L-6706"><a href="#L-6706"><span class="linenos">6706</span></a><span class="sd"> copy: Whether to copy a column if it is passed in.</span>
-</span><span id="L-6707"><a href="#L-6707"><span class="linenos">6707</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Column` expression with.</span>
+</span><span id="L-6685"><a href="#L-6685"><span class="linenos">6685</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6686"><a href="#L-6686"><span class="linenos">6686</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="L-6687"><a href="#L-6687"><span class="linenos">6687</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6688"><a href="#L-6688"><span class="linenos">6688</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-6689"><a href="#L-6689"><span class="linenos">6689</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
+</span><span id="L-6690"><a href="#L-6690"><span class="linenos">6690</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-6691"><a href="#L-6691"><span class="linenos">6691</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-6692"><a href="#L-6692"><span class="linenos">6692</span></a>
+</span><span id="L-6693"><a href="#L-6693"><span class="linenos">6693</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="L-6694"><a href="#L-6694"><span class="linenos">6694</span></a>
+</span><span id="L-6695"><a href="#L-6695"><span class="linenos">6695</span></a>
+</span><span id="L-6696"><a href="#L-6696"><span class="linenos">6696</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-6697"><a href="#L-6697"><span class="linenos">6697</span></a>
+</span><span id="L-6698"><a href="#L-6698"><span class="linenos">6698</span></a>
+</span><span id="L-6699"><a href="#L-6699"><span class="linenos">6699</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-6700"><a href="#L-6700"><span class="linenos">6700</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-6701"><a href="#L-6701"><span class="linenos">6701</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-6702"><a href="#L-6702"><span class="linenos">6702</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-6703"><a href="#L-6703"><span class="linenos">6703</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-6704"><a href="#L-6704"><span class="linenos">6704</span></a>
+</span><span id="L-6705"><a href="#L-6705"><span class="linenos">6705</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-6706"><a href="#L-6706"><span class="linenos">6706</span></a>
+</span><span id="L-6707"><a href="#L-6707"><span class="linenos">6707</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-6708"><a href="#L-6708"><span class="linenos">6708</span></a>
-</span><span id="L-6709"><a href="#L-6709"><span class="linenos">6709</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6710"><a href="#L-6710"><span class="linenos">6710</span></a><span class="sd"> A column expression.</span>
-</span><span id="L-6711"><a href="#L-6711"><span class="linenos">6711</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6712"><a href="#L-6712"><span class="linenos">6712</span></a> <span class="k">if</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-6713"><a href="#L-6713"><span class="linenos">6713</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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-6714"><a href="#L-6714"><span class="linenos">6714</span></a>
-</span><span id="L-6715"><a href="#L-6715"><span class="linenos">6715</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-6716"><a href="#L-6716"><span class="linenos">6716</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Column</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-6717"><a href="#L-6717"><span class="linenos">6717</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="L-6718"><a href="#L-6718"><span class="linenos">6718</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-6719"><a href="#L-6719"><span class="linenos">6719</span></a>
-</span><span id="L-6720"><a href="#L-6720"><span class="linenos">6720</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="L-6721"><a href="#L-6721"><span class="linenos">6721</span></a> <span class="n">col</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-6722"><a href="#L-6722"><span class="linenos">6722</span></a>
-</span><span id="L-6723"><a href="#L-6723"><span class="linenos">6723</span></a> <span class="k">if</span> <span class="n">quoted</span><span class="p">:</span>
-</span><span id="L-6724"><a href="#L-6724"><span class="linenos">6724</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">col</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Identifier</span><span class="p">):</span>
-</span><span id="L-6725"><a href="#L-6725"><span class="linenos">6725</span></a> <span class="n">i</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="L-6726"><a href="#L-6726"><span class="linenos">6726</span></a>
-</span><span id="L-6727"><a href="#L-6727"><span class="linenos">6727</span></a> <span class="k">return</span> <span class="n">col</span>
-</span><span id="L-6728"><a href="#L-6728"><span class="linenos">6728</span></a>
-</span><span id="L-6729"><a href="#L-6729"><span class="linenos">6729</span></a>
-</span><span id="L-6730"><a href="#L-6730"><span class="linenos">6730</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="L-6731"><a href="#L-6731"><span class="linenos">6731</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6732"><a href="#L-6732"><span class="linenos">6732</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="o">|</span> <span class="n">Identifier</span><span class="p">],</span>
-</span><span id="L-6733"><a href="#L-6733"><span class="linenos">6733</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-6734"><a href="#L-6734"><span class="linenos">6734</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-6735"><a href="#L-6735"><span class="linenos">6735</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-6736"><a href="#L-6736"><span class="linenos">6736</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6737"><a href="#L-6737"><span class="linenos">6737</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6738"><a href="#L-6738"><span class="linenos">6738</span></a><span class="p">):</span>
-</span><span id="L-6739"><a href="#L-6739"><span class="linenos">6739</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="L-6740"><a href="#L-6740"><span class="linenos">6740</span></a>
-</span><span id="L-6741"><a href="#L-6741"><span class="linenos">6741</span></a><span class="sd"> Example:</span>
-</span><span id="L-6742"><a href="#L-6742"><span class="linenos">6742</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="L-6743"><a href="#L-6743"><span class="linenos">6743</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-6709"><a href="#L-6709"><span class="linenos">6709</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-6710"><a href="#L-6710"><span class="linenos">6710</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-6711"><a href="#L-6711"><span class="linenos">6711</span></a>
+</span><span id="L-6712"><a href="#L-6712"><span class="linenos">6712</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="L-6713"><a href="#L-6713"><span class="linenos">6713</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-6714"><a href="#L-6714"><span class="linenos">6714</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 class="o">.</span><span class="n">upper</span><span class="p">()),</span>
+</span><span id="L-6715"><a href="#L-6715"><span class="linenos">6715</span></a> <span class="p">)</span>
+</span><span id="L-6716"><a href="#L-6716"><span class="linenos">6716</span></a>
+</span><span id="L-6717"><a href="#L-6717"><span class="linenos">6717</span></a>
+</span><span id="L-6718"><a href="#L-6718"><span class="linenos">6718</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="L-6719"><a href="#L-6719"><span class="linenos">6719</span></a> <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="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="L-6720"><a href="#L-6720"><span class="linenos">6720</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-6721"><a href="#L-6721"><span class="linenos">6721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6722"><a href="#L-6722"><span class="linenos">6722</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-6723"><a href="#L-6723"><span class="linenos">6723</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="L-6724"><a href="#L-6724"><span class="linenos">6724</span></a>
+</span><span id="L-6725"><a href="#L-6725"><span class="linenos">6725</span></a><span class="sd"> Args:</span>
+</span><span id="L-6726"><a href="#L-6726"><span class="linenos">6726</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="L-6727"><a href="#L-6727"><span class="linenos">6727</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="L-6728"><a href="#L-6728"><span class="linenos">6728</span></a><span class="sd"> copy: Whether to copy a table if it is passed in.</span>
+</span><span id="L-6729"><a href="#L-6729"><span class="linenos">6729</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="L-6730"><a href="#L-6730"><span class="linenos">6730</span></a>
+</span><span id="L-6731"><a href="#L-6731"><span class="linenos">6731</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6732"><a href="#L-6732"><span class="linenos">6732</span></a><span class="sd"> A table expression.</span>
+</span><span id="L-6733"><a href="#L-6733"><span class="linenos">6733</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6734"><a href="#L-6734"><span class="linenos">6734</span></a> <span class="k">if</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-6735"><a href="#L-6735"><span class="linenos">6735</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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-6736"><a href="#L-6736"><span class="linenos">6736</span></a>
+</span><span id="L-6737"><a href="#L-6737"><span class="linenos">6737</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-6738"><a href="#L-6738"><span class="linenos">6738</span></a>
+</span><span id="L-6739"><a href="#L-6739"><span class="linenos">6739</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-6740"><a href="#L-6740"><span class="linenos">6740</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="L-6741"><a href="#L-6741"><span class="linenos">6741</span></a>
+</span><span id="L-6742"><a href="#L-6742"><span class="linenos">6742</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="L-6743"><a href="#L-6743"><span class="linenos">6743</span></a>
</span><span id="L-6744"><a href="#L-6744"><span class="linenos">6744</span></a>
-</span><span id="L-6745"><a href="#L-6745"><span class="linenos">6745</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-6746"><a href="#L-6746"><span class="linenos">6746</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="L-6747"><a href="#L-6747"><span class="linenos">6747</span></a>
-</span><span id="L-6748"><a href="#L-6748"><span class="linenos">6748</span></a><span class="sd"> Args:</span>
-</span><span id="L-6749"><a href="#L-6749"><span class="linenos">6749</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-6750"><a href="#L-6750"><span class="linenos">6750</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6751"><a href="#L-6751"><span class="linenos">6751</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="L-6752"><a href="#L-6752"><span class="linenos">6752</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="L-6753"><a href="#L-6753"><span class="linenos">6753</span></a><span class="sd"> table: Whether to create a table alias, can also be a list of columns.</span>
-</span><span id="L-6754"><a href="#L-6754"><span class="linenos">6754</span></a><span class="sd"> quoted: whether to quote the alias</span>
-</span><span id="L-6755"><a href="#L-6755"><span class="linenos">6755</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6756"><a href="#L-6756"><span class="linenos">6756</span></a><span class="sd"> copy: Whether to copy the expression.</span>
-</span><span id="L-6757"><a href="#L-6757"><span class="linenos">6757</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6758"><a href="#L-6758"><span class="linenos">6758</span></a>
-</span><span id="L-6759"><a href="#L-6759"><span class="linenos">6759</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6760"><a href="#L-6760"><span class="linenos">6760</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="L-6761"><a href="#L-6761"><span class="linenos">6761</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6762"><a href="#L-6762"><span class="linenos">6762</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6763"><a href="#L-6763"><span class="linenos">6763</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-6764"><a href="#L-6764"><span class="linenos">6764</span></a>
-</span><span id="L-6765"><a href="#L-6765"><span class="linenos">6765</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="L-6766"><a href="#L-6766"><span class="linenos">6766</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-6767"><a href="#L-6767"><span class="linenos">6767</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-6745"><a href="#L-6745"><span class="linenos">6745</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span>
+</span><span id="L-6746"><a href="#L-6746"><span class="linenos">6746</span></a> <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><span id="L-6747"><a href="#L-6747"><span class="linenos">6747</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-6748"><a href="#L-6748"><span class="linenos">6748</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-6749"><a href="#L-6749"><span class="linenos">6749</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6750"><a href="#L-6750"><span class="linenos">6750</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="L-6751"><a href="#L-6751"><span class="linenos">6751</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-6752"><a href="#L-6752"><span class="linenos">6752</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6753"><a href="#L-6753"><span class="linenos">6753</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Table is optional.</span>
+</span><span id="L-6754"><a href="#L-6754"><span class="linenos">6754</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="L-6755"><a href="#L-6755"><span class="linenos">6755</span></a>
+</span><span id="L-6756"><a href="#L-6756"><span class="linenos">6756</span></a><span class="sd"> Args:</span>
+</span><span id="L-6757"><a href="#L-6757"><span class="linenos">6757</span></a><span class="sd"> sql_path: a `[table].[column]` string.</span>
+</span><span id="L-6758"><a href="#L-6758"><span class="linenos">6758</span></a><span class="sd"> quoted: Whether or not to force quote identifiers.</span>
+</span><span id="L-6759"><a href="#L-6759"><span class="linenos">6759</span></a><span class="sd"> dialect: the source dialect according to which the column name will be parsed.</span>
+</span><span id="L-6760"><a href="#L-6760"><span class="linenos">6760</span></a><span class="sd"> copy: Whether to copy a column if it is passed in.</span>
+</span><span id="L-6761"><a href="#L-6761"><span class="linenos">6761</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Column` expression with.</span>
+</span><span id="L-6762"><a href="#L-6762"><span class="linenos">6762</span></a>
+</span><span id="L-6763"><a href="#L-6763"><span class="linenos">6763</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6764"><a href="#L-6764"><span class="linenos">6764</span></a><span class="sd"> A column expression.</span>
+</span><span id="L-6765"><a href="#L-6765"><span class="linenos">6765</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6766"><a href="#L-6766"><span class="linenos">6766</span></a> <span class="k">if</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-6767"><a href="#L-6767"><span class="linenos">6767</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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-6768"><a href="#L-6768"><span class="linenos">6768</span></a>
-</span><span id="L-6769"><a href="#L-6769"><span class="linenos">6769</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-6770"><a href="#L-6770"><span class="linenos">6770</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-6771"><a href="#L-6771"><span class="linenos">6771</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-6772"><a href="#L-6772"><span class="linenos">6772</span></a>
-</span><span id="L-6773"><a href="#L-6773"><span class="linenos">6773</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-6774"><a href="#L-6774"><span class="linenos">6774</span></a>
-</span><span id="L-6775"><a href="#L-6775"><span class="linenos">6775</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-6776"><a href="#L-6776"><span class="linenos">6776</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-6777"><a href="#L-6777"><span class="linenos">6777</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="L-6778"><a href="#L-6778"><span class="linenos">6778</span></a> <span class="c1">#</span>
-</span><span id="L-6779"><a href="#L-6779"><span class="linenos">6779</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-6769"><a href="#L-6769"><span class="linenos">6769</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-6770"><a href="#L-6770"><span class="linenos">6770</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Column</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-6771"><a href="#L-6771"><span class="linenos">6771</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="L-6772"><a href="#L-6772"><span class="linenos">6772</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-6773"><a href="#L-6773"><span class="linenos">6773</span></a>
+</span><span id="L-6774"><a href="#L-6774"><span class="linenos">6774</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="L-6775"><a href="#L-6775"><span class="linenos">6775</span></a> <span class="n">col</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-6776"><a href="#L-6776"><span class="linenos">6776</span></a>
+</span><span id="L-6777"><a href="#L-6777"><span class="linenos">6777</span></a> <span class="k">if</span> <span class="n">quoted</span><span class="p">:</span>
+</span><span id="L-6778"><a href="#L-6778"><span class="linenos">6778</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">col</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Identifier</span><span class="p">):</span>
+</span><span id="L-6779"><a href="#L-6779"><span class="linenos">6779</span></a> <span class="n">i</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
</span><span id="L-6780"><a href="#L-6780"><span class="linenos">6780</span></a>
-</span><span id="L-6781"><a href="#L-6781"><span class="linenos">6781</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-6782"><a href="#L-6782"><span class="linenos">6782</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-6783"><a href="#L-6783"><span class="linenos">6783</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="L-6784"><a href="#L-6784"><span class="linenos">6784</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-6785"><a href="#L-6785"><span class="linenos">6785</span></a>
-</span><span id="L-6786"><a href="#L-6786"><span class="linenos">6786</span></a>
-</span><span id="L-6787"><a href="#L-6787"><span class="linenos">6787</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="L-6788"><a href="#L-6788"><span class="linenos">6788</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="L-6789"><a href="#L-6789"><span class="linenos">6789</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6790"><a href="#L-6790"><span class="linenos">6790</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-6781"><a href="#L-6781"><span class="linenos">6781</span></a> <span class="k">return</span> <span class="n">col</span>
+</span><span id="L-6782"><a href="#L-6782"><span class="linenos">6782</span></a>
+</span><span id="L-6783"><a href="#L-6783"><span class="linenos">6783</span></a>
+</span><span id="L-6784"><a href="#L-6784"><span class="linenos">6784</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="L-6785"><a href="#L-6785"><span class="linenos">6785</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6786"><a href="#L-6786"><span class="linenos">6786</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="o">|</span> <span class="n">Identifier</span><span class="p">],</span>
+</span><span id="L-6787"><a href="#L-6787"><span class="linenos">6787</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-6788"><a href="#L-6788"><span class="linenos">6788</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-6789"><a href="#L-6789"><span class="linenos">6789</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-6790"><a href="#L-6790"><span class="linenos">6790</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-6791"><a href="#L-6791"><span class="linenos">6791</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-6792"><a href="#L-6792"><span class="linenos">6792</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="L-6793"><a href="#L-6793"><span class="linenos">6793</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6794"><a href="#L-6794"><span class="linenos">6794</span></a><span class="sd"> Build a subquery expression that&#39;s selected from.</span>
-</span><span id="L-6795"><a href="#L-6795"><span class="linenos">6795</span></a>
-</span><span id="L-6796"><a href="#L-6796"><span class="linenos">6796</span></a><span class="sd"> Example:</span>
-</span><span id="L-6797"><a href="#L-6797"><span class="linenos">6797</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-6798"><a href="#L-6798"><span class="linenos">6798</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="L-6799"><a href="#L-6799"><span class="linenos">6799</span></a>
-</span><span id="L-6800"><a href="#L-6800"><span class="linenos">6800</span></a><span class="sd"> Args:</span>
-</span><span id="L-6801"><a href="#L-6801"><span class="linenos">6801</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="L-6802"><a href="#L-6802"><span class="linenos">6802</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="L-6803"><a href="#L-6803"><span class="linenos">6803</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="L-6804"><a href="#L-6804"><span class="linenos">6804</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="L-6805"><a href="#L-6805"><span class="linenos">6805</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="L-6806"><a href="#L-6806"><span class="linenos">6806</span></a>
-</span><span id="L-6807"><a href="#L-6807"><span class="linenos">6807</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6808"><a href="#L-6808"><span class="linenos">6808</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="L-6809"><a href="#L-6809"><span class="linenos">6809</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6810"><a href="#L-6810"><span class="linenos">6810</span></a>
-</span><span id="L-6811"><a href="#L-6811"><span class="linenos">6811</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 class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6812"><a href="#L-6812"><span class="linenos">6812</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-6813"><a href="#L-6813"><span class="linenos">6813</span></a>
-</span><span id="L-6814"><a href="#L-6814"><span class="linenos">6814</span></a>
-</span><span id="L-6815"><a href="#L-6815"><span class="linenos">6815</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-6816"><a href="#L-6816"><span class="linenos">6816</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-6817"><a href="#L-6817"><span class="linenos">6817</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-6818"><a href="#L-6818"><span class="linenos">6818</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-6819"><a href="#L-6819"><span class="linenos">6819</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6820"><a href="#L-6820"><span class="linenos">6820</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6821"><a href="#L-6821"><span class="linenos">6821</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-6822"><a href="#L-6822"><span class="linenos">6822</span></a> <span class="n">fields</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">]],</span>
-</span><span id="L-6823"><a href="#L-6823"><span class="linenos">6823</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-6824"><a href="#L-6824"><span class="linenos">6824</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6825"><a href="#L-6825"><span class="linenos">6825</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="L-6826"><a href="#L-6826"><span class="linenos">6826</span></a> <span class="k">pass</span>
-</span><span id="L-6827"><a href="#L-6827"><span class="linenos">6827</span></a>
+</span><span id="L-6792"><a href="#L-6792"><span class="linenos">6792</span></a><span class="p">):</span>
+</span><span id="L-6793"><a href="#L-6793"><span class="linenos">6793</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="L-6794"><a href="#L-6794"><span class="linenos">6794</span></a>
+</span><span id="L-6795"><a href="#L-6795"><span class="linenos">6795</span></a><span class="sd"> Example:</span>
+</span><span id="L-6796"><a href="#L-6796"><span class="linenos">6796</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="L-6797"><a href="#L-6797"><span class="linenos">6797</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="L-6798"><a href="#L-6798"><span class="linenos">6798</span></a>
+</span><span id="L-6799"><a href="#L-6799"><span class="linenos">6799</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-6800"><a href="#L-6800"><span class="linenos">6800</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="L-6801"><a href="#L-6801"><span class="linenos">6801</span></a>
+</span><span id="L-6802"><a href="#L-6802"><span class="linenos">6802</span></a><span class="sd"> Args:</span>
+</span><span id="L-6803"><a href="#L-6803"><span class="linenos">6803</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-6804"><a href="#L-6804"><span class="linenos">6804</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6805"><a href="#L-6805"><span class="linenos">6805</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="L-6806"><a href="#L-6806"><span class="linenos">6806</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="L-6807"><a href="#L-6807"><span class="linenos">6807</span></a><span class="sd"> table: Whether to create a table alias, can also be a list of columns.</span>
+</span><span id="L-6808"><a href="#L-6808"><span class="linenos">6808</span></a><span class="sd"> quoted: whether to quote the alias</span>
+</span><span id="L-6809"><a href="#L-6809"><span class="linenos">6809</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6810"><a href="#L-6810"><span class="linenos">6810</span></a><span class="sd"> copy: Whether to copy the expression.</span>
+</span><span id="L-6811"><a href="#L-6811"><span class="linenos">6811</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6812"><a href="#L-6812"><span class="linenos">6812</span></a>
+</span><span id="L-6813"><a href="#L-6813"><span class="linenos">6813</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6814"><a href="#L-6814"><span class="linenos">6814</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="L-6815"><a href="#L-6815"><span class="linenos">6815</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6816"><a href="#L-6816"><span class="linenos">6816</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6817"><a href="#L-6817"><span class="linenos">6817</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-6818"><a href="#L-6818"><span class="linenos">6818</span></a>
+</span><span id="L-6819"><a href="#L-6819"><span class="linenos">6819</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="L-6820"><a href="#L-6820"><span class="linenos">6820</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-6821"><a href="#L-6821"><span class="linenos">6821</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-6822"><a href="#L-6822"><span class="linenos">6822</span></a>
+</span><span id="L-6823"><a href="#L-6823"><span class="linenos">6823</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-6824"><a href="#L-6824"><span class="linenos">6824</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-6825"><a href="#L-6825"><span class="linenos">6825</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-6826"><a href="#L-6826"><span class="linenos">6826</span></a>
+</span><span id="L-6827"><a href="#L-6827"><span class="linenos">6827</span></a> <span class="k">return</span> <span class="n">exp</span>
</span><span id="L-6828"><a href="#L-6828"><span class="linenos">6828</span></a>
-</span><span id="L-6829"><a href="#L-6829"><span class="linenos">6829</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
-</span><span id="L-6830"><a href="#L-6830"><span class="linenos">6830</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-6831"><a href="#L-6831"><span class="linenos">6831</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-6832"><a href="#L-6832"><span class="linenos">6832</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-6833"><a href="#L-6833"><span class="linenos">6833</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6834"><a href="#L-6834"><span class="linenos">6834</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6835"><a href="#L-6835"><span class="linenos">6835</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-6836"><a href="#L-6836"><span class="linenos">6836</span></a> <span class="n">fields</span><span class="p">:</span> <span class="n">Lit</span><span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6837"><a href="#L-6837"><span class="linenos">6837</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-6838"><a href="#L-6838"><span class="linenos">6838</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6839"><a href="#L-6839"><span class="linenos">6839</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="L-6840"><a href="#L-6840"><span class="linenos">6840</span></a> <span class="k">pass</span>
-</span><span id="L-6841"><a href="#L-6841"><span class="linenos">6841</span></a>
-</span><span id="L-6842"><a href="#L-6842"><span class="linenos">6842</span></a>
-</span><span id="L-6843"><a href="#L-6843"><span class="linenos">6843</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="L-6844"><a href="#L-6844"><span class="linenos">6844</span></a> <span class="n">col</span><span class="p">,</span>
-</span><span id="L-6845"><a href="#L-6845"><span class="linenos">6845</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6846"><a href="#L-6846"><span class="linenos">6846</span></a> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6847"><a href="#L-6847"><span class="linenos">6847</span></a> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6848"><a href="#L-6848"><span class="linenos">6848</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="L-6849"><a href="#L-6849"><span class="linenos">6849</span></a> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6850"><a href="#L-6850"><span class="linenos">6850</span></a> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6851"><a href="#L-6851"><span class="linenos">6851</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="L-6852"><a href="#L-6852"><span class="linenos">6852</span></a><span class="p">):</span>
-</span><span id="L-6853"><a href="#L-6853"><span class="linenos">6853</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-6854"><a href="#L-6854"><span class="linenos">6854</span></a><span class="sd"> Build a Column.</span>
-</span><span id="L-6855"><a href="#L-6855"><span class="linenos">6855</span></a>
-</span><span id="L-6856"><a href="#L-6856"><span class="linenos">6856</span></a><span class="sd"> Args:</span>
-</span><span id="L-6857"><a href="#L-6857"><span class="linenos">6857</span></a><span class="sd"> col: Column name.</span>
-</span><span id="L-6858"><a href="#L-6858"><span class="linenos">6858</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-6859"><a href="#L-6859"><span class="linenos">6859</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-6860"><a href="#L-6860"><span class="linenos">6860</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-6861"><a href="#L-6861"><span class="linenos">6861</span></a><span class="sd"> fields: Additional fields using dots.</span>
-</span><span id="L-6862"><a href="#L-6862"><span class="linenos">6862</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="L-6863"><a href="#L-6863"><span class="linenos">6863</span></a><span class="sd"> copy: Whether to copy identifiers if passed in.</span>
+</span><span id="L-6829"><a href="#L-6829"><span class="linenos">6829</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-6830"><a href="#L-6830"><span class="linenos">6830</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-6831"><a href="#L-6831"><span class="linenos">6831</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="L-6832"><a href="#L-6832"><span class="linenos">6832</span></a> <span class="c1">#</span>
+</span><span id="L-6833"><a href="#L-6833"><span class="linenos">6833</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="L-6834"><a href="#L-6834"><span class="linenos">6834</span></a>
+</span><span id="L-6835"><a href="#L-6835"><span class="linenos">6835</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-6836"><a href="#L-6836"><span class="linenos">6836</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-6837"><a href="#L-6837"><span class="linenos">6837</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="L-6838"><a href="#L-6838"><span class="linenos">6838</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-6839"><a href="#L-6839"><span class="linenos">6839</span></a>
+</span><span id="L-6840"><a href="#L-6840"><span class="linenos">6840</span></a>
+</span><span id="L-6841"><a href="#L-6841"><span class="linenos">6841</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="L-6842"><a href="#L-6842"><span class="linenos">6842</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="L-6843"><a href="#L-6843"><span class="linenos">6843</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6844"><a href="#L-6844"><span class="linenos">6844</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-6845"><a href="#L-6845"><span class="linenos">6845</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-6846"><a href="#L-6846"><span class="linenos">6846</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="L-6847"><a href="#L-6847"><span class="linenos">6847</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6848"><a href="#L-6848"><span class="linenos">6848</span></a><span class="sd"> Build a subquery expression that&#39;s selected from.</span>
+</span><span id="L-6849"><a href="#L-6849"><span class="linenos">6849</span></a>
+</span><span id="L-6850"><a href="#L-6850"><span class="linenos">6850</span></a><span class="sd"> Example:</span>
+</span><span id="L-6851"><a href="#L-6851"><span class="linenos">6851</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-6852"><a href="#L-6852"><span class="linenos">6852</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="L-6853"><a href="#L-6853"><span class="linenos">6853</span></a>
+</span><span id="L-6854"><a href="#L-6854"><span class="linenos">6854</span></a><span class="sd"> Args:</span>
+</span><span id="L-6855"><a href="#L-6855"><span class="linenos">6855</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="L-6856"><a href="#L-6856"><span class="linenos">6856</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="L-6857"><a href="#L-6857"><span class="linenos">6857</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="L-6858"><a href="#L-6858"><span class="linenos">6858</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="L-6859"><a href="#L-6859"><span class="linenos">6859</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="L-6860"><a href="#L-6860"><span class="linenos">6860</span></a>
+</span><span id="L-6861"><a href="#L-6861"><span class="linenos">6861</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6862"><a href="#L-6862"><span class="linenos">6862</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="L-6863"><a href="#L-6863"><span class="linenos">6863</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-6864"><a href="#L-6864"><span class="linenos">6864</span></a>
-</span><span id="L-6865"><a href="#L-6865"><span class="linenos">6865</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6866"><a href="#L-6866"><span class="linenos">6866</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="L-6867"><a href="#L-6867"><span class="linenos">6867</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6868"><a href="#L-6868"><span class="linenos">6868</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="L-6869"><a href="#L-6869"><span class="linenos">6869</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="L-6870"><a href="#L-6870"><span class="linenos">6870</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="L-6871"><a href="#L-6871"><span class="linenos">6871</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="L-6872"><a href="#L-6872"><span class="linenos">6872</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="L-6873"><a href="#L-6873"><span class="linenos">6873</span></a> <span class="p">)</span>
-</span><span id="L-6874"><a href="#L-6874"><span class="linenos">6874</span></a>
-</span><span id="L-6875"><a href="#L-6875"><span class="linenos">6875</span></a> <span class="k">if</span> <span class="n">fields</span><span class="p">:</span>
-</span><span id="L-6876"><a href="#L-6876"><span class="linenos">6876</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span>
-</span><span id="L-6877"><a href="#L-6877"><span class="linenos">6877</span></a> <span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">))</span>
-</span><span id="L-6878"><a href="#L-6878"><span class="linenos">6878</span></a> <span class="p">)</span>
-</span><span id="L-6879"><a href="#L-6879"><span class="linenos">6879</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="L-6880"><a href="#L-6880"><span class="linenos">6880</span></a>
+</span><span id="L-6865"><a href="#L-6865"><span class="linenos">6865</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 class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6866"><a href="#L-6866"><span class="linenos">6866</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-6867"><a href="#L-6867"><span class="linenos">6867</span></a>
+</span><span id="L-6868"><a href="#L-6868"><span class="linenos">6868</span></a>
+</span><span id="L-6869"><a href="#L-6869"><span class="linenos">6869</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6870"><a href="#L-6870"><span class="linenos">6870</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-6871"><a href="#L-6871"><span class="linenos">6871</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-6872"><a href="#L-6872"><span class="linenos">6872</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-6873"><a href="#L-6873"><span class="linenos">6873</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6874"><a href="#L-6874"><span class="linenos">6874</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6875"><a href="#L-6875"><span class="linenos">6875</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-6876"><a href="#L-6876"><span class="linenos">6876</span></a> <span class="n">fields</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">]],</span>
+</span><span id="L-6877"><a href="#L-6877"><span class="linenos">6877</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-6878"><a href="#L-6878"><span class="linenos">6878</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6879"><a href="#L-6879"><span class="linenos">6879</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="L-6880"><a href="#L-6880"><span class="linenos">6880</span></a> <span class="k">pass</span>
</span><span id="L-6881"><a href="#L-6881"><span class="linenos">6881</span></a>
-</span><span id="L-6882"><a href="#L-6882"><span class="linenos">6882</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="L-6883"><a href="#L-6883"><span class="linenos">6883</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="L-6884"><a href="#L-6884"><span class="linenos">6884</span></a>
-</span><span id="L-6885"><a href="#L-6885"><span class="linenos">6885</span></a><span class="sd"> Example:</span>
-</span><span id="L-6886"><a href="#L-6886"><span class="linenos">6886</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="L-6887"><a href="#L-6887"><span class="linenos">6887</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="L-6888"><a href="#L-6888"><span class="linenos">6888</span></a>
-</span><span id="L-6889"><a href="#L-6889"><span class="linenos">6889</span></a><span class="sd"> Args:</span>
-</span><span id="L-6890"><a href="#L-6890"><span class="linenos">6890</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="L-6891"><a href="#L-6891"><span class="linenos">6891</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="L-6892"><a href="#L-6892"><span class="linenos">6892</span></a><span class="sd"> copy: Whether to copy the supplied expressions.</span>
-</span><span id="L-6893"><a href="#L-6893"><span class="linenos">6893</span></a>
-</span><span id="L-6894"><a href="#L-6894"><span class="linenos">6894</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6895"><a href="#L-6895"><span class="linenos">6895</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="L-6896"><a href="#L-6896"><span class="linenos">6896</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6897"><a href="#L-6897"><span class="linenos">6897</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6898"><a href="#L-6898"><span class="linenos">6898</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-6899"><a href="#L-6899"><span class="linenos">6899</span></a>
-</span><span id="L-6900"><a href="#L-6900"><span class="linenos">6900</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">data_type</span><span class="p">):</span>
-</span><span id="L-6901"><a href="#L-6901"><span class="linenos">6901</span></a> <span class="k">return</span> <span class="n">expr</span>
-</span><span id="L-6902"><a href="#L-6902"><span class="linenos">6902</span></a>
-</span><span id="L-6903"><a href="#L-6903"><span class="linenos">6903</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
-</span><span id="L-6904"><a href="#L-6904"><span class="linenos">6904</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
-</span><span id="L-6905"><a href="#L-6905"><span class="linenos">6905</span></a>
-</span><span id="L-6906"><a href="#L-6906"><span class="linenos">6906</span></a> <span class="k">return</span> <span class="n">expr</span>
-</span><span id="L-6907"><a href="#L-6907"><span class="linenos">6907</span></a>
-</span><span id="L-6908"><a href="#L-6908"><span class="linenos">6908</span></a>
-</span><span id="L-6909"><a href="#L-6909"><span class="linenos">6909</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="L-6910"><a href="#L-6910"><span class="linenos">6910</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
-</span><span id="L-6911"><a href="#L-6911"><span class="linenos">6911</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6912"><a href="#L-6912"><span class="linenos">6912</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6913"><a href="#L-6913"><span class="linenos">6913</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-6914"><a href="#L-6914"><span class="linenos">6914</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6915"><a href="#L-6915"><span class="linenos">6915</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="L-6916"><a href="#L-6916"><span class="linenos">6916</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="L-6917"><a href="#L-6917"><span class="linenos">6917</span></a>
-</span><span id="L-6918"><a href="#L-6918"><span class="linenos">6918</span></a><span class="sd"> Args:</span>
-</span><span id="L-6919"><a href="#L-6919"><span class="linenos">6919</span></a><span class="sd"> table: Table name.</span>
-</span><span id="L-6920"><a href="#L-6920"><span class="linenos">6920</span></a><span class="sd"> db: Database name.</span>
-</span><span id="L-6921"><a href="#L-6921"><span class="linenos">6921</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="L-6922"><a href="#L-6922"><span class="linenos">6922</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="L-6923"><a href="#L-6923"><span class="linenos">6923</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="L-6924"><a href="#L-6924"><span class="linenos">6924</span></a>
-</span><span id="L-6925"><a href="#L-6925"><span class="linenos">6925</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6926"><a href="#L-6926"><span class="linenos">6926</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="L-6927"><a href="#L-6927"><span class="linenos">6927</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6928"><a href="#L-6928"><span class="linenos">6928</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="L-6929"><a href="#L-6929"><span class="linenos">6929</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6930"><a href="#L-6930"><span class="linenos">6930</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6931"><a href="#L-6931"><span class="linenos">6931</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-6932"><a href="#L-6932"><span class="linenos">6932</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-6933"><a href="#L-6933"><span class="linenos">6933</span></a> <span class="p">)</span>
+</span><span id="L-6882"><a href="#L-6882"><span class="linenos">6882</span></a>
+</span><span id="L-6883"><a href="#L-6883"><span class="linenos">6883</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
+</span><span id="L-6884"><a href="#L-6884"><span class="linenos">6884</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-6885"><a href="#L-6885"><span class="linenos">6885</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-6886"><a href="#L-6886"><span class="linenos">6886</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-6887"><a href="#L-6887"><span class="linenos">6887</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6888"><a href="#L-6888"><span class="linenos">6888</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6889"><a href="#L-6889"><span class="linenos">6889</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-6890"><a href="#L-6890"><span class="linenos">6890</span></a> <span class="n">fields</span><span class="p">:</span> <span class="n">Lit</span><span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6891"><a href="#L-6891"><span class="linenos">6891</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-6892"><a href="#L-6892"><span class="linenos">6892</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6893"><a href="#L-6893"><span class="linenos">6893</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="L-6894"><a href="#L-6894"><span class="linenos">6894</span></a> <span class="k">pass</span>
+</span><span id="L-6895"><a href="#L-6895"><span class="linenos">6895</span></a>
+</span><span id="L-6896"><a href="#L-6896"><span class="linenos">6896</span></a>
+</span><span id="L-6897"><a href="#L-6897"><span class="linenos">6897</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="L-6898"><a href="#L-6898"><span class="linenos">6898</span></a> <span class="n">col</span><span class="p">,</span>
+</span><span id="L-6899"><a href="#L-6899"><span class="linenos">6899</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6900"><a href="#L-6900"><span class="linenos">6900</span></a> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6901"><a href="#L-6901"><span class="linenos">6901</span></a> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6902"><a href="#L-6902"><span class="linenos">6902</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="L-6903"><a href="#L-6903"><span class="linenos">6903</span></a> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6904"><a href="#L-6904"><span class="linenos">6904</span></a> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6905"><a href="#L-6905"><span class="linenos">6905</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="L-6906"><a href="#L-6906"><span class="linenos">6906</span></a><span class="p">):</span>
+</span><span id="L-6907"><a href="#L-6907"><span class="linenos">6907</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-6908"><a href="#L-6908"><span class="linenos">6908</span></a><span class="sd"> Build a Column.</span>
+</span><span id="L-6909"><a href="#L-6909"><span class="linenos">6909</span></a>
+</span><span id="L-6910"><a href="#L-6910"><span class="linenos">6910</span></a><span class="sd"> Args:</span>
+</span><span id="L-6911"><a href="#L-6911"><span class="linenos">6911</span></a><span class="sd"> col: Column name.</span>
+</span><span id="L-6912"><a href="#L-6912"><span class="linenos">6912</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-6913"><a href="#L-6913"><span class="linenos">6913</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-6914"><a href="#L-6914"><span class="linenos">6914</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-6915"><a href="#L-6915"><span class="linenos">6915</span></a><span class="sd"> fields: Additional fields using dots.</span>
+</span><span id="L-6916"><a href="#L-6916"><span class="linenos">6916</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="L-6917"><a href="#L-6917"><span class="linenos">6917</span></a><span class="sd"> copy: Whether to copy identifiers if passed in.</span>
+</span><span id="L-6918"><a href="#L-6918"><span class="linenos">6918</span></a>
+</span><span id="L-6919"><a href="#L-6919"><span class="linenos">6919</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6920"><a href="#L-6920"><span class="linenos">6920</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="L-6921"><a href="#L-6921"><span class="linenos">6921</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6922"><a href="#L-6922"><span class="linenos">6922</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="L-6923"><a href="#L-6923"><span class="linenos">6923</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6924"><a href="#L-6924"><span class="linenos">6924</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6925"><a href="#L-6925"><span class="linenos">6925</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6926"><a href="#L-6926"><span class="linenos">6926</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="L-6927"><a href="#L-6927"><span class="linenos">6927</span></a> <span class="p">)</span>
+</span><span id="L-6928"><a href="#L-6928"><span class="linenos">6928</span></a>
+</span><span id="L-6929"><a href="#L-6929"><span class="linenos">6929</span></a> <span class="k">if</span> <span class="n">fields</span><span class="p">:</span>
+</span><span id="L-6930"><a href="#L-6930"><span class="linenos">6930</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span>
+</span><span id="L-6931"><a href="#L-6931"><span class="linenos">6931</span></a> <span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">))</span>
+</span><span id="L-6932"><a href="#L-6932"><span class="linenos">6932</span></a> <span class="p">)</span>
+</span><span id="L-6933"><a href="#L-6933"><span class="linenos">6933</span></a> <span class="k">return</span> <span class="n">this</span>
</span><span id="L-6934"><a href="#L-6934"><span class="linenos">6934</span></a>
</span><span id="L-6935"><a href="#L-6935"><span class="linenos">6935</span></a>
-</span><span id="L-6936"><a href="#L-6936"><span class="linenos">6936</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="L-6937"><a href="#L-6937"><span class="linenos">6937</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-6938"><a href="#L-6938"><span class="linenos">6938</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-6939"><a href="#L-6939"><span class="linenos">6939</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-6940"><a href="#L-6940"><span class="linenos">6940</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="L-6941"><a href="#L-6941"><span class="linenos">6941</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-6936"><a href="#L-6936"><span class="linenos">6936</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="L-6937"><a href="#L-6937"><span class="linenos">6937</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="L-6938"><a href="#L-6938"><span class="linenos">6938</span></a>
+</span><span id="L-6939"><a href="#L-6939"><span class="linenos">6939</span></a><span class="sd"> Example:</span>
+</span><span id="L-6940"><a href="#L-6940"><span class="linenos">6940</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="L-6941"><a href="#L-6941"><span class="linenos">6941</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
</span><span id="L-6942"><a href="#L-6942"><span class="linenos">6942</span></a>
-</span><span id="L-6943"><a href="#L-6943"><span class="linenos">6943</span></a><span class="sd"> Example:</span>
-</span><span id="L-6944"><a href="#L-6944"><span class="linenos">6944</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="L-6945"><a href="#L-6945"><span class="linenos">6945</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="L-6946"><a href="#L-6946"><span class="linenos">6946</span></a>
-</span><span id="L-6947"><a href="#L-6947"><span class="linenos">6947</span></a><span class="sd"> Args:</span>
-</span><span id="L-6948"><a href="#L-6948"><span class="linenos">6948</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="L-6949"><a href="#L-6949"><span class="linenos">6949</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="L-6950"><a href="#L-6950"><span class="linenos">6950</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-6951"><a href="#L-6951"><span class="linenos">6951</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="L-6952"><a href="#L-6952"><span class="linenos">6952</span></a>
-</span><span id="L-6953"><a href="#L-6953"><span class="linenos">6953</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6954"><a href="#L-6954"><span class="linenos">6954</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="L-6955"><a href="#L-6955"><span class="linenos">6955</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6956"><a href="#L-6956"><span class="linenos">6956</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-6957"><a href="#L-6957"><span class="linenos">6957</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-6958"><a href="#L-6958"><span class="linenos">6958</span></a>
-</span><span id="L-6959"><a href="#L-6959"><span class="linenos">6959</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="L-6960"><a href="#L-6960"><span class="linenos">6960</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-6961"><a href="#L-6961"><span class="linenos">6961</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="L-6962"><a href="#L-6962"><span class="linenos">6962</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-6963"><a href="#L-6963"><span class="linenos">6963</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="L-6964"><a href="#L-6964"><span class="linenos">6964</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="L-6965"><a href="#L-6965"><span class="linenos">6965</span></a> <span class="p">),</span>
-</span><span id="L-6966"><a href="#L-6966"><span class="linenos">6966</span></a> <span class="p">)</span>
-</span><span id="L-6967"><a href="#L-6967"><span class="linenos">6967</span></a>
-</span><span id="L-6968"><a href="#L-6968"><span class="linenos">6968</span></a>
-</span><span id="L-6969"><a href="#L-6969"><span class="linenos">6969</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
-</span><span id="L-6970"><a href="#L-6970"><span class="linenos">6970</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="L-6943"><a href="#L-6943"><span class="linenos">6943</span></a><span class="sd"> Args:</span>
+</span><span id="L-6944"><a href="#L-6944"><span class="linenos">6944</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="L-6945"><a href="#L-6945"><span class="linenos">6945</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="L-6946"><a href="#L-6946"><span class="linenos">6946</span></a><span class="sd"> copy: Whether to copy the supplied expressions.</span>
+</span><span id="L-6947"><a href="#L-6947"><span class="linenos">6947</span></a>
+</span><span id="L-6948"><a href="#L-6948"><span class="linenos">6948</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6949"><a href="#L-6949"><span class="linenos">6949</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="L-6950"><a href="#L-6950"><span class="linenos">6950</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6951"><a href="#L-6951"><span class="linenos">6951</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6952"><a href="#L-6952"><span class="linenos">6952</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-6953"><a href="#L-6953"><span class="linenos">6953</span></a>
+</span><span id="L-6954"><a href="#L-6954"><span class="linenos">6954</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">data_type</span><span class="p">):</span>
+</span><span id="L-6955"><a href="#L-6955"><span class="linenos">6955</span></a> <span class="k">return</span> <span class="n">expr</span>
+</span><span id="L-6956"><a href="#L-6956"><span class="linenos">6956</span></a>
+</span><span id="L-6957"><a href="#L-6957"><span class="linenos">6957</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
+</span><span id="L-6958"><a href="#L-6958"><span class="linenos">6958</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
+</span><span id="L-6959"><a href="#L-6959"><span class="linenos">6959</span></a>
+</span><span id="L-6960"><a href="#L-6960"><span class="linenos">6960</span></a> <span class="k">return</span> <span class="n">expr</span>
+</span><span id="L-6961"><a href="#L-6961"><span class="linenos">6961</span></a>
+</span><span id="L-6962"><a href="#L-6962"><span class="linenos">6962</span></a>
+</span><span id="L-6963"><a href="#L-6963"><span class="linenos">6963</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="L-6964"><a href="#L-6964"><span class="linenos">6964</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
+</span><span id="L-6965"><a href="#L-6965"><span class="linenos">6965</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6966"><a href="#L-6966"><span class="linenos">6966</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6967"><a href="#L-6967"><span class="linenos">6967</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-6968"><a href="#L-6968"><span class="linenos">6968</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6969"><a href="#L-6969"><span class="linenos">6969</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="L-6970"><a href="#L-6970"><span class="linenos">6970</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
</span><span id="L-6971"><a href="#L-6971"><span class="linenos">6971</span></a>
-</span><span id="L-6972"><a href="#L-6972"><span class="linenos">6972</span></a><span class="sd"> Example:</span>
-</span><span id="L-6973"><a href="#L-6973"><span class="linenos">6973</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="L-6974"><a href="#L-6974"><span class="linenos">6974</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
-</span><span id="L-6975"><a href="#L-6975"><span class="linenos">6975</span></a>
-</span><span id="L-6976"><a href="#L-6976"><span class="linenos">6976</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="L-6977"><a href="#L-6977"><span class="linenos">6977</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="L-6972"><a href="#L-6972"><span class="linenos">6972</span></a><span class="sd"> Args:</span>
+</span><span id="L-6973"><a href="#L-6973"><span class="linenos">6973</span></a><span class="sd"> table: Table name.</span>
+</span><span id="L-6974"><a href="#L-6974"><span class="linenos">6974</span></a><span class="sd"> db: Database name.</span>
+</span><span id="L-6975"><a href="#L-6975"><span class="linenos">6975</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="L-6976"><a href="#L-6976"><span class="linenos">6976</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="L-6977"><a href="#L-6977"><span class="linenos">6977</span></a><span class="sd"> alias: Table&#39;s alias.</span>
</span><span id="L-6978"><a href="#L-6978"><span class="linenos">6978</span></a>
-</span><span id="L-6979"><a href="#L-6979"><span class="linenos">6979</span></a><span class="sd"> Args:</span>
-</span><span id="L-6980"><a href="#L-6980"><span class="linenos">6980</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-6981"><a href="#L-6981"><span class="linenos">6981</span></a>
-</span><span id="L-6982"><a href="#L-6982"><span class="linenos">6982</span></a><span class="sd"> Returns:</span>
-</span><span id="L-6983"><a href="#L-6983"><span class="linenos">6983</span></a><span class="sd"> The new variable node.</span>
-</span><span id="L-6984"><a href="#L-6984"><span class="linenos">6984</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-6985"><a href="#L-6985"><span class="linenos">6985</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-6986"><a href="#L-6986"><span class="linenos">6986</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
-</span><span id="L-6987"><a href="#L-6987"><span class="linenos">6987</span></a>
-</span><span id="L-6988"><a href="#L-6988"><span class="linenos">6988</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-6989"><a href="#L-6989"><span class="linenos">6989</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-6990"><a href="#L-6990"><span class="linenos">6990</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-6991"><a href="#L-6991"><span class="linenos">6991</span></a>
-</span><span id="L-6992"><a href="#L-6992"><span class="linenos">6992</span></a>
-</span><span id="L-6993"><a href="#L-6993"><span class="linenos">6993</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span>
-</span><span id="L-6994"><a href="#L-6994"><span class="linenos">6994</span></a> <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><span id="L-6995"><a href="#L-6995"><span class="linenos">6995</span></a> <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><span id="L-6996"><a href="#L-6996"><span class="linenos">6996</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-6997"><a href="#L-6997"><span class="linenos">6997</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="L-6998"><a href="#L-6998"><span class="linenos">6998</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="L-6999"><a href="#L-6999"><span class="linenos">6999</span></a>
-</span><span id="L-7000"><a href="#L-7000"><span class="linenos">7000</span></a><span class="sd"> Args:</span>
-</span><span id="L-7001"><a href="#L-7001"><span class="linenos">7001</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="L-7002"><a href="#L-7002"><span class="linenos">7002</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="L-7003"><a href="#L-7003"><span class="linenos">7003</span></a><span class="sd"> dialect: The dialect to parse the table.</span>
-</span><span id="L-7004"><a href="#L-7004"><span class="linenos">7004</span></a>
-</span><span id="L-7005"><a href="#L-7005"><span class="linenos">7005</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7006"><a href="#L-7006"><span class="linenos">7006</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-7007"><a href="#L-7007"><span class="linenos">7007</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7008"><a href="#L-7008"><span class="linenos">7008</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-7009"><a href="#L-7009"><span class="linenos">7009</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-7010"><a href="#L-7010"><span class="linenos">7010</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-7011"><a href="#L-7011"><span class="linenos">7011</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-7012"><a href="#L-7012"><span class="linenos">7012</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-7013"><a href="#L-7013"><span class="linenos">7013</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-7014"><a href="#L-7014"><span class="linenos">7014</span></a> <span class="p">],</span>
-</span><span id="L-7015"><a href="#L-7015"><span class="linenos">7015</span></a> <span class="p">)</span>
-</span><span id="L-7016"><a href="#L-7016"><span class="linenos">7016</span></a>
-</span><span id="L-7017"><a href="#L-7017"><span class="linenos">7017</span></a>
-</span><span id="L-7018"><a href="#L-7018"><span class="linenos">7018</span></a><span class="k">def</span> <span class="nf">rename_column</span><span class="p">(</span>
-</span><span id="L-7019"><a href="#L-7019"><span class="linenos">7019</span></a> <span class="n">table_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><span id="L-7020"><a href="#L-7020"><span class="linenos">7020</span></a> <span class="n">old_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
-</span><span id="L-7021"><a href="#L-7021"><span class="linenos">7021</span></a> <span class="n">new_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
-</span><span id="L-7022"><a href="#L-7022"><span class="linenos">7022</span></a> <span class="n">exists</span><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-7023"><a href="#L-7023"><span class="linenos">7023</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-7024"><a href="#L-7024"><span class="linenos">7024</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="L-7025"><a href="#L-7025"><span class="linenos">7025</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME COLUMN... expression</span>
-</span><span id="L-7026"><a href="#L-7026"><span class="linenos">7026</span></a>
-</span><span id="L-7027"><a href="#L-7027"><span class="linenos">7027</span></a><span class="sd"> Args:</span>
-</span><span id="L-7028"><a href="#L-7028"><span class="linenos">7028</span></a><span class="sd"> table_name: Name of the table</span>
-</span><span id="L-7029"><a href="#L-7029"><span class="linenos">7029</span></a><span class="sd"> old_column: The old name of the column</span>
-</span><span id="L-7030"><a href="#L-7030"><span class="linenos">7030</span></a><span class="sd"> new_column: The new name of the column</span>
-</span><span id="L-7031"><a href="#L-7031"><span class="linenos">7031</span></a><span class="sd"> exists: Whether to add the `IF EXISTS` clause</span>
-</span><span id="L-7032"><a href="#L-7032"><span class="linenos">7032</span></a><span class="sd"> dialect: The dialect to parse the table/column.</span>
-</span><span id="L-7033"><a href="#L-7033"><span class="linenos">7033</span></a>
-</span><span id="L-7034"><a href="#L-7034"><span class="linenos">7034</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7035"><a href="#L-7035"><span class="linenos">7035</span></a><span class="sd"> Alter table expression</span>
-</span><span id="L-7036"><a href="#L-7036"><span class="linenos">7036</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7037"><a href="#L-7037"><span class="linenos">7037</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">table_name</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-7038"><a href="#L-7038"><span class="linenos">7038</span></a> <span class="n">old_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">old_column_name</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-7039"><a href="#L-7039"><span class="linenos">7039</span></a> <span class="n">new_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">new_column_name</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-7040"><a href="#L-7040"><span class="linenos">7040</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="L-7041"><a href="#L-7041"><span class="linenos">7041</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="L-7042"><a href="#L-7042"><span class="linenos">7042</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-7043"><a href="#L-7043"><span class="linenos">7043</span></a> <span class="n">RenameColumn</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">old_column</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">new_column</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">),</span>
-</span><span id="L-7044"><a href="#L-7044"><span class="linenos">7044</span></a> <span class="p">],</span>
-</span><span id="L-7045"><a href="#L-7045"><span class="linenos">7045</span></a> <span class="p">)</span>
+</span><span id="L-6979"><a href="#L-6979"><span class="linenos">6979</span></a><span class="sd"> Returns:</span>
+</span><span id="L-6980"><a href="#L-6980"><span class="linenos">6980</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="L-6981"><a href="#L-6981"><span class="linenos">6981</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-6982"><a href="#L-6982"><span class="linenos">6982</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="L-6983"><a href="#L-6983"><span class="linenos">6983</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6984"><a href="#L-6984"><span class="linenos">6984</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6985"><a href="#L-6985"><span class="linenos">6985</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-6986"><a href="#L-6986"><span class="linenos">6986</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-6987"><a href="#L-6987"><span class="linenos">6987</span></a> <span class="p">)</span>
+</span><span id="L-6988"><a href="#L-6988"><span class="linenos">6988</span></a>
+</span><span id="L-6989"><a href="#L-6989"><span class="linenos">6989</span></a>
+</span><span id="L-6990"><a href="#L-6990"><span class="linenos">6990</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="L-6991"><a href="#L-6991"><span class="linenos">6991</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-6992"><a href="#L-6992"><span class="linenos">6992</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-6993"><a href="#L-6993"><span class="linenos">6993</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-6994"><a href="#L-6994"><span class="linenos">6994</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="L-6995"><a href="#L-6995"><span class="linenos">6995</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="L-6996"><a href="#L-6996"><span class="linenos">6996</span></a>
+</span><span id="L-6997"><a href="#L-6997"><span class="linenos">6997</span></a><span class="sd"> Example:</span>
+</span><span id="L-6998"><a href="#L-6998"><span class="linenos">6998</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="L-6999"><a href="#L-6999"><span class="linenos">6999</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="L-7000"><a href="#L-7000"><span class="linenos">7000</span></a>
+</span><span id="L-7001"><a href="#L-7001"><span class="linenos">7001</span></a><span class="sd"> Args:</span>
+</span><span id="L-7002"><a href="#L-7002"><span class="linenos">7002</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="L-7003"><a href="#L-7003"><span class="linenos">7003</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="L-7004"><a href="#L-7004"><span class="linenos">7004</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-7005"><a href="#L-7005"><span class="linenos">7005</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="L-7006"><a href="#L-7006"><span class="linenos">7006</span></a>
+</span><span id="L-7007"><a href="#L-7007"><span class="linenos">7007</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7008"><a href="#L-7008"><span class="linenos">7008</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="L-7009"><a href="#L-7009"><span class="linenos">7009</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7010"><a href="#L-7010"><span class="linenos">7010</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-7011"><a href="#L-7011"><span class="linenos">7011</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-7012"><a href="#L-7012"><span class="linenos">7012</span></a>
+</span><span id="L-7013"><a href="#L-7013"><span class="linenos">7013</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="L-7014"><a href="#L-7014"><span class="linenos">7014</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-7015"><a href="#L-7015"><span class="linenos">7015</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="L-7016"><a href="#L-7016"><span class="linenos">7016</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-7017"><a href="#L-7017"><span class="linenos">7017</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="L-7018"><a href="#L-7018"><span class="linenos">7018</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="L-7019"><a href="#L-7019"><span class="linenos">7019</span></a> <span class="p">),</span>
+</span><span id="L-7020"><a href="#L-7020"><span class="linenos">7020</span></a> <span class="p">)</span>
+</span><span id="L-7021"><a href="#L-7021"><span class="linenos">7021</span></a>
+</span><span id="L-7022"><a href="#L-7022"><span class="linenos">7022</span></a>
+</span><span id="L-7023"><a href="#L-7023"><span class="linenos">7023</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
+</span><span id="L-7024"><a href="#L-7024"><span class="linenos">7024</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="L-7025"><a href="#L-7025"><span class="linenos">7025</span></a>
+</span><span id="L-7026"><a href="#L-7026"><span class="linenos">7026</span></a><span class="sd"> Example:</span>
+</span><span id="L-7027"><a href="#L-7027"><span class="linenos">7027</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="L-7028"><a href="#L-7028"><span class="linenos">7028</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="L-7029"><a href="#L-7029"><span class="linenos">7029</span></a>
+</span><span id="L-7030"><a href="#L-7030"><span class="linenos">7030</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="L-7031"><a href="#L-7031"><span class="linenos">7031</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="L-7032"><a href="#L-7032"><span class="linenos">7032</span></a>
+</span><span id="L-7033"><a href="#L-7033"><span class="linenos">7033</span></a><span class="sd"> Args:</span>
+</span><span id="L-7034"><a href="#L-7034"><span class="linenos">7034</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-7035"><a href="#L-7035"><span class="linenos">7035</span></a>
+</span><span id="L-7036"><a href="#L-7036"><span class="linenos">7036</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7037"><a href="#L-7037"><span class="linenos">7037</span></a><span class="sd"> The new variable node.</span>
+</span><span id="L-7038"><a href="#L-7038"><span class="linenos">7038</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7039"><a href="#L-7039"><span class="linenos">7039</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-7040"><a href="#L-7040"><span class="linenos">7040</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
+</span><span id="L-7041"><a href="#L-7041"><span class="linenos">7041</span></a>
+</span><span id="L-7042"><a href="#L-7042"><span class="linenos">7042</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-7043"><a href="#L-7043"><span class="linenos">7043</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-7044"><a href="#L-7044"><span class="linenos">7044</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-7045"><a href="#L-7045"><span class="linenos">7045</span></a>
</span><span id="L-7046"><a href="#L-7046"><span class="linenos">7046</span></a>
-</span><span id="L-7047"><a href="#L-7047"><span class="linenos">7047</span></a>
-</span><span id="L-7048"><a href="#L-7048"><span class="linenos">7048</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-7049"><a href="#L-7049"><span class="linenos">7049</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-7050"><a href="#L-7050"><span class="linenos">7050</span></a>
-</span><span id="L-7051"><a href="#L-7051"><span class="linenos">7051</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="L-7052"><a href="#L-7052"><span class="linenos">7052</span></a>
-</span><span id="L-7053"><a href="#L-7053"><span class="linenos">7053</span></a><span class="sd"> Args:</span>
-</span><span id="L-7054"><a href="#L-7054"><span class="linenos">7054</span></a><span class="sd"> value: A python object.</span>
-</span><span id="L-7055"><a href="#L-7055"><span class="linenos">7055</span></a><span class="sd"> copy: Whether to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="L-7056"><a href="#L-7056"><span class="linenos">7056</span></a>
-</span><span id="L-7057"><a href="#L-7057"><span class="linenos">7057</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7058"><a href="#L-7058"><span class="linenos">7058</span></a><span class="sd"> The equivalent expression object.</span>
-</span><span id="L-7059"><a href="#L-7059"><span class="linenos">7059</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7060"><a href="#L-7060"><span class="linenos">7060</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-7061"><a href="#L-7061"><span class="linenos">7061</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="L-7062"><a href="#L-7062"><span class="linenos">7062</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-7063"><a href="#L-7063"><span class="linenos">7063</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-7064"><a href="#L-7064"><span class="linenos">7064</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-7065"><a href="#L-7065"><span class="linenos">7065</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-7066"><a href="#L-7066"><span class="linenos">7066</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
-</span><span id="L-7067"><a href="#L-7067"><span class="linenos">7067</span></a> <span class="k">return</span> <span class="n">null</span><span class="p">()</span>
-</span><span id="L-7068"><a href="#L-7068"><span class="linenos">7068</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-7069"><a href="#L-7069"><span class="linenos">7069</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-7070"><a href="#L-7070"><span class="linenos">7070</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">bytes</span><span class="p">):</span>
-</span><span id="L-7071"><a href="#L-7071"><span class="linenos">7071</span></a> <span class="k">return</span> <span class="n">HexString</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="o">.</span><span class="n">hex</span><span class="p">())</span>
-</span><span id="L-7072"><a href="#L-7072"><span class="linenos">7072</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-7073"><a href="#L-7073"><span class="linenos">7073</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-7074"><a href="#L-7074"><span class="linenos">7074</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-7075"><a href="#L-7075"><span class="linenos">7075</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span>
-</span><span id="L-7076"><a href="#L-7076"><span class="linenos">7076</span></a> <span class="p">)</span>
-</span><span id="L-7077"><a href="#L-7077"><span class="linenos">7077</span></a> <span class="p">)</span>
-</span><span id="L-7078"><a href="#L-7078"><span class="linenos">7078</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-7079"><a href="#L-7079"><span class="linenos">7079</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-7080"><a href="#L-7080"><span class="linenos">7080</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-7081"><a href="#L-7081"><span class="linenos">7081</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-7082"><a href="#L-7082"><span class="linenos">7082</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-7083"><a href="#L-7083"><span class="linenos">7083</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;_fields&quot;</span><span class="p">):</span>
-</span><span id="L-7084"><a href="#L-7084"><span class="linenos">7084</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
-</span><span id="L-7085"><a href="#L-7085"><span class="linenos">7085</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-7086"><a href="#L-7086"><span class="linenos">7086</span></a> <span class="n">PropertyEQ</span><span class="p">(</span>
-</span><span id="L-7087"><a href="#L-7087"><span class="linenos">7087</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">k</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="nb">getattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">k</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="L-7088"><a href="#L-7088"><span class="linenos">7088</span></a> <span class="p">)</span>
-</span><span id="L-7089"><a href="#L-7089"><span class="linenos">7089</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">_fields</span>
-</span><span id="L-7090"><a href="#L-7090"><span class="linenos">7090</span></a> <span class="p">]</span>
-</span><span id="L-7091"><a href="#L-7091"><span class="linenos">7091</span></a> <span class="p">)</span>
-</span><span id="L-7092"><a href="#L-7092"><span class="linenos">7092</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-7093"><a href="#L-7093"><span class="linenos">7093</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-7094"><a href="#L-7094"><span class="linenos">7094</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="L-7095"><a href="#L-7095"><span class="linenos">7095</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-7096"><a href="#L-7096"><span class="linenos">7096</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="L-7097"><a href="#L-7097"><span class="linenos">7097</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
-</span><span id="L-7098"><a href="#L-7098"><span class="linenos">7098</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
-</span><span id="L-7099"><a href="#L-7099"><span class="linenos">7099</span></a> <span class="p">)</span>
-</span><span id="L-7100"><a href="#L-7100"><span class="linenos">7100</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;__dict__&quot;</span><span class="p">):</span>
-</span><span id="L-7101"><a href="#L-7101"><span class="linenos">7101</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
-</span><span id="L-7102"><a href="#L-7102"><span class="linenos">7102</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-7103"><a href="#L-7103"><span class="linenos">7103</span></a> <span class="n">PropertyEQ</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">k</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
-</span><span id="L-7104"><a href="#L-7104"><span class="linenos">7104</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">value</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="L-7105"><a href="#L-7105"><span class="linenos">7105</span></a> <span class="p">]</span>
-</span><span id="L-7106"><a href="#L-7106"><span class="linenos">7106</span></a> <span class="p">)</span>
-</span><span id="L-7107"><a href="#L-7107"><span class="linenos">7107</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-7108"><a href="#L-7108"><span class="linenos">7108</span></a>
-</span><span id="L-7109"><a href="#L-7109"><span class="linenos">7109</span></a>
-</span><span id="L-7110"><a href="#L-7110"><span class="linenos">7110</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-7111"><a href="#L-7111"><span class="linenos">7111</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7112"><a href="#L-7112"><span class="linenos">7112</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-7047"><a href="#L-7047"><span class="linenos">7047</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span>
+</span><span id="L-7048"><a href="#L-7048"><span class="linenos">7048</span></a> <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><span id="L-7049"><a href="#L-7049"><span class="linenos">7049</span></a> <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><span id="L-7050"><a href="#L-7050"><span class="linenos">7050</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-7051"><a href="#L-7051"><span class="linenos">7051</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="L-7052"><a href="#L-7052"><span class="linenos">7052</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="L-7053"><a href="#L-7053"><span class="linenos">7053</span></a>
+</span><span id="L-7054"><a href="#L-7054"><span class="linenos">7054</span></a><span class="sd"> Args:</span>
+</span><span id="L-7055"><a href="#L-7055"><span class="linenos">7055</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="L-7056"><a href="#L-7056"><span class="linenos">7056</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="L-7057"><a href="#L-7057"><span class="linenos">7057</span></a><span class="sd"> dialect: The dialect to parse the table.</span>
+</span><span id="L-7058"><a href="#L-7058"><span class="linenos">7058</span></a>
+</span><span id="L-7059"><a href="#L-7059"><span class="linenos">7059</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7060"><a href="#L-7060"><span class="linenos">7060</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-7061"><a href="#L-7061"><span class="linenos">7061</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7062"><a href="#L-7062"><span class="linenos">7062</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-7063"><a href="#L-7063"><span class="linenos">7063</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-7064"><a href="#L-7064"><span class="linenos">7064</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-7065"><a href="#L-7065"><span class="linenos">7065</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-7066"><a href="#L-7066"><span class="linenos">7066</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-7067"><a href="#L-7067"><span class="linenos">7067</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-7068"><a href="#L-7068"><span class="linenos">7068</span></a> <span class="p">],</span>
+</span><span id="L-7069"><a href="#L-7069"><span class="linenos">7069</span></a> <span class="p">)</span>
+</span><span id="L-7070"><a href="#L-7070"><span class="linenos">7070</span></a>
+</span><span id="L-7071"><a href="#L-7071"><span class="linenos">7071</span></a>
+</span><span id="L-7072"><a href="#L-7072"><span class="linenos">7072</span></a><span class="k">def</span> <span class="nf">rename_column</span><span class="p">(</span>
+</span><span id="L-7073"><a href="#L-7073"><span class="linenos">7073</span></a> <span class="n">table_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><span id="L-7074"><a href="#L-7074"><span class="linenos">7074</span></a> <span class="n">old_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
+</span><span id="L-7075"><a href="#L-7075"><span class="linenos">7075</span></a> <span class="n">new_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
+</span><span id="L-7076"><a href="#L-7076"><span class="linenos">7076</span></a> <span class="n">exists</span><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-7077"><a href="#L-7077"><span class="linenos">7077</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-7078"><a href="#L-7078"><span class="linenos">7078</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="L-7079"><a href="#L-7079"><span class="linenos">7079</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME COLUMN... expression</span>
+</span><span id="L-7080"><a href="#L-7080"><span class="linenos">7080</span></a>
+</span><span id="L-7081"><a href="#L-7081"><span class="linenos">7081</span></a><span class="sd"> Args:</span>
+</span><span id="L-7082"><a href="#L-7082"><span class="linenos">7082</span></a><span class="sd"> table_name: Name of the table</span>
+</span><span id="L-7083"><a href="#L-7083"><span class="linenos">7083</span></a><span class="sd"> old_column: The old name of the column</span>
+</span><span id="L-7084"><a href="#L-7084"><span class="linenos">7084</span></a><span class="sd"> new_column: The new name of the column</span>
+</span><span id="L-7085"><a href="#L-7085"><span class="linenos">7085</span></a><span class="sd"> exists: Whether to add the `IF EXISTS` clause</span>
+</span><span id="L-7086"><a href="#L-7086"><span class="linenos">7086</span></a><span class="sd"> dialect: The dialect to parse the table/column.</span>
+</span><span id="L-7087"><a href="#L-7087"><span class="linenos">7087</span></a>
+</span><span id="L-7088"><a href="#L-7088"><span class="linenos">7088</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7089"><a href="#L-7089"><span class="linenos">7089</span></a><span class="sd"> Alter table expression</span>
+</span><span id="L-7090"><a href="#L-7090"><span class="linenos">7090</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7091"><a href="#L-7091"><span class="linenos">7091</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">table_name</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-7092"><a href="#L-7092"><span class="linenos">7092</span></a> <span class="n">old_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">old_column_name</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-7093"><a href="#L-7093"><span class="linenos">7093</span></a> <span class="n">new_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">new_column_name</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-7094"><a href="#L-7094"><span class="linenos">7094</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="L-7095"><a href="#L-7095"><span class="linenos">7095</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="L-7096"><a href="#L-7096"><span class="linenos">7096</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-7097"><a href="#L-7097"><span class="linenos">7097</span></a> <span class="n">RenameColumn</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">old_column</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">new_column</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">),</span>
+</span><span id="L-7098"><a href="#L-7098"><span class="linenos">7098</span></a> <span class="p">],</span>
+</span><span id="L-7099"><a href="#L-7099"><span class="linenos">7099</span></a> <span class="p">)</span>
+</span><span id="L-7100"><a href="#L-7100"><span class="linenos">7100</span></a>
+</span><span id="L-7101"><a href="#L-7101"><span class="linenos">7101</span></a>
+</span><span id="L-7102"><a href="#L-7102"><span class="linenos">7102</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-7103"><a href="#L-7103"><span class="linenos">7103</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-7104"><a href="#L-7104"><span class="linenos">7104</span></a>
+</span><span id="L-7105"><a href="#L-7105"><span class="linenos">7105</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="L-7106"><a href="#L-7106"><span class="linenos">7106</span></a>
+</span><span id="L-7107"><a href="#L-7107"><span class="linenos">7107</span></a><span class="sd"> Args:</span>
+</span><span id="L-7108"><a href="#L-7108"><span class="linenos">7108</span></a><span class="sd"> value: A python object.</span>
+</span><span id="L-7109"><a href="#L-7109"><span class="linenos">7109</span></a><span class="sd"> copy: Whether to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="L-7110"><a href="#L-7110"><span class="linenos">7110</span></a>
+</span><span id="L-7111"><a href="#L-7111"><span class="linenos">7111</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7112"><a href="#L-7112"><span class="linenos">7112</span></a><span class="sd"> The equivalent expression object.</span>
</span><span id="L-7113"><a href="#L-7113"><span class="linenos">7113</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7114"><a href="#L-7114"><span class="linenos">7114</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="nb">tuple</span><span class="p">(</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-7115"><a href="#L-7115"><span class="linenos">7115</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
-</span><span id="L-7116"><a href="#L-7116"><span class="linenos">7116</span></a>
-</span><span id="L-7117"><a href="#L-7117"><span class="linenos">7117</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-7118"><a href="#L-7118"><span class="linenos">7118</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="L-7119"><a href="#L-7119"><span class="linenos">7119</span></a>
-</span><span id="L-7120"><a href="#L-7120"><span class="linenos">7120</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-7121"><a href="#L-7121"><span class="linenos">7121</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-7122"><a href="#L-7122"><span class="linenos">7122</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
-</span><span id="L-7123"><a href="#L-7123"><span class="linenos">7123</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-7124"><a href="#L-7124"><span class="linenos">7124</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7125"><a href="#L-7125"><span class="linenos">7125</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-7126"><a href="#L-7126"><span class="linenos">7126</span></a>
-</span><span id="L-7127"><a href="#L-7127"><span class="linenos">7127</span></a> <span class="n">expression</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">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-7128"><a href="#L-7128"><span class="linenos">7128</span></a>
-</span><span id="L-7129"><a href="#L-7129"><span class="linenos">7129</span></a>
-</span><span id="L-7130"><a href="#L-7130"><span class="linenos">7130</span></a><span class="k">def</span> <span class="nf">replace_tree</span><span class="p">(</span>
-</span><span id="L-7131"><a href="#L-7131"><span class="linenos">7131</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="L-7132"><a href="#L-7132"><span class="linenos">7132</span></a> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span>
-</span><span id="L-7133"><a href="#L-7133"><span class="linenos">7133</span></a> <span class="n">prune</span><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">Callable</span><span class="p">[[</span><span class="n">Expression</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-7134"><a href="#L-7134"><span class="linenos">7134</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-7135"><a href="#L-7135"><span class="linenos">7135</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7136"><a href="#L-7136"><span class="linenos">7136</span></a><span class="sd"> Replace an entire tree with the result of function calls on each node.</span>
-</span><span id="L-7137"><a href="#L-7137"><span class="linenos">7137</span></a>
-</span><span id="L-7138"><a href="#L-7138"><span class="linenos">7138</span></a><span class="sd"> This will be traversed in reverse dfs, so leaves first.</span>
-</span><span id="L-7139"><a href="#L-7139"><span class="linenos">7139</span></a><span class="sd"> If new nodes are created as a result of function calls, they will also be traversed.</span>
-</span><span id="L-7140"><a href="#L-7140"><span class="linenos">7140</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7141"><a href="#L-7141"><span class="linenos">7141</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">))</span>
-</span><span id="L-7142"><a href="#L-7142"><span class="linenos">7142</span></a>
-</span><span id="L-7143"><a href="#L-7143"><span class="linenos">7143</span></a> <span class="k">while</span> <span class="n">stack</span><span class="p">:</span>
-</span><span id="L-7144"><a href="#L-7144"><span class="linenos">7144</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
-</span><span id="L-7145"><a href="#L-7145"><span class="linenos">7145</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="L-7146"><a href="#L-7146"><span class="linenos">7146</span></a>
-</span><span id="L-7147"><a href="#L-7147"><span class="linenos">7147</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="L-7148"><a href="#L-7148"><span class="linenos">7148</span></a> <span class="n">node</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
-</span><span id="L-7149"><a href="#L-7149"><span class="linenos">7149</span></a>
-</span><span id="L-7150"><a href="#L-7150"><span class="linenos">7150</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="L-7151"><a href="#L-7151"><span class="linenos">7151</span></a> <span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
-</span><span id="L-7152"><a href="#L-7152"><span class="linenos">7152</span></a>
-</span><span id="L-7153"><a href="#L-7153"><span class="linenos">7153</span></a> <span class="k">return</span> <span class="n">new_node</span>
-</span><span id="L-7154"><a href="#L-7154"><span class="linenos">7154</span></a>
-</span><span id="L-7155"><a href="#L-7155"><span class="linenos">7155</span></a>
-</span><span id="L-7156"><a href="#L-7156"><span class="linenos">7156</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="L-7157"><a href="#L-7157"><span class="linenos">7157</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7158"><a href="#L-7158"><span class="linenos">7158</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="L-7159"><a href="#L-7159"><span class="linenos">7159</span></a>
-</span><span id="L-7160"><a href="#L-7160"><span class="linenos">7160</span></a><span class="sd"> Example:</span>
-</span><span id="L-7161"><a href="#L-7161"><span class="linenos">7161</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="L-7162"><a href="#L-7162"><span class="linenos">7162</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
-</span><span id="L-7163"><a href="#L-7163"><span class="linenos">7163</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
-</span><span id="L-7164"><a href="#L-7164"><span class="linenos">7164</span></a>
-</span><span id="L-7165"><a href="#L-7165"><span class="linenos">7165</span></a><span class="sd"> Args:</span>
-</span><span id="L-7166"><a href="#L-7166"><span class="linenos">7166</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="L-7167"><a href="#L-7167"><span class="linenos">7167</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="L-7168"><a href="#L-7168"><span class="linenos">7168</span></a>
-</span><span id="L-7169"><a href="#L-7169"><span class="linenos">7169</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7170"><a href="#L-7170"><span class="linenos">7170</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="L-7171"><a href="#L-7171"><span class="linenos">7171</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7172"><a href="#L-7172"><span class="linenos">7172</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="L-7173"><a href="#L-7173"><span class="linenos">7173</span></a> <span class="n">table</span>
-</span><span id="L-7174"><a href="#L-7174"><span class="linenos">7174</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
-</span><span id="L-7175"><a href="#L-7175"><span class="linenos">7175</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
-</span><span id="L-7176"><a href="#L-7176"><span class="linenos">7176</span></a> <span class="p">}</span>
-</span><span id="L-7177"><a href="#L-7177"><span class="linenos">7177</span></a>
-</span><span id="L-7178"><a href="#L-7178"><span class="linenos">7178</span></a>
-</span><span id="L-7179"><a href="#L-7179"><span class="linenos">7179</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-7180"><a href="#L-7180"><span class="linenos">7180</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-7181"><a href="#L-7181"><span class="linenos">7181</span></a>
-</span><span id="L-7182"><a href="#L-7182"><span class="linenos">7182</span></a><span class="sd"> Args:</span>
-</span><span id="L-7183"><a href="#L-7183"><span class="linenos">7183</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="L-7184"><a href="#L-7184"><span class="linenos">7184</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="L-7185"><a href="#L-7185"><span class="linenos">7185</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
-</span><span id="L-7186"><a href="#L-7186"><span class="linenos">7186</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
-</span><span id="L-7187"><a href="#L-7187"><span class="linenos">7187</span></a><span class="sd"> True: Always quote.</span>
-</span><span id="L-7188"><a href="#L-7188"><span class="linenos">7188</span></a>
-</span><span id="L-7189"><a href="#L-7189"><span class="linenos">7189</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7190"><a href="#L-7190"><span class="linenos">7190</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-7191"><a href="#L-7191"><span class="linenos">7191</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-7192"><a href="#L-7192"><span class="linenos">7192</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="L-7193"><a href="#L-7193"><span class="linenos">7193</span></a>
-</span><span id="L-7194"><a href="#L-7194"><span class="linenos">7194</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7195"><a href="#L-7195"><span class="linenos">7195</span></a><span class="sd"> The table name.</span>
-</span><span id="L-7196"><a href="#L-7196"><span class="linenos">7196</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7197"><a href="#L-7197"><span class="linenos">7197</span></a>
-</span><span id="L-7198"><a href="#L-7198"><span class="linenos">7198</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="L-7199"><a href="#L-7199"><span class="linenos">7199</span></a>
-</span><span id="L-7200"><a href="#L-7200"><span class="linenos">7200</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-7201"><a href="#L-7201"><span class="linenos">7201</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-7202"><a href="#L-7202"><span class="linenos">7202</span></a>
-</span><span id="L-7203"><a href="#L-7203"><span class="linenos">7203</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-7204"><a href="#L-7204"><span class="linenos">7204</span></a> <span class="p">(</span>
-</span><span id="L-7205"><a href="#L-7205"><span class="linenos">7205</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-7206"><a href="#L-7206"><span class="linenos">7206</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="L-7207"><a href="#L-7207"><span class="linenos">7207</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-7208"><a href="#L-7208"><span class="linenos">7208</span></a> <span class="p">)</span>
-</span><span id="L-7209"><a href="#L-7209"><span class="linenos">7209</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="L-7210"><a href="#L-7210"><span class="linenos">7210</span></a> <span class="p">)</span>
-</span><span id="L-7211"><a href="#L-7211"><span class="linenos">7211</span></a>
-</span><span id="L-7212"><a href="#L-7212"><span class="linenos">7212</span></a>
-</span><span id="L-7213"><a href="#L-7213"><span class="linenos">7213</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="L-7214"><a href="#L-7214"><span class="linenos">7214</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
-</span><span id="L-7215"><a href="#L-7215"><span class="linenos">7215</span></a>
-</span><span id="L-7216"><a href="#L-7216"><span class="linenos">7216</span></a><span class="sd"> Args:</span>
-</span><span id="L-7217"><a href="#L-7217"><span class="linenos">7217</span></a><span class="sd"> table: the table to normalize</span>
-</span><span id="L-7218"><a href="#L-7218"><span class="linenos">7218</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
-</span><span id="L-7219"><a href="#L-7219"><span class="linenos">7219</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-7220"><a href="#L-7220"><span class="linenos">7220</span></a>
-</span><span id="L-7221"><a href="#L-7221"><span class="linenos">7221</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7222"><a href="#L-7222"><span class="linenos">7222</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
-</span><span id="L-7223"><a href="#L-7223"><span class="linenos">7223</span></a><span class="sd"> &#39;A-B.c&#39;</span>
-</span><span id="L-7224"><a href="#L-7224"><span class="linenos">7224</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7225"><a href="#L-7225"><span class="linenos">7225</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
-</span><span id="L-7226"><a href="#L-7226"><span class="linenos">7226</span></a>
-</span><span id="L-7227"><a href="#L-7227"><span class="linenos">7227</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-7228"><a href="#L-7228"><span class="linenos">7228</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
-</span><span id="L-7229"><a href="#L-7229"><span class="linenos">7229</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
-</span><span id="L-7230"><a href="#L-7230"><span class="linenos">7230</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
-</span><span id="L-7231"><a href="#L-7231"><span class="linenos">7231</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="L-7232"><a href="#L-7232"><span class="linenos">7232</span></a> <span class="p">)</span>
-</span><span id="L-7233"><a href="#L-7233"><span class="linenos">7233</span></a>
-</span><span id="L-7234"><a href="#L-7234"><span class="linenos">7234</span></a>
-</span><span id="L-7235"><a href="#L-7235"><span class="linenos">7235</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
-</span><span id="L-7236"><a href="#L-7236"><span class="linenos">7236</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="L-7237"><a href="#L-7237"><span class="linenos">7237</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="L-7238"><a href="#L-7238"><span class="linenos">7238</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-7239"><a href="#L-7239"><span class="linenos">7239</span></a>
-</span><span id="L-7240"><a href="#L-7240"><span class="linenos">7240</span></a><span class="sd"> Args:</span>
-</span><span id="L-7241"><a href="#L-7241"><span class="linenos">7241</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-7242"><a href="#L-7242"><span class="linenos">7242</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="L-7243"><a href="#L-7243"><span class="linenos">7243</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
-</span><span id="L-7244"><a href="#L-7244"><span class="linenos">7244</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="L-7245"><a href="#L-7245"><span class="linenos">7245</span></a>
-</span><span id="L-7246"><a href="#L-7246"><span class="linenos">7246</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7247"><a href="#L-7247"><span class="linenos">7247</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-7248"><a href="#L-7248"><span class="linenos">7248</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-7249"><a href="#L-7249"><span class="linenos">7249</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
-</span><span id="L-7250"><a href="#L-7250"><span class="linenos">7250</span></a>
-</span><span id="L-7251"><a href="#L-7251"><span class="linenos">7251</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7252"><a href="#L-7252"><span class="linenos">7252</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-7253"><a href="#L-7253"><span class="linenos">7253</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7254"><a href="#L-7254"><span class="linenos">7254</span></a>
-</span><span id="L-7255"><a href="#L-7255"><span class="linenos">7255</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-7114"><a href="#L-7114"><span class="linenos">7114</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-7115"><a href="#L-7115"><span class="linenos">7115</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="L-7116"><a href="#L-7116"><span class="linenos">7116</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-7117"><a href="#L-7117"><span class="linenos">7117</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-7118"><a href="#L-7118"><span class="linenos">7118</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-7119"><a href="#L-7119"><span class="linenos">7119</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-7120"><a href="#L-7120"><span class="linenos">7120</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
+</span><span id="L-7121"><a href="#L-7121"><span class="linenos">7121</span></a> <span class="k">return</span> <span class="n">null</span><span class="p">()</span>
+</span><span id="L-7122"><a href="#L-7122"><span class="linenos">7122</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-7123"><a href="#L-7123"><span class="linenos">7123</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-7124"><a href="#L-7124"><span class="linenos">7124</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">bytes</span><span class="p">):</span>
+</span><span id="L-7125"><a href="#L-7125"><span class="linenos">7125</span></a> <span class="k">return</span> <span class="n">HexString</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="o">.</span><span class="n">hex</span><span class="p">())</span>
+</span><span id="L-7126"><a href="#L-7126"><span class="linenos">7126</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-7127"><a href="#L-7127"><span class="linenos">7127</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-7128"><a href="#L-7128"><span class="linenos">7128</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-7129"><a href="#L-7129"><span class="linenos">7129</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span>
+</span><span id="L-7130"><a href="#L-7130"><span class="linenos">7130</span></a> <span class="p">)</span>
+</span><span id="L-7131"><a href="#L-7131"><span class="linenos">7131</span></a> <span class="p">)</span>
+</span><span id="L-7132"><a href="#L-7132"><span class="linenos">7132</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-7133"><a href="#L-7133"><span class="linenos">7133</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-7134"><a href="#L-7134"><span class="linenos">7134</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-7135"><a href="#L-7135"><span class="linenos">7135</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-7136"><a href="#L-7136"><span class="linenos">7136</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-7137"><a href="#L-7137"><span class="linenos">7137</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;_fields&quot;</span><span class="p">):</span>
+</span><span id="L-7138"><a href="#L-7138"><span class="linenos">7138</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
+</span><span id="L-7139"><a href="#L-7139"><span class="linenos">7139</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-7140"><a href="#L-7140"><span class="linenos">7140</span></a> <span class="n">PropertyEQ</span><span class="p">(</span>
+</span><span id="L-7141"><a href="#L-7141"><span class="linenos">7141</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">k</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="nb">getattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">k</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="L-7142"><a href="#L-7142"><span class="linenos">7142</span></a> <span class="p">)</span>
+</span><span id="L-7143"><a href="#L-7143"><span class="linenos">7143</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">_fields</span>
+</span><span id="L-7144"><a href="#L-7144"><span class="linenos">7144</span></a> <span class="p">]</span>
+</span><span id="L-7145"><a href="#L-7145"><span class="linenos">7145</span></a> <span class="p">)</span>
+</span><span id="L-7146"><a href="#L-7146"><span class="linenos">7146</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-7147"><a href="#L-7147"><span class="linenos">7147</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-7148"><a href="#L-7148"><span class="linenos">7148</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="L-7149"><a href="#L-7149"><span class="linenos">7149</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-7150"><a href="#L-7150"><span class="linenos">7150</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="L-7151"><a href="#L-7151"><span class="linenos">7151</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
+</span><span id="L-7152"><a href="#L-7152"><span class="linenos">7152</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
+</span><span id="L-7153"><a href="#L-7153"><span class="linenos">7153</span></a> <span class="p">)</span>
+</span><span id="L-7154"><a href="#L-7154"><span class="linenos">7154</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;__dict__&quot;</span><span class="p">):</span>
+</span><span id="L-7155"><a href="#L-7155"><span class="linenos">7155</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
+</span><span id="L-7156"><a href="#L-7156"><span class="linenos">7156</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-7157"><a href="#L-7157"><span class="linenos">7157</span></a> <span class="n">PropertyEQ</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">k</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="L-7158"><a href="#L-7158"><span class="linenos">7158</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">value</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="L-7159"><a href="#L-7159"><span class="linenos">7159</span></a> <span class="p">]</span>
+</span><span id="L-7160"><a href="#L-7160"><span class="linenos">7160</span></a> <span class="p">)</span>
+</span><span id="L-7161"><a href="#L-7161"><span class="linenos">7161</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-7162"><a href="#L-7162"><span class="linenos">7162</span></a>
+</span><span id="L-7163"><a href="#L-7163"><span class="linenos">7163</span></a>
+</span><span id="L-7164"><a href="#L-7164"><span class="linenos">7164</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-7165"><a href="#L-7165"><span class="linenos">7165</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7166"><a href="#L-7166"><span class="linenos">7166</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-7167"><a href="#L-7167"><span class="linenos">7167</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7168"><a href="#L-7168"><span class="linenos">7168</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="nb">tuple</span><span class="p">(</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-7169"><a href="#L-7169"><span class="linenos">7169</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
+</span><span id="L-7170"><a href="#L-7170"><span class="linenos">7170</span></a>
+</span><span id="L-7171"><a href="#L-7171"><span class="linenos">7171</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-7172"><a href="#L-7172"><span class="linenos">7172</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="L-7173"><a href="#L-7173"><span class="linenos">7173</span></a>
+</span><span id="L-7174"><a href="#L-7174"><span class="linenos">7174</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-7175"><a href="#L-7175"><span class="linenos">7175</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-7176"><a href="#L-7176"><span class="linenos">7176</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
+</span><span id="L-7177"><a href="#L-7177"><span class="linenos">7177</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-7178"><a href="#L-7178"><span class="linenos">7178</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7179"><a href="#L-7179"><span class="linenos">7179</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-7180"><a href="#L-7180"><span class="linenos">7180</span></a>
+</span><span id="L-7181"><a href="#L-7181"><span class="linenos">7181</span></a> <span class="n">expression</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">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-7182"><a href="#L-7182"><span class="linenos">7182</span></a>
+</span><span id="L-7183"><a href="#L-7183"><span class="linenos">7183</span></a>
+</span><span id="L-7184"><a href="#L-7184"><span class="linenos">7184</span></a><span class="k">def</span> <span class="nf">replace_tree</span><span class="p">(</span>
+</span><span id="L-7185"><a href="#L-7185"><span class="linenos">7185</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="L-7186"><a href="#L-7186"><span class="linenos">7186</span></a> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span>
+</span><span id="L-7187"><a href="#L-7187"><span class="linenos">7187</span></a> <span class="n">prune</span><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">Callable</span><span class="p">[[</span><span class="n">Expression</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-7188"><a href="#L-7188"><span class="linenos">7188</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-7189"><a href="#L-7189"><span class="linenos">7189</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7190"><a href="#L-7190"><span class="linenos">7190</span></a><span class="sd"> Replace an entire tree with the result of function calls on each node.</span>
+</span><span id="L-7191"><a href="#L-7191"><span class="linenos">7191</span></a>
+</span><span id="L-7192"><a href="#L-7192"><span class="linenos">7192</span></a><span class="sd"> This will be traversed in reverse dfs, so leaves first.</span>
+</span><span id="L-7193"><a href="#L-7193"><span class="linenos">7193</span></a><span class="sd"> If new nodes are created as a result of function calls, they will also be traversed.</span>
+</span><span id="L-7194"><a href="#L-7194"><span class="linenos">7194</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7195"><a href="#L-7195"><span class="linenos">7195</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">))</span>
+</span><span id="L-7196"><a href="#L-7196"><span class="linenos">7196</span></a>
+</span><span id="L-7197"><a href="#L-7197"><span class="linenos">7197</span></a> <span class="k">while</span> <span class="n">stack</span><span class="p">:</span>
+</span><span id="L-7198"><a href="#L-7198"><span class="linenos">7198</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
+</span><span id="L-7199"><a href="#L-7199"><span class="linenos">7199</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="L-7200"><a href="#L-7200"><span class="linenos">7200</span></a>
+</span><span id="L-7201"><a href="#L-7201"><span class="linenos">7201</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="L-7202"><a href="#L-7202"><span class="linenos">7202</span></a> <span class="n">node</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
+</span><span id="L-7203"><a href="#L-7203"><span class="linenos">7203</span></a>
+</span><span id="L-7204"><a href="#L-7204"><span class="linenos">7204</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="L-7205"><a href="#L-7205"><span class="linenos">7205</span></a> <span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
+</span><span id="L-7206"><a href="#L-7206"><span class="linenos">7206</span></a>
+</span><span id="L-7207"><a href="#L-7207"><span class="linenos">7207</span></a> <span class="k">return</span> <span class="n">new_node</span>
+</span><span id="L-7208"><a href="#L-7208"><span class="linenos">7208</span></a>
+</span><span id="L-7209"><a href="#L-7209"><span class="linenos">7209</span></a>
+</span><span id="L-7210"><a href="#L-7210"><span class="linenos">7210</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="L-7211"><a href="#L-7211"><span class="linenos">7211</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7212"><a href="#L-7212"><span class="linenos">7212</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="L-7213"><a href="#L-7213"><span class="linenos">7213</span></a>
+</span><span id="L-7214"><a href="#L-7214"><span class="linenos">7214</span></a><span class="sd"> Example:</span>
+</span><span id="L-7215"><a href="#L-7215"><span class="linenos">7215</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="L-7216"><a href="#L-7216"><span class="linenos">7216</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
+</span><span id="L-7217"><a href="#L-7217"><span class="linenos">7217</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="L-7218"><a href="#L-7218"><span class="linenos">7218</span></a>
+</span><span id="L-7219"><a href="#L-7219"><span class="linenos">7219</span></a><span class="sd"> Args:</span>
+</span><span id="L-7220"><a href="#L-7220"><span class="linenos">7220</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="L-7221"><a href="#L-7221"><span class="linenos">7221</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="L-7222"><a href="#L-7222"><span class="linenos">7222</span></a>
+</span><span id="L-7223"><a href="#L-7223"><span class="linenos">7223</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7224"><a href="#L-7224"><span class="linenos">7224</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="L-7225"><a href="#L-7225"><span class="linenos">7225</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7226"><a href="#L-7226"><span class="linenos">7226</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="L-7227"><a href="#L-7227"><span class="linenos">7227</span></a> <span class="n">table</span>
+</span><span id="L-7228"><a href="#L-7228"><span class="linenos">7228</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
+</span><span id="L-7229"><a href="#L-7229"><span class="linenos">7229</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
+</span><span id="L-7230"><a href="#L-7230"><span class="linenos">7230</span></a> <span class="p">}</span>
+</span><span id="L-7231"><a href="#L-7231"><span class="linenos">7231</span></a>
+</span><span id="L-7232"><a href="#L-7232"><span class="linenos">7232</span></a>
+</span><span id="L-7233"><a href="#L-7233"><span class="linenos">7233</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-7234"><a href="#L-7234"><span class="linenos">7234</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-7235"><a href="#L-7235"><span class="linenos">7235</span></a>
+</span><span id="L-7236"><a href="#L-7236"><span class="linenos">7236</span></a><span class="sd"> Args:</span>
+</span><span id="L-7237"><a href="#L-7237"><span class="linenos">7237</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="L-7238"><a href="#L-7238"><span class="linenos">7238</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="L-7239"><a href="#L-7239"><span class="linenos">7239</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
+</span><span id="L-7240"><a href="#L-7240"><span class="linenos">7240</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
+</span><span id="L-7241"><a href="#L-7241"><span class="linenos">7241</span></a><span class="sd"> True: Always quote.</span>
+</span><span id="L-7242"><a href="#L-7242"><span class="linenos">7242</span></a>
+</span><span id="L-7243"><a href="#L-7243"><span class="linenos">7243</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7244"><a href="#L-7244"><span class="linenos">7244</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-7245"><a href="#L-7245"><span class="linenos">7245</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-7246"><a href="#L-7246"><span class="linenos">7246</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="L-7247"><a href="#L-7247"><span class="linenos">7247</span></a>
+</span><span id="L-7248"><a href="#L-7248"><span class="linenos">7248</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7249"><a href="#L-7249"><span class="linenos">7249</span></a><span class="sd"> The table name.</span>
+</span><span id="L-7250"><a href="#L-7250"><span class="linenos">7250</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7251"><a href="#L-7251"><span class="linenos">7251</span></a>
+</span><span id="L-7252"><a href="#L-7252"><span class="linenos">7252</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="L-7253"><a href="#L-7253"><span class="linenos">7253</span></a>
+</span><span id="L-7254"><a href="#L-7254"><span class="linenos">7254</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-7255"><a href="#L-7255"><span class="linenos">7255</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-7256"><a href="#L-7256"><span class="linenos">7256</span></a>
-</span><span id="L-7257"><a href="#L-7257"><span class="linenos">7257</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-7258"><a href="#L-7258"><span class="linenos">7258</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-7259"><a href="#L-7259"><span class="linenos">7259</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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-7260"><a href="#L-7260"><span class="linenos">7260</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">original</span><span class="p">)</span>
-</span><span id="L-7261"><a href="#L-7261"><span class="linenos">7261</span></a>
-</span><span id="L-7262"><a href="#L-7262"><span class="linenos">7262</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="L-7263"><a href="#L-7263"><span class="linenos">7263</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="L-7264"><a href="#L-7264"><span class="linenos">7264</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="L-7265"><a href="#L-7265"><span class="linenos">7265</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="n">TABLE_PARTS</span><span class="p">},</span>
-</span><span id="L-7266"><a href="#L-7266"><span class="linenos">7266</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="L-7267"><a href="#L-7267"><span class="linenos">7267</span></a> <span class="p">)</span>
-</span><span id="L-7268"><a href="#L-7268"><span class="linenos">7268</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
-</span><span id="L-7269"><a href="#L-7269"><span class="linenos">7269</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="L-7270"><a href="#L-7270"><span class="linenos">7270</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-7271"><a href="#L-7271"><span class="linenos">7271</span></a>
-</span><span id="L-7272"><a href="#L-7272"><span class="linenos">7272</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="L-7273"><a href="#L-7273"><span class="linenos">7273</span></a>
+</span><span id="L-7257"><a href="#L-7257"><span class="linenos">7257</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-7258"><a href="#L-7258"><span class="linenos">7258</span></a> <span class="p">(</span>
+</span><span id="L-7259"><a href="#L-7259"><span class="linenos">7259</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-7260"><a href="#L-7260"><span class="linenos">7260</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="L-7261"><a href="#L-7261"><span class="linenos">7261</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-7262"><a href="#L-7262"><span class="linenos">7262</span></a> <span class="p">)</span>
+</span><span id="L-7263"><a href="#L-7263"><span class="linenos">7263</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="L-7264"><a href="#L-7264"><span class="linenos">7264</span></a> <span class="p">)</span>
+</span><span id="L-7265"><a href="#L-7265"><span class="linenos">7265</span></a>
+</span><span id="L-7266"><a href="#L-7266"><span class="linenos">7266</span></a>
+</span><span id="L-7267"><a href="#L-7267"><span class="linenos">7267</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="L-7268"><a href="#L-7268"><span class="linenos">7268</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
+</span><span id="L-7269"><a href="#L-7269"><span class="linenos">7269</span></a>
+</span><span id="L-7270"><a href="#L-7270"><span class="linenos">7270</span></a><span class="sd"> Args:</span>
+</span><span id="L-7271"><a href="#L-7271"><span class="linenos">7271</span></a><span class="sd"> table: the table to normalize</span>
+</span><span id="L-7272"><a href="#L-7272"><span class="linenos">7272</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
+</span><span id="L-7273"><a href="#L-7273"><span class="linenos">7273</span></a><span class="sd"> copy: whether to copy the expression.</span>
</span><span id="L-7274"><a href="#L-7274"><span class="linenos">7274</span></a>
-</span><span id="L-7275"><a href="#L-7275"><span class="linenos">7275</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-7276"><a href="#L-7276"><span class="linenos">7276</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="L-7277"><a href="#L-7277"><span class="linenos">7277</span></a>
-</span><span id="L-7278"><a href="#L-7278"><span class="linenos">7278</span></a><span class="sd"> Args:</span>
-</span><span id="L-7279"><a href="#L-7279"><span class="linenos">7279</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="L-7280"><a href="#L-7280"><span class="linenos">7280</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="L-7281"><a href="#L-7281"><span class="linenos">7281</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="L-7282"><a href="#L-7282"><span class="linenos">7282</span></a>
-</span><span id="L-7283"><a href="#L-7283"><span class="linenos">7283</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7284"><a href="#L-7284"><span class="linenos">7284</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="L-7285"><a href="#L-7285"><span class="linenos">7285</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="L-7286"><a href="#L-7286"><span class="linenos">7286</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="L-7287"><a href="#L-7287"><span class="linenos">7287</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
-</span><span id="L-7288"><a href="#L-7288"><span class="linenos">7288</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="L-7289"><a href="#L-7289"><span class="linenos">7289</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="L-7290"><a href="#L-7290"><span class="linenos">7290</span></a>
-</span><span id="L-7291"><a href="#L-7291"><span class="linenos">7291</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7292"><a href="#L-7292"><span class="linenos">7292</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="L-7293"><a href="#L-7293"><span class="linenos">7293</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7294"><a href="#L-7294"><span class="linenos">7294</span></a>
-</span><span id="L-7295"><a href="#L-7295"><span class="linenos">7295</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-7296"><a href="#L-7296"><span class="linenos">7296</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-7297"><a href="#L-7297"><span class="linenos">7297</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">:</span>
-</span><span id="L-7298"><a href="#L-7298"><span class="linenos">7298</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">this</span><span class="p">)</span>
-</span><span id="L-7299"><a href="#L-7299"><span class="linenos">7299</span></a> <span class="k">if</span> <span class="n">new_name</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-7300"><a href="#L-7300"><span class="linenos">7300</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="L-7301"><a href="#L-7301"><span class="linenos">7301</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7302"><a href="#L-7302"><span class="linenos">7302</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="L-7303"><a href="#L-7303"><span class="linenos">7303</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
-</span><span id="L-7304"><a href="#L-7304"><span class="linenos">7304</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="L-7305"><a href="#L-7305"><span class="linenos">7305</span></a> <span class="k">pass</span>
-</span><span id="L-7306"><a href="#L-7306"><span class="linenos">7306</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-7307"><a href="#L-7307"><span class="linenos">7307</span></a>
-</span><span id="L-7308"><a href="#L-7308"><span class="linenos">7308</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-7309"><a href="#L-7309"><span class="linenos">7309</span></a>
+</span><span id="L-7275"><a href="#L-7275"><span class="linenos">7275</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7276"><a href="#L-7276"><span class="linenos">7276</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
+</span><span id="L-7277"><a href="#L-7277"><span class="linenos">7277</span></a><span class="sd"> &#39;A-B.c&#39;</span>
+</span><span id="L-7278"><a href="#L-7278"><span class="linenos">7278</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7279"><a href="#L-7279"><span class="linenos">7279</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
+</span><span id="L-7280"><a href="#L-7280"><span class="linenos">7280</span></a>
+</span><span id="L-7281"><a href="#L-7281"><span class="linenos">7281</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-7282"><a href="#L-7282"><span class="linenos">7282</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
+</span><span id="L-7283"><a href="#L-7283"><span class="linenos">7283</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
+</span><span id="L-7284"><a href="#L-7284"><span class="linenos">7284</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
+</span><span id="L-7285"><a href="#L-7285"><span class="linenos">7285</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="L-7286"><a href="#L-7286"><span class="linenos">7286</span></a> <span class="p">)</span>
+</span><span id="L-7287"><a href="#L-7287"><span class="linenos">7287</span></a>
+</span><span id="L-7288"><a href="#L-7288"><span class="linenos">7288</span></a>
+</span><span id="L-7289"><a href="#L-7289"><span class="linenos">7289</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
+</span><span id="L-7290"><a href="#L-7290"><span class="linenos">7290</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="L-7291"><a href="#L-7291"><span class="linenos">7291</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="L-7292"><a href="#L-7292"><span class="linenos">7292</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-7293"><a href="#L-7293"><span class="linenos">7293</span></a>
+</span><span id="L-7294"><a href="#L-7294"><span class="linenos">7294</span></a><span class="sd"> Args:</span>
+</span><span id="L-7295"><a href="#L-7295"><span class="linenos">7295</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-7296"><a href="#L-7296"><span class="linenos">7296</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="L-7297"><a href="#L-7297"><span class="linenos">7297</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
+</span><span id="L-7298"><a href="#L-7298"><span class="linenos">7298</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="L-7299"><a href="#L-7299"><span class="linenos">7299</span></a>
+</span><span id="L-7300"><a href="#L-7300"><span class="linenos">7300</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7301"><a href="#L-7301"><span class="linenos">7301</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-7302"><a href="#L-7302"><span class="linenos">7302</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-7303"><a href="#L-7303"><span class="linenos">7303</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
+</span><span id="L-7304"><a href="#L-7304"><span class="linenos">7304</span></a>
+</span><span id="L-7305"><a href="#L-7305"><span class="linenos">7305</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7306"><a href="#L-7306"><span class="linenos">7306</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-7307"><a href="#L-7307"><span class="linenos">7307</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7308"><a href="#L-7308"><span class="linenos">7308</span></a>
+</span><span id="L-7309"><a href="#L-7309"><span class="linenos">7309</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
</span><span id="L-7310"><a href="#L-7310"><span class="linenos">7310</span></a>
-</span><span id="L-7311"><a href="#L-7311"><span class="linenos">7311</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="L-7312"><a href="#L-7312"><span class="linenos">7312</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="L-7313"><a href="#L-7313"><span class="linenos">7313</span></a> <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">Query</span><span class="p">],</span>
-</span><span id="L-7314"><a href="#L-7314"><span class="linenos">7314</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-7315"><a href="#L-7315"><span class="linenos">7315</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="L-7316"><a href="#L-7316"><span class="linenos">7316</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="L-7317"><a href="#L-7317"><span class="linenos">7317</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-7318"><a href="#L-7318"><span class="linenos">7318</span></a>
-</span><span id="L-7319"><a href="#L-7319"><span class="linenos">7319</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7320"><a href="#L-7320"><span class="linenos">7320</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="L-7321"><a href="#L-7321"><span class="linenos">7321</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-7322"><a href="#L-7322"><span class="linenos">7322</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="L-7323"><a href="#L-7323"><span class="linenos">7323</span></a>
-</span><span id="L-7324"><a href="#L-7324"><span class="linenos">7324</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
-</span><span id="L-7325"><a href="#L-7325"><span class="linenos">7325</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
-</span><span id="L-7326"><a href="#L-7326"><span class="linenos">7326</span></a>
-</span><span id="L-7327"><a href="#L-7327"><span class="linenos">7327</span></a><span class="sd"> Args:</span>
-</span><span id="L-7328"><a href="#L-7328"><span class="linenos">7328</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="L-7329"><a href="#L-7329"><span class="linenos">7329</span></a><span class="sd"> sources: A dictionary of name to Queries.</span>
-</span><span id="L-7330"><a href="#L-7330"><span class="linenos">7330</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
-</span><span id="L-7331"><a href="#L-7331"><span class="linenos">7331</span></a><span class="sd"> copy: Whether to copy the expression during transformation. Defaults to True.</span>
-</span><span id="L-7332"><a href="#L-7332"><span class="linenos">7332</span></a>
-</span><span id="L-7333"><a href="#L-7333"><span class="linenos">7333</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7334"><a href="#L-7334"><span class="linenos">7334</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="L-7335"><a href="#L-7335"><span class="linenos">7335</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7336"><a href="#L-7336"><span class="linenos">7336</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="L-7337"><a href="#L-7337"><span class="linenos">7337</span></a>
-</span><span id="L-7338"><a href="#L-7338"><span class="linenos">7338</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-7339"><a href="#L-7339"><span class="linenos">7339</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-7340"><a href="#L-7340"><span class="linenos">7340</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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-7341"><a href="#L-7341"><span class="linenos">7341</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-7342"><a href="#L-7342"><span class="linenos">7342</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="L-7343"><a href="#L-7343"><span class="linenos">7343</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-7344"><a href="#L-7344"><span class="linenos">7344</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-7345"><a href="#L-7345"><span class="linenos">7345</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="L-7346"><a href="#L-7346"><span class="linenos">7346</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="L-7347"><a href="#L-7347"><span class="linenos">7347</span></a>
-</span><span id="L-7348"><a href="#L-7348"><span class="linenos">7348</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-7349"><a href="#L-7349"><span class="linenos">7349</span></a>
-</span><span id="L-7350"><a href="#L-7350"><span class="linenos">7350</span></a>
-</span><span id="L-7351"><a href="#L-7351"><span class="linenos">7351</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">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7352"><a href="#L-7352"><span class="linenos">7352</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7353"><a href="#L-7353"><span class="linenos">7353</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="L-7354"><a href="#L-7354"><span class="linenos">7354</span></a>
-</span><span id="L-7355"><a href="#L-7355"><span class="linenos">7355</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7356"><a href="#L-7356"><span class="linenos">7356</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="L-7357"><a href="#L-7357"><span class="linenos">7357</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="L-7358"><a href="#L-7358"><span class="linenos">7358</span></a>
-</span><span id="L-7359"><a href="#L-7359"><span class="linenos">7359</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-7360"><a href="#L-7360"><span class="linenos">7360</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-7311"><a href="#L-7311"><span class="linenos">7311</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-7312"><a href="#L-7312"><span class="linenos">7312</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-7313"><a href="#L-7313"><span class="linenos">7313</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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-7314"><a href="#L-7314"><span class="linenos">7314</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">original</span><span class="p">)</span>
+</span><span id="L-7315"><a href="#L-7315"><span class="linenos">7315</span></a>
+</span><span id="L-7316"><a href="#L-7316"><span class="linenos">7316</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="L-7317"><a href="#L-7317"><span class="linenos">7317</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="L-7318"><a href="#L-7318"><span class="linenos">7318</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="L-7319"><a href="#L-7319"><span class="linenos">7319</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="n">TABLE_PARTS</span><span class="p">},</span>
+</span><span id="L-7320"><a href="#L-7320"><span class="linenos">7320</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="L-7321"><a href="#L-7321"><span class="linenos">7321</span></a> <span class="p">)</span>
+</span><span id="L-7322"><a href="#L-7322"><span class="linenos">7322</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
+</span><span id="L-7323"><a href="#L-7323"><span class="linenos">7323</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="L-7324"><a href="#L-7324"><span class="linenos">7324</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-7325"><a href="#L-7325"><span class="linenos">7325</span></a>
+</span><span id="L-7326"><a href="#L-7326"><span class="linenos">7326</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="L-7327"><a href="#L-7327"><span class="linenos">7327</span></a>
+</span><span id="L-7328"><a href="#L-7328"><span class="linenos">7328</span></a>
+</span><span id="L-7329"><a href="#L-7329"><span class="linenos">7329</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-7330"><a href="#L-7330"><span class="linenos">7330</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="L-7331"><a href="#L-7331"><span class="linenos">7331</span></a>
+</span><span id="L-7332"><a href="#L-7332"><span class="linenos">7332</span></a><span class="sd"> Args:</span>
+</span><span id="L-7333"><a href="#L-7333"><span class="linenos">7333</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="L-7334"><a href="#L-7334"><span class="linenos">7334</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="L-7335"><a href="#L-7335"><span class="linenos">7335</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="L-7336"><a href="#L-7336"><span class="linenos">7336</span></a>
+</span><span id="L-7337"><a href="#L-7337"><span class="linenos">7337</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7338"><a href="#L-7338"><span class="linenos">7338</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="L-7339"><a href="#L-7339"><span class="linenos">7339</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="L-7340"><a href="#L-7340"><span class="linenos">7340</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="L-7341"><a href="#L-7341"><span class="linenos">7341</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
+</span><span id="L-7342"><a href="#L-7342"><span class="linenos">7342</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="L-7343"><a href="#L-7343"><span class="linenos">7343</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="L-7344"><a href="#L-7344"><span class="linenos">7344</span></a>
+</span><span id="L-7345"><a href="#L-7345"><span class="linenos">7345</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7346"><a href="#L-7346"><span class="linenos">7346</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="L-7347"><a href="#L-7347"><span class="linenos">7347</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7348"><a href="#L-7348"><span class="linenos">7348</span></a>
+</span><span id="L-7349"><a href="#L-7349"><span class="linenos">7349</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-7350"><a href="#L-7350"><span class="linenos">7350</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-7351"><a href="#L-7351"><span class="linenos">7351</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">:</span>
+</span><span id="L-7352"><a href="#L-7352"><span class="linenos">7352</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">this</span><span class="p">)</span>
+</span><span id="L-7353"><a href="#L-7353"><span class="linenos">7353</span></a> <span class="k">if</span> <span class="n">new_name</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-7354"><a href="#L-7354"><span class="linenos">7354</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="L-7355"><a href="#L-7355"><span class="linenos">7355</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7356"><a href="#L-7356"><span class="linenos">7356</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="L-7357"><a href="#L-7357"><span class="linenos">7357</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
+</span><span id="L-7358"><a href="#L-7358"><span class="linenos">7358</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="L-7359"><a href="#L-7359"><span class="linenos">7359</span></a> <span class="k">pass</span>
+</span><span id="L-7360"><a href="#L-7360"><span class="linenos">7360</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="L-7361"><a href="#L-7361"><span class="linenos">7361</span></a>
-</span><span id="L-7362"><a href="#L-7362"><span class="linenos">7362</span></a><span class="sd"> Args:</span>
-</span><span id="L-7363"><a href="#L-7363"><span class="linenos">7363</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="L-7364"><a href="#L-7364"><span class="linenos">7364</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="L-7365"><a href="#L-7365"><span class="linenos">7365</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
-</span><span id="L-7366"><a href="#L-7366"><span class="linenos">7366</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-7367"><a href="#L-7367"><span class="linenos">7367</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-7368"><a href="#L-7368"><span class="linenos">7368</span></a>
-</span><span id="L-7369"><a href="#L-7369"><span class="linenos">7369</span></a><span class="sd"> Note:</span>
-</span><span id="L-7370"><a href="#L-7370"><span class="linenos">7370</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="L-7371"><a href="#L-7371"><span class="linenos">7371</span></a>
-</span><span id="L-7372"><a href="#L-7372"><span class="linenos">7372</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7373"><a href="#L-7373"><span class="linenos">7373</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-7374"><a href="#L-7374"><span class="linenos">7374</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="L-7375"><a href="#L-7375"><span class="linenos">7375</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7376"><a href="#L-7376"><span class="linenos">7376</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-7377"><a href="#L-7377"><span class="linenos">7377</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-7378"><a href="#L-7378"><span class="linenos">7378</span></a>
-</span><span id="L-7379"><a href="#L-7379"><span class="linenos">7379</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-7362"><a href="#L-7362"><span class="linenos">7362</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-7363"><a href="#L-7363"><span class="linenos">7363</span></a>
+</span><span id="L-7364"><a href="#L-7364"><span class="linenos">7364</span></a>
+</span><span id="L-7365"><a href="#L-7365"><span class="linenos">7365</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="L-7366"><a href="#L-7366"><span class="linenos">7366</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="L-7367"><a href="#L-7367"><span class="linenos">7367</span></a> <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">Query</span><span class="p">],</span>
+</span><span id="L-7368"><a href="#L-7368"><span class="linenos">7368</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-7369"><a href="#L-7369"><span class="linenos">7369</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="L-7370"><a href="#L-7370"><span class="linenos">7370</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="L-7371"><a href="#L-7371"><span class="linenos">7371</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-7372"><a href="#L-7372"><span class="linenos">7372</span></a>
+</span><span id="L-7373"><a href="#L-7373"><span class="linenos">7373</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7374"><a href="#L-7374"><span class="linenos">7374</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="L-7375"><a href="#L-7375"><span class="linenos">7375</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-7376"><a href="#L-7376"><span class="linenos">7376</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="L-7377"><a href="#L-7377"><span class="linenos">7377</span></a>
+</span><span id="L-7378"><a href="#L-7378"><span class="linenos">7378</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
+</span><span id="L-7379"><a href="#L-7379"><span class="linenos">7379</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
</span><span id="L-7380"><a href="#L-7380"><span class="linenos">7380</span></a>
-</span><span id="L-7381"><a href="#L-7381"><span class="linenos">7381</span></a> <span class="n">dialect</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><span id="L-7382"><a href="#L-7382"><span class="linenos">7382</span></a>
-</span><span id="L-7383"><a href="#L-7383"><span class="linenos">7383</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7384"><a href="#L-7384"><span class="linenos">7384</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7385"><a href="#L-7385"><span class="linenos">7385</span></a>
-</span><span id="L-7386"><a href="#L-7386"><span class="linenos">7386</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</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-7387"><a href="#L-7387"><span class="linenos">7387</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="L-7388"><a href="#L-7388"><span class="linenos">7388</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
-</span><span id="L-7389"><a href="#L-7389"><span class="linenos">7389</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
-</span><span id="L-7390"><a href="#L-7390"><span class="linenos">7390</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</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-7391"><a href="#L-7391"><span class="linenos">7391</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7392"><a href="#L-7392"><span class="linenos">7392</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
-</span><span id="L-7393"><a href="#L-7393"><span class="linenos">7393</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
-</span><span id="L-7394"><a href="#L-7394"><span class="linenos">7394</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</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-7395"><a href="#L-7395"><span class="linenos">7395</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7396"><a href="#L-7396"><span class="linenos">7396</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</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-7397"><a href="#L-7397"><span class="linenos">7397</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="L-7398"><a href="#L-7398"><span class="linenos">7398</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-7399"><a href="#L-7399"><span class="linenos">7399</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7400"><a href="#L-7400"><span class="linenos">7400</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
-</span><span id="L-7401"><a href="#L-7401"><span class="linenos">7401</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
-</span><span id="L-7402"><a href="#L-7402"><span class="linenos">7402</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
-</span><span id="L-7403"><a href="#L-7403"><span class="linenos">7403</span></a> <span class="p">)</span>
-</span><span id="L-7404"><a href="#L-7404"><span class="linenos">7404</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7405"><a href="#L-7405"><span class="linenos">7405</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-7406"><a href="#L-7406"><span class="linenos">7406</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-7407"><a href="#L-7407"><span class="linenos">7407</span></a>
-</span><span id="L-7408"><a href="#L-7408"><span class="linenos">7408</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-7409"><a href="#L-7409"><span class="linenos">7409</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-7410"><a href="#L-7410"><span class="linenos">7410</span></a>
-</span><span id="L-7411"><a href="#L-7411"><span class="linenos">7411</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-7381"><a href="#L-7381"><span class="linenos">7381</span></a><span class="sd"> Args:</span>
+</span><span id="L-7382"><a href="#L-7382"><span class="linenos">7382</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="L-7383"><a href="#L-7383"><span class="linenos">7383</span></a><span class="sd"> sources: A dictionary of name to Queries.</span>
+</span><span id="L-7384"><a href="#L-7384"><span class="linenos">7384</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
+</span><span id="L-7385"><a href="#L-7385"><span class="linenos">7385</span></a><span class="sd"> copy: Whether to copy the expression during transformation. Defaults to True.</span>
+</span><span id="L-7386"><a href="#L-7386"><span class="linenos">7386</span></a>
+</span><span id="L-7387"><a href="#L-7387"><span class="linenos">7387</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7388"><a href="#L-7388"><span class="linenos">7388</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="L-7389"><a href="#L-7389"><span class="linenos">7389</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7390"><a href="#L-7390"><span class="linenos">7390</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="L-7391"><a href="#L-7391"><span class="linenos">7391</span></a>
+</span><span id="L-7392"><a href="#L-7392"><span class="linenos">7392</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-7393"><a href="#L-7393"><span class="linenos">7393</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-7394"><a href="#L-7394"><span class="linenos">7394</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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-7395"><a href="#L-7395"><span class="linenos">7395</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-7396"><a href="#L-7396"><span class="linenos">7396</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="L-7397"><a href="#L-7397"><span class="linenos">7397</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-7398"><a href="#L-7398"><span class="linenos">7398</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-7399"><a href="#L-7399"><span class="linenos">7399</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="L-7400"><a href="#L-7400"><span class="linenos">7400</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="L-7401"><a href="#L-7401"><span class="linenos">7401</span></a>
+</span><span id="L-7402"><a href="#L-7402"><span class="linenos">7402</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-7403"><a href="#L-7403"><span class="linenos">7403</span></a>
+</span><span id="L-7404"><a href="#L-7404"><span class="linenos">7404</span></a>
+</span><span id="L-7405"><a href="#L-7405"><span class="linenos">7405</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">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7406"><a href="#L-7406"><span class="linenos">7406</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7407"><a href="#L-7407"><span class="linenos">7407</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="L-7408"><a href="#L-7408"><span class="linenos">7408</span></a>
+</span><span id="L-7409"><a href="#L-7409"><span class="linenos">7409</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7410"><a href="#L-7410"><span class="linenos">7410</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="L-7411"><a href="#L-7411"><span class="linenos">7411</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
</span><span id="L-7412"><a href="#L-7412"><span class="linenos">7412</span></a>
-</span><span id="L-7413"><a href="#L-7413"><span class="linenos">7413</span></a>
-</span><span id="L-7414"><a href="#L-7414"><span class="linenos">7414</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
-</span><span id="L-7415"><a href="#L-7415"><span class="linenos">7415</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="L-7416"><a href="#L-7416"><span class="linenos">7416</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="L-7417"><a href="#L-7417"><span class="linenos">7417</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="L-7418"><a href="#L-7418"><span class="linenos">7418</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7419"><a href="#L-7419"><span class="linenos">7419</span></a><span class="sd"> Initialize a CASE statement.</span>
-</span><span id="L-7420"><a href="#L-7420"><span class="linenos">7420</span></a>
-</span><span id="L-7421"><a href="#L-7421"><span class="linenos">7421</span></a><span class="sd"> Example:</span>
-</span><span id="L-7422"><a href="#L-7422"><span class="linenos">7422</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
-</span><span id="L-7423"><a href="#L-7423"><span class="linenos">7423</span></a>
-</span><span id="L-7424"><a href="#L-7424"><span class="linenos">7424</span></a><span class="sd"> Args:</span>
-</span><span id="L-7425"><a href="#L-7425"><span class="linenos">7425</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
-</span><span id="L-7426"><a href="#L-7426"><span class="linenos">7426</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
-</span><span id="L-7427"><a href="#L-7427"><span class="linenos">7427</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7428"><a href="#L-7428"><span class="linenos">7428</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="L-7429"><a href="#L-7429"><span class="linenos">7429</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="L-7430"><a href="#L-7430"><span class="linenos">7430</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="L-7431"><a href="#L-7431"><span class="linenos">7431</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="L-7432"><a href="#L-7432"><span class="linenos">7432</span></a> <span class="k">return</span> <span class="n">Case</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">ifs</span><span class="o">=</span><span class="p">[])</span>
-</span><span id="L-7433"><a href="#L-7433"><span class="linenos">7433</span></a>
+</span><span id="L-7413"><a href="#L-7413"><span class="linenos">7413</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-7414"><a href="#L-7414"><span class="linenos">7414</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="L-7415"><a href="#L-7415"><span class="linenos">7415</span></a>
+</span><span id="L-7416"><a href="#L-7416"><span class="linenos">7416</span></a><span class="sd"> Args:</span>
+</span><span id="L-7417"><a href="#L-7417"><span class="linenos">7417</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="L-7418"><a href="#L-7418"><span class="linenos">7418</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="L-7419"><a href="#L-7419"><span class="linenos">7419</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
+</span><span id="L-7420"><a href="#L-7420"><span class="linenos">7420</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-7421"><a href="#L-7421"><span class="linenos">7421</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-7422"><a href="#L-7422"><span class="linenos">7422</span></a>
+</span><span id="L-7423"><a href="#L-7423"><span class="linenos">7423</span></a><span class="sd"> Note:</span>
+</span><span id="L-7424"><a href="#L-7424"><span class="linenos">7424</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="L-7425"><a href="#L-7425"><span class="linenos">7425</span></a>
+</span><span id="L-7426"><a href="#L-7426"><span class="linenos">7426</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7427"><a href="#L-7427"><span class="linenos">7427</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-7428"><a href="#L-7428"><span class="linenos">7428</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="L-7429"><a href="#L-7429"><span class="linenos">7429</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7430"><a href="#L-7430"><span class="linenos">7430</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-7431"><a href="#L-7431"><span class="linenos">7431</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-7432"><a href="#L-7432"><span class="linenos">7432</span></a>
+</span><span id="L-7433"><a href="#L-7433"><span class="linenos">7433</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-7434"><a href="#L-7434"><span class="linenos">7434</span></a>
-</span><span id="L-7435"><a href="#L-7435"><span class="linenos">7435</span></a><span class="k">def</span> <span class="nf">array</span><span class="p">(</span>
-</span><span id="L-7436"><a href="#L-7436"><span class="linenos">7436</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7437"><a href="#L-7437"><span class="linenos">7437</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Array</span><span class="p">:</span>
-</span><span id="L-7438"><a href="#L-7438"><span class="linenos">7438</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7439"><a href="#L-7439"><span class="linenos">7439</span></a><span class="sd"> Returns an array.</span>
-</span><span id="L-7440"><a href="#L-7440"><span class="linenos">7440</span></a>
-</span><span id="L-7441"><a href="#L-7441"><span class="linenos">7441</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7442"><a href="#L-7442"><span class="linenos">7442</span></a><span class="sd"> &gt;&gt;&gt; array(1, &#39;x&#39;).sql()</span>
-</span><span id="L-7443"><a href="#L-7443"><span class="linenos">7443</span></a><span class="sd"> &#39;ARRAY(1, x)&#39;</span>
-</span><span id="L-7444"><a href="#L-7444"><span class="linenos">7444</span></a>
-</span><span id="L-7445"><a href="#L-7445"><span class="linenos">7445</span></a><span class="sd"> Args:</span>
-</span><span id="L-7446"><a href="#L-7446"><span class="linenos">7446</span></a><span class="sd"> expressions: the expressions to add to the array.</span>
-</span><span id="L-7447"><a href="#L-7447"><span class="linenos">7447</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
-</span><span id="L-7448"><a href="#L-7448"><span class="linenos">7448</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-7449"><a href="#L-7449"><span class="linenos">7449</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="L-7450"><a href="#L-7450"><span class="linenos">7450</span></a>
-</span><span id="L-7451"><a href="#L-7451"><span class="linenos">7451</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7452"><a href="#L-7452"><span class="linenos">7452</span></a><span class="sd"> An array expression.</span>
-</span><span id="L-7453"><a href="#L-7453"><span class="linenos">7453</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7454"><a href="#L-7454"><span class="linenos">7454</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span>
-</span><span id="L-7455"><a href="#L-7455"><span class="linenos">7455</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-7456"><a href="#L-7456"><span class="linenos">7456</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-7457"><a href="#L-7457"><span class="linenos">7457</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-7458"><a href="#L-7458"><span class="linenos">7458</span></a> <span class="p">]</span>
-</span><span id="L-7459"><a href="#L-7459"><span class="linenos">7459</span></a> <span class="p">)</span>
-</span><span id="L-7460"><a href="#L-7460"><span class="linenos">7460</span></a>
+</span><span id="L-7435"><a href="#L-7435"><span class="linenos">7435</span></a> <span class="n">dialect</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><span id="L-7436"><a href="#L-7436"><span class="linenos">7436</span></a>
+</span><span id="L-7437"><a href="#L-7437"><span class="linenos">7437</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7438"><a href="#L-7438"><span class="linenos">7438</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7439"><a href="#L-7439"><span class="linenos">7439</span></a>
+</span><span id="L-7440"><a href="#L-7440"><span class="linenos">7440</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</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-7441"><a href="#L-7441"><span class="linenos">7441</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="L-7442"><a href="#L-7442"><span class="linenos">7442</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
+</span><span id="L-7443"><a href="#L-7443"><span class="linenos">7443</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
+</span><span id="L-7444"><a href="#L-7444"><span class="linenos">7444</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</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-7445"><a href="#L-7445"><span class="linenos">7445</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7446"><a href="#L-7446"><span class="linenos">7446</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
+</span><span id="L-7447"><a href="#L-7447"><span class="linenos">7447</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
+</span><span id="L-7448"><a href="#L-7448"><span class="linenos">7448</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</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-7449"><a href="#L-7449"><span class="linenos">7449</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7450"><a href="#L-7450"><span class="linenos">7450</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</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-7451"><a href="#L-7451"><span class="linenos">7451</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="L-7452"><a href="#L-7452"><span class="linenos">7452</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-7453"><a href="#L-7453"><span class="linenos">7453</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7454"><a href="#L-7454"><span class="linenos">7454</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+</span><span id="L-7455"><a href="#L-7455"><span class="linenos">7455</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
+</span><span id="L-7456"><a href="#L-7456"><span class="linenos">7456</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
+</span><span id="L-7457"><a href="#L-7457"><span class="linenos">7457</span></a> <span class="p">)</span>
+</span><span id="L-7458"><a href="#L-7458"><span class="linenos">7458</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7459"><a href="#L-7459"><span class="linenos">7459</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-7460"><a href="#L-7460"><span class="linenos">7460</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-7461"><a href="#L-7461"><span class="linenos">7461</span></a>
-</span><span id="L-7462"><a href="#L-7462"><span class="linenos">7462</span></a><span class="k">def</span> <span class="nf">tuple_</span><span class="p">(</span>
-</span><span id="L-7463"><a href="#L-7463"><span class="linenos">7463</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7464"><a href="#L-7464"><span class="linenos">7464</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">:</span>
-</span><span id="L-7465"><a href="#L-7465"><span class="linenos">7465</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7466"><a href="#L-7466"><span class="linenos">7466</span></a><span class="sd"> Returns an tuple.</span>
+</span><span id="L-7462"><a href="#L-7462"><span class="linenos">7462</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-7463"><a href="#L-7463"><span class="linenos">7463</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-7464"><a href="#L-7464"><span class="linenos">7464</span></a>
+</span><span id="L-7465"><a href="#L-7465"><span class="linenos">7465</span></a> <span class="k">return</span> <span class="n">function</span>
+</span><span id="L-7466"><a href="#L-7466"><span class="linenos">7466</span></a>
</span><span id="L-7467"><a href="#L-7467"><span class="linenos">7467</span></a>
-</span><span id="L-7468"><a href="#L-7468"><span class="linenos">7468</span></a><span class="sd"> Examples:</span>
-</span><span id="L-7469"><a href="#L-7469"><span class="linenos">7469</span></a><span class="sd"> &gt;&gt;&gt; tuple_(1, &#39;x&#39;).sql()</span>
-</span><span id="L-7470"><a href="#L-7470"><span class="linenos">7470</span></a><span class="sd"> &#39;(1, x)&#39;</span>
-</span><span id="L-7471"><a href="#L-7471"><span class="linenos">7471</span></a>
-</span><span id="L-7472"><a href="#L-7472"><span class="linenos">7472</span></a><span class="sd"> Args:</span>
-</span><span id="L-7473"><a href="#L-7473"><span class="linenos">7473</span></a><span class="sd"> expressions: the expressions to add to the tuple.</span>
-</span><span id="L-7474"><a href="#L-7474"><span class="linenos">7474</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
-</span><span id="L-7475"><a href="#L-7475"><span class="linenos">7475</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="L-7476"><a href="#L-7476"><span class="linenos">7476</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-7468"><a href="#L-7468"><span class="linenos">7468</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
+</span><span id="L-7469"><a href="#L-7469"><span class="linenos">7469</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="L-7470"><a href="#L-7470"><span class="linenos">7470</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="L-7471"><a href="#L-7471"><span class="linenos">7471</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="L-7472"><a href="#L-7472"><span class="linenos">7472</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7473"><a href="#L-7473"><span class="linenos">7473</span></a><span class="sd"> Initialize a CASE statement.</span>
+</span><span id="L-7474"><a href="#L-7474"><span class="linenos">7474</span></a>
+</span><span id="L-7475"><a href="#L-7475"><span class="linenos">7475</span></a><span class="sd"> Example:</span>
+</span><span id="L-7476"><a href="#L-7476"><span class="linenos">7476</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
</span><span id="L-7477"><a href="#L-7477"><span class="linenos">7477</span></a>
-</span><span id="L-7478"><a href="#L-7478"><span class="linenos">7478</span></a><span class="sd"> Returns:</span>
-</span><span id="L-7479"><a href="#L-7479"><span class="linenos">7479</span></a><span class="sd"> A tuple expression.</span>
-</span><span id="L-7480"><a href="#L-7480"><span class="linenos">7480</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7481"><a href="#L-7481"><span class="linenos">7481</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span>
-</span><span id="L-7482"><a href="#L-7482"><span class="linenos">7482</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="L-7483"><a href="#L-7483"><span class="linenos">7483</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="L-7484"><a href="#L-7484"><span class="linenos">7484</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-7485"><a href="#L-7485"><span class="linenos">7485</span></a> <span class="p">]</span>
-</span><span id="L-7486"><a href="#L-7486"><span class="linenos">7486</span></a> <span class="p">)</span>
+</span><span id="L-7478"><a href="#L-7478"><span class="linenos">7478</span></a><span class="sd"> Args:</span>
+</span><span id="L-7479"><a href="#L-7479"><span class="linenos">7479</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
+</span><span id="L-7480"><a href="#L-7480"><span class="linenos">7480</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
+</span><span id="L-7481"><a href="#L-7481"><span class="linenos">7481</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7482"><a href="#L-7482"><span class="linenos">7482</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="L-7483"><a href="#L-7483"><span class="linenos">7483</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="L-7484"><a href="#L-7484"><span class="linenos">7484</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="L-7485"><a href="#L-7485"><span class="linenos">7485</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="L-7486"><a href="#L-7486"><span class="linenos">7486</span></a> <span class="k">return</span> <span class="n">Case</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">ifs</span><span class="o">=</span><span class="p">[])</span>
</span><span id="L-7487"><a href="#L-7487"><span class="linenos">7487</span></a>
</span><span id="L-7488"><a href="#L-7488"><span class="linenos">7488</span></a>
-</span><span id="L-7489"><a href="#L-7489"><span class="linenos">7489</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="L-7490"><a href="#L-7490"><span class="linenos">7490</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7491"><a href="#L-7491"><span class="linenos">7491</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="L-7492"><a href="#L-7492"><span class="linenos">7492</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7493"><a href="#L-7493"><span class="linenos">7493</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-7489"><a href="#L-7489"><span class="linenos">7489</span></a><span class="k">def</span> <span class="nf">array</span><span class="p">(</span>
+</span><span id="L-7490"><a href="#L-7490"><span class="linenos">7490</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7491"><a href="#L-7491"><span class="linenos">7491</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Array</span><span class="p">:</span>
+</span><span id="L-7492"><a href="#L-7492"><span class="linenos">7492</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7493"><a href="#L-7493"><span class="linenos">7493</span></a><span class="sd"> Returns an array.</span>
</span><span id="L-7494"><a href="#L-7494"><span class="linenos">7494</span></a>
-</span><span id="L-7495"><a href="#L-7495"><span class="linenos">7495</span></a>
-</span><span id="L-7496"><a href="#L-7496"><span class="linenos">7496</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="L-7497"><a href="#L-7497"><span class="linenos">7497</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7498"><a href="#L-7498"><span class="linenos">7498</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="L-7499"><a href="#L-7499"><span class="linenos">7499</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7500"><a href="#L-7500"><span class="linenos">7500</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-7501"><a href="#L-7501"><span class="linenos">7501</span></a>
-</span><span id="L-7502"><a href="#L-7502"><span class="linenos">7502</span></a>
-</span><span id="L-7503"><a href="#L-7503"><span class="linenos">7503</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
-</span><span id="L-7504"><a href="#L-7504"><span class="linenos">7504</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="L-7505"><a href="#L-7505"><span class="linenos">7505</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="L-7506"><a href="#L-7506"><span class="linenos">7506</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="L-7507"><a href="#L-7507"><span class="linenos">7507</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
-</span><span id="L-7508"><a href="#L-7508"><span class="linenos">7508</span></a>
-</span><span id="L-7509"><a href="#L-7509"><span class="linenos">7509</span></a>
-</span><span id="L-7510"><a href="#L-7510"><span class="linenos">7510</span></a><span class="n">NONNULL_CONSTANTS</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="L-7511"><a href="#L-7511"><span class="linenos">7511</span></a> <span class="n">Literal</span><span class="p">,</span>
-</span><span id="L-7512"><a href="#L-7512"><span class="linenos">7512</span></a> <span class="n">Boolean</span><span class="p">,</span>
-</span><span id="L-7513"><a href="#L-7513"><span class="linenos">7513</span></a><span class="p">)</span>
+</span><span id="L-7495"><a href="#L-7495"><span class="linenos">7495</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7496"><a href="#L-7496"><span class="linenos">7496</span></a><span class="sd"> &gt;&gt;&gt; array(1, &#39;x&#39;).sql()</span>
+</span><span id="L-7497"><a href="#L-7497"><span class="linenos">7497</span></a><span class="sd"> &#39;ARRAY(1, x)&#39;</span>
+</span><span id="L-7498"><a href="#L-7498"><span class="linenos">7498</span></a>
+</span><span id="L-7499"><a href="#L-7499"><span class="linenos">7499</span></a><span class="sd"> Args:</span>
+</span><span id="L-7500"><a href="#L-7500"><span class="linenos">7500</span></a><span class="sd"> expressions: the expressions to add to the array.</span>
+</span><span id="L-7501"><a href="#L-7501"><span class="linenos">7501</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
+</span><span id="L-7502"><a href="#L-7502"><span class="linenos">7502</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-7503"><a href="#L-7503"><span class="linenos">7503</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-7504"><a href="#L-7504"><span class="linenos">7504</span></a>
+</span><span id="L-7505"><a href="#L-7505"><span class="linenos">7505</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7506"><a href="#L-7506"><span class="linenos">7506</span></a><span class="sd"> An array expression.</span>
+</span><span id="L-7507"><a href="#L-7507"><span class="linenos">7507</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7508"><a href="#L-7508"><span class="linenos">7508</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span>
+</span><span id="L-7509"><a href="#L-7509"><span class="linenos">7509</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-7510"><a href="#L-7510"><span class="linenos">7510</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-7511"><a href="#L-7511"><span class="linenos">7511</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-7512"><a href="#L-7512"><span class="linenos">7512</span></a> <span class="p">]</span>
+</span><span id="L-7513"><a href="#L-7513"><span class="linenos">7513</span></a> <span class="p">)</span>
</span><span id="L-7514"><a href="#L-7514"><span class="linenos">7514</span></a>
-</span><span id="L-7515"><a href="#L-7515"><span class="linenos">7515</span></a><span class="n">CONSTANTS</span> <span class="o">=</span> <span class="p">(</span>
-</span><span id="L-7516"><a href="#L-7516"><span class="linenos">7516</span></a> <span class="n">Literal</span><span class="p">,</span>
-</span><span id="L-7517"><a href="#L-7517"><span class="linenos">7517</span></a> <span class="n">Boolean</span><span class="p">,</span>
-</span><span id="L-7518"><a href="#L-7518"><span class="linenos">7518</span></a> <span class="n">Null</span><span class="p">,</span>
-</span><span id="L-7519"><a href="#L-7519"><span class="linenos">7519</span></a><span class="p">)</span>
+</span><span id="L-7515"><a href="#L-7515"><span class="linenos">7515</span></a>
+</span><span id="L-7516"><a href="#L-7516"><span class="linenos">7516</span></a><span class="k">def</span> <span class="nf">tuple_</span><span class="p">(</span>
+</span><span id="L-7517"><a href="#L-7517"><span class="linenos">7517</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7518"><a href="#L-7518"><span class="linenos">7518</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">:</span>
+</span><span id="L-7519"><a href="#L-7519"><span class="linenos">7519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7520"><a href="#L-7520"><span class="linenos">7520</span></a><span class="sd"> Returns an tuple.</span>
+</span><span id="L-7521"><a href="#L-7521"><span class="linenos">7521</span></a>
+</span><span id="L-7522"><a href="#L-7522"><span class="linenos">7522</span></a><span class="sd"> Examples:</span>
+</span><span id="L-7523"><a href="#L-7523"><span class="linenos">7523</span></a><span class="sd"> &gt;&gt;&gt; tuple_(1, &#39;x&#39;).sql()</span>
+</span><span id="L-7524"><a href="#L-7524"><span class="linenos">7524</span></a><span class="sd"> &#39;(1, x)&#39;</span>
+</span><span id="L-7525"><a href="#L-7525"><span class="linenos">7525</span></a>
+</span><span id="L-7526"><a href="#L-7526"><span class="linenos">7526</span></a><span class="sd"> Args:</span>
+</span><span id="L-7527"><a href="#L-7527"><span class="linenos">7527</span></a><span class="sd"> expressions: the expressions to add to the tuple.</span>
+</span><span id="L-7528"><a href="#L-7528"><span class="linenos">7528</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
+</span><span id="L-7529"><a href="#L-7529"><span class="linenos">7529</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="L-7530"><a href="#L-7530"><span class="linenos">7530</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="L-7531"><a href="#L-7531"><span class="linenos">7531</span></a>
+</span><span id="L-7532"><a href="#L-7532"><span class="linenos">7532</span></a><span class="sd"> Returns:</span>
+</span><span id="L-7533"><a href="#L-7533"><span class="linenos">7533</span></a><span class="sd"> A tuple expression.</span>
+</span><span id="L-7534"><a href="#L-7534"><span class="linenos">7534</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7535"><a href="#L-7535"><span class="linenos">7535</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span>
+</span><span id="L-7536"><a href="#L-7536"><span class="linenos">7536</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="L-7537"><a href="#L-7537"><span class="linenos">7537</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="L-7538"><a href="#L-7538"><span class="linenos">7538</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-7539"><a href="#L-7539"><span class="linenos">7539</span></a> <span class="p">]</span>
+</span><span id="L-7540"><a href="#L-7540"><span class="linenos">7540</span></a> <span class="p">)</span>
+</span><span id="L-7541"><a href="#L-7541"><span class="linenos">7541</span></a>
+</span><span id="L-7542"><a href="#L-7542"><span class="linenos">7542</span></a>
+</span><span id="L-7543"><a href="#L-7543"><span class="linenos">7543</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="L-7544"><a href="#L-7544"><span class="linenos">7544</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7545"><a href="#L-7545"><span class="linenos">7545</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="L-7546"><a href="#L-7546"><span class="linenos">7546</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7547"><a href="#L-7547"><span class="linenos">7547</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-7548"><a href="#L-7548"><span class="linenos">7548</span></a>
+</span><span id="L-7549"><a href="#L-7549"><span class="linenos">7549</span></a>
+</span><span id="L-7550"><a href="#L-7550"><span class="linenos">7550</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="L-7551"><a href="#L-7551"><span class="linenos">7551</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7552"><a href="#L-7552"><span class="linenos">7552</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="L-7553"><a href="#L-7553"><span class="linenos">7553</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7554"><a href="#L-7554"><span class="linenos">7554</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-7555"><a href="#L-7555"><span class="linenos">7555</span></a>
+</span><span id="L-7556"><a href="#L-7556"><span class="linenos">7556</span></a>
+</span><span id="L-7557"><a href="#L-7557"><span class="linenos">7557</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
+</span><span id="L-7558"><a href="#L-7558"><span class="linenos">7558</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="L-7559"><a href="#L-7559"><span class="linenos">7559</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="L-7560"><a href="#L-7560"><span class="linenos">7560</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="L-7561"><a href="#L-7561"><span class="linenos">7561</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
+</span><span id="L-7562"><a href="#L-7562"><span class="linenos">7562</span></a>
+</span><span id="L-7563"><a href="#L-7563"><span class="linenos">7563</span></a>
+</span><span id="L-7564"><a href="#L-7564"><span class="linenos">7564</span></a><span class="n">NONNULL_CONSTANTS</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="L-7565"><a href="#L-7565"><span class="linenos">7565</span></a> <span class="n">Literal</span><span class="p">,</span>
+</span><span id="L-7566"><a href="#L-7566"><span class="linenos">7566</span></a> <span class="n">Boolean</span><span class="p">,</span>
+</span><span id="L-7567"><a href="#L-7567"><span class="linenos">7567</span></a><span class="p">)</span>
+</span><span id="L-7568"><a href="#L-7568"><span class="linenos">7568</span></a>
+</span><span id="L-7569"><a href="#L-7569"><span class="linenos">7569</span></a><span class="n">CONSTANTS</span> <span class="o">=</span> <span class="p">(</span>
+</span><span id="L-7570"><a href="#L-7570"><span class="linenos">7570</span></a> <span class="n">Literal</span><span class="p">,</span>
+</span><span id="L-7571"><a href="#L-7571"><span class="linenos">7571</span></a> <span class="n">Boolean</span><span class="p">,</span>
+</span><span id="L-7572"><a href="#L-7572"><span class="linenos">7572</span></a> <span class="n">Null</span><span class="p">,</span>
+</span><span id="L-7573"><a href="#L-7573"><span class="linenos">7573</span></a><span class="p">)</span>
</span></pre></div>
@@ -29663,6 +29771,379 @@ Otherwise, this resets the expression.</li>
</dl>
</div>
</section>
+ <section id="CopyParameter">
+ <input id="CopyParameter-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">CopyParameter</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="CopyParameter-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#CopyParameter"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CopyParameter-1959"><a href="#CopyParameter-1959"><span class="linenos">1959</span></a><span class="k">class</span> <span class="nc">CopyParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="CopyParameter-1960"><a href="#CopyParameter-1960"><span class="linenos">1960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
+
+
+
+
+ <div id="CopyParameter.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;expression&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#CopyParameter.arg_types"></a>
+
+
+
+ </div>
+ <div id="CopyParameter.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;copyparameter&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#CopyParameter.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="CopyParameter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="CopyParameter.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="CopyParameter.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="CopyParameter.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="CopyParameter.index" class="variable"><a href="#Expression.index">index</a></dd>
+ <dd id="CopyParameter.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="CopyParameter.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="CopyParameter.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="CopyParameter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="CopyParameter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="CopyParameter.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="CopyParameter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="CopyParameter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="CopyParameter.is_negative" class="variable"><a href="#Expression.is_negative">is_negative</a></dd>
+ <dd id="CopyParameter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="CopyParameter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="CopyParameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="CopyParameter.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="CopyParameter.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="CopyParameter.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="CopyParameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="CopyParameter.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="CopyParameter.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="CopyParameter.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="CopyParameter.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="CopyParameter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="CopyParameter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="CopyParameter.pop_comments" class="function"><a href="#Expression.pop_comments">pop_comments</a></dd>
+ <dd id="CopyParameter.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="CopyParameter.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="CopyParameter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="CopyParameter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="CopyParameter.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="CopyParameter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="CopyParameter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="CopyParameter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="CopyParameter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="CopyParameter.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="CopyParameter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="CopyParameter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="CopyParameter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="CopyParameter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="CopyParameter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="CopyParameter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="CopyParameter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="CopyParameter.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="CopyParameter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="CopyParameter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="CopyParameter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="CopyParameter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="CopyParameter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="CopyParameter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="CopyParameter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="CopyParameter.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="CopyParameter.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="CopyParameter.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="CopyParameter.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="CopyParameter.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="CopyParameter.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="CopyParameter.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="CopyParameter.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="CopyParameter.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="CopyParameter.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="CopyParameter.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="CopyParameter.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="CopyParameter.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="CopyParameter.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="CopyParameter.asc" class="function"><a href="#Expression.asc">asc</a></dd>
+ <dd id="CopyParameter.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="Copy">
+ <input id="Copy-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">Copy</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="Copy-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Copy"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Copy-1963"><a href="#Copy-1963"><span class="linenos">1963</span></a><span class="k">class</span> <span class="nc">Copy</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Copy-1964"><a href="#Copy-1964"><span class="linenos">1964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Copy-1965"><a href="#Copy-1965"><span class="linenos">1965</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="Copy-1966"><a href="#Copy-1966"><span class="linenos">1966</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Copy-1967"><a href="#Copy-1967"><span class="linenos">1967</span></a> <span class="s2">&quot;files&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Copy-1968"><a href="#Copy-1968"><span class="linenos">1968</span></a> <span class="s2">&quot;credentials&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Copy-1969"><a href="#Copy-1969"><span class="linenos">1969</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Copy-1970"><a href="#Copy-1970"><span class="linenos">1970</span></a> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Copy-1971"><a href="#Copy-1971"><span class="linenos">1971</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="Copy.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;this&#39;: True, &#39;kind&#39;: True, &#39;files&#39;: True, &#39;credentials&#39;: False, &#39;format&#39;: False, &#39;params&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#Copy.arg_types"></a>
+
+
+
+ </div>
+ <div id="Copy.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;copy&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#Copy.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Copy.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Copy.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="Copy.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="Copy.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="Copy.index" class="variable"><a href="#Expression.index">index</a></dd>
+ <dd id="Copy.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="Copy.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="Copy.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Copy.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Copy.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Copy.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Copy.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Copy.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="Copy.is_negative" class="variable"><a href="#Expression.is_negative">is_negative</a></dd>
+ <dd id="Copy.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="Copy.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="Copy.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Copy.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="Copy.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="Copy.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="Copy.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="Copy.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Copy.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Copy.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="Copy.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="Copy.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Copy.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="Copy.pop_comments" class="function"><a href="#Expression.pop_comments">pop_comments</a></dd>
+ <dd id="Copy.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Copy.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Copy.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Copy.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Copy.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Copy.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Copy.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Copy.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Copy.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Copy.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Copy.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Copy.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Copy.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Copy.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="Copy.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="Copy.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="Copy.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Copy.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="Copy.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="Copy.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="Copy.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="Copy.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Copy.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Copy.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Copy.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Copy.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="Copy.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="Copy.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="Copy.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="Copy.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="Copy.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="Copy.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="Copy.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="Copy.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="Copy.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="Copy.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="Copy.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="Copy.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="Copy.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Copy.asc" class="function"><a href="#Expression.asc">asc</a></dd>
+ <dd id="Copy.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
+ <section id="Credentials">
+ <input id="Credentials-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">Credentials</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
+
+ <label class="view-source-button" for="Credentials-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Credentials"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Credentials-1974"><a href="#Credentials-1974"><span class="linenos">1974</span></a><span class="k">class</span> <span class="nc">Credentials</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Credentials-1975"><a href="#Credentials-1975"><span class="linenos">1975</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Credentials-1976"><a href="#Credentials-1976"><span class="linenos">1976</span></a> <span class="s2">&quot;credentials&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Credentials-1977"><a href="#Credentials-1977"><span class="linenos">1977</span></a> <span class="s2">&quot;encryption&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Credentials-1978"><a href="#Credentials-1978"><span class="linenos">1978</span></a> <span class="s2">&quot;storage&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Credentials-1979"><a href="#Credentials-1979"><span class="linenos">1979</span></a> <span class="s2">&quot;iam_role&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Credentials-1980"><a href="#Credentials-1980"><span class="linenos">1980</span></a> <span class="s2">&quot;region&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Credentials-1981"><a href="#Credentials-1981"><span class="linenos">1981</span></a> <span class="p">}</span>
+</span></pre></div>
+
+
+
+
+ <div id="Credentials.arg_types" class="classattr">
+ <div class="attr variable">
+ <span class="name">arg_types</span> =
+<span class="default_value">{&#39;credentials&#39;: False, &#39;encryption&#39;: False, &#39;storage&#39;: False, &#39;iam_role&#39;: False, &#39;region&#39;: False}</span>
+
+
+ </div>
+ <a class="headerlink" href="#Credentials.arg_types"></a>
+
+
+
+ </div>
+ <div id="Credentials.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;credentials&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#Credentials.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Credentials.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Credentials.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="Credentials.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="Credentials.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="Credentials.index" class="variable"><a href="#Expression.index">index</a></dd>
+ <dd id="Credentials.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="Credentials.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="Credentials.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Credentials.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Credentials.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Credentials.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Credentials.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Credentials.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="Credentials.is_negative" class="variable"><a href="#Expression.is_negative">is_negative</a></dd>
+ <dd id="Credentials.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="Credentials.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="Credentials.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Credentials.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="Credentials.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="Credentials.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="Credentials.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="Credentials.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Credentials.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Credentials.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="Credentials.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="Credentials.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Credentials.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="Credentials.pop_comments" class="function"><a href="#Expression.pop_comments">pop_comments</a></dd>
+ <dd id="Credentials.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Credentials.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Credentials.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Credentials.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Credentials.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Credentials.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Credentials.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Credentials.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Credentials.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Credentials.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Credentials.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Credentials.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Credentials.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Credentials.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="Credentials.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="Credentials.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="Credentials.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Credentials.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="Credentials.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="Credentials.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="Credentials.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="Credentials.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Credentials.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Credentials.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Credentials.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Credentials.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="Credentials.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="Credentials.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="Credentials.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="Credentials.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="Credentials.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="Credentials.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="Credentials.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="Credentials.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="Credentials.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="Credentials.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="Credentials.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="Credentials.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="Credentials.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Credentials.asc" class="function"><a href="#Expression.asc">asc</a></dd>
+ <dd id="Credentials.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="Prior">
<input id="Prior-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -29674,8 +30155,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Prior"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Prior-1959"><a href="#Prior-1959"><span class="linenos">1959</span></a><span class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Prior-1960"><a href="#Prior-1960"><span class="linenos">1960</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Prior-1984"><a href="#Prior-1984"><span class="linenos">1984</span></a><span class="k">class</span> <span class="nc">Prior</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Prior-1985"><a href="#Prior-1985"><span class="linenos">1985</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -29783,9 +30264,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Directory"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1963"><a href="#Directory-1963"><span class="linenos">1963</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Directory-1964"><a href="#Directory-1964"><span class="linenos">1964</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span>
-</span><span id="Directory-1965"><a href="#Directory-1965"><span class="linenos">1965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;row_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="Directory-1988"><a href="#Directory-1988"><span class="linenos">1988</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Directory-1989"><a href="#Directory-1989"><span class="linenos">1989</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span>
+</span><span id="Directory-1990"><a href="#Directory-1990"><span class="linenos">1990</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;row_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -29904,13 +30385,13 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ForeignKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1968"><a href="#ForeignKey-1968"><span class="linenos">1968</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ForeignKey-1969"><a href="#ForeignKey-1969"><span class="linenos">1969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ForeignKey-1970"><a href="#ForeignKey-1970"><span class="linenos">1970</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="ForeignKey-1971"><a href="#ForeignKey-1971"><span class="linenos">1971</span></a> <span class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ForeignKey-1972"><a href="#ForeignKey-1972"><span class="linenos">1972</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ForeignKey-1973"><a href="#ForeignKey-1973"><span class="linenos">1973</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ForeignKey-1974"><a href="#ForeignKey-1974"><span class="linenos">1974</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1993"><a href="#ForeignKey-1993"><span class="linenos">1993</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ForeignKey-1994"><a href="#ForeignKey-1994"><span class="linenos">1994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ForeignKey-1995"><a href="#ForeignKey-1995"><span class="linenos">1995</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="ForeignKey-1996"><a href="#ForeignKey-1996"><span class="linenos">1996</span></a> <span class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ForeignKey-1997"><a href="#ForeignKey-1997"><span class="linenos">1997</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ForeignKey-1998"><a href="#ForeignKey-1998"><span class="linenos">1998</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ForeignKey-1999"><a href="#ForeignKey-1999"><span class="linenos">1999</span></a> <span class="p">}</span>
</span></pre></div>
@@ -30029,8 +30510,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ColumnPrefix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnPrefix-1977"><a href="#ColumnPrefix-1977"><span class="linenos">1977</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ColumnPrefix-1978"><a href="#ColumnPrefix-1978"><span class="linenos">1978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ColumnPrefix-2002"><a href="#ColumnPrefix-2002"><span class="linenos">2002</span></a><span class="k">class</span> <span class="nc">ColumnPrefix</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ColumnPrefix-2003"><a href="#ColumnPrefix-2003"><span class="linenos">2003</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -30149,8 +30630,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PrimaryKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1981"><a href="#PrimaryKey-1981"><span class="linenos">1981</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PrimaryKey-1982"><a href="#PrimaryKey-1982"><span class="linenos">1982</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;options&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="PrimaryKey-2006"><a href="#PrimaryKey-2006"><span class="linenos">2006</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PrimaryKey-2007"><a href="#PrimaryKey-2007"><span class="linenos">2007</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;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -30269,8 +30750,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Into"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Into-1987"><a href="#Into-1987"><span class="linenos">1987</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Into-1988"><a href="#Into-1988"><span class="linenos">1988</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unlogged&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="Into-2012"><a href="#Into-2012"><span class="linenos">2012</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Into-2013"><a href="#Into-2013"><span class="linenos">2013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unlogged&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -30389,14 +30870,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#From"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="From-1991"><a href="#From-1991"><span class="linenos">1991</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="From-1992"><a href="#From-1992"><span class="linenos">1992</span></a> <span class="nd">@property</span>
-</span><span id="From-1993"><a href="#From-1993"><span class="linenos">1993</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="From-1994"><a href="#From-1994"><span class="linenos">1994</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="From-1995"><a href="#From-1995"><span class="linenos">1995</span></a>
-</span><span id="From-1996"><a href="#From-1996"><span class="linenos">1996</span></a> <span class="nd">@property</span>
-</span><span id="From-1997"><a href="#From-1997"><span class="linenos">1997</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="From-1998"><a href="#From-1998"><span class="linenos">1998</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">alias_or_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From-2016"><a href="#From-2016"><span class="linenos">2016</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="From-2017"><a href="#From-2017"><span class="linenos">2017</span></a> <span class="nd">@property</span>
+</span><span id="From-2018"><a href="#From-2018"><span class="linenos">2018</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="From-2019"><a href="#From-2019"><span class="linenos">2019</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="From-2020"><a href="#From-2020"><span class="linenos">2020</span></a>
+</span><span id="From-2021"><a href="#From-2021"><span class="linenos">2021</span></a> <span class="nd">@property</span>
+</span><span id="From-2022"><a href="#From-2022"><span class="linenos">2022</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="From-2023"><a href="#From-2023"><span class="linenos">2023</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">alias_or_name</span>
</span></pre></div>
@@ -30411,9 +30892,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#From.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="From.name-1992"><a href="#From.name-1992"><span class="linenos">1992</span></a> <span class="nd">@property</span>
-</span><span id="From.name-1993"><a href="#From.name-1993"><span class="linenos">1993</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="From.name-1994"><a href="#From.name-1994"><span class="linenos">1994</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From.name-2017"><a href="#From.name-2017"><span class="linenos">2017</span></a> <span class="nd">@property</span>
+</span><span id="From.name-2018"><a href="#From.name-2018"><span class="linenos">2018</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="From.name-2019"><a href="#From.name-2019"><span class="linenos">2019</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></pre></div>
@@ -30429,9 +30910,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#From.alias_or_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="From.alias_or_name-1996"><a href="#From.alias_or_name-1996"><span class="linenos">1996</span></a> <span class="nd">@property</span>
-</span><span id="From.alias_or_name-1997"><a href="#From.alias_or_name-1997"><span class="linenos">1997</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="From.alias_or_name-1998"><a href="#From.alias_or_name-1998"><span class="linenos">1998</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">alias_or_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="From.alias_or_name-2021"><a href="#From.alias_or_name-2021"><span class="linenos">2021</span></a> <span class="nd">@property</span>
+</span><span id="From.alias_or_name-2022"><a href="#From.alias_or_name-2022"><span class="linenos">2022</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="From.alias_or_name-2023"><a href="#From.alias_or_name-2023"><span class="linenos">2023</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">alias_or_name</span>
</span></pre></div>
@@ -30538,8 +31019,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Having-2001"><a href="#Having-2001"><span class="linenos">2001</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Having-2002"><a href="#Having-2002"><span class="linenos">2002</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Having-2026"><a href="#Having-2026"><span class="linenos">2026</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Having-2027"><a href="#Having-2027"><span class="linenos">2027</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -30647,8 +31128,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-2005"><a href="#Hint-2005"><span class="linenos">2005</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Hint-2006"><a href="#Hint-2006"><span class="linenos">2006</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-2030"><a href="#Hint-2030"><span class="linenos">2030</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Hint-2031"><a href="#Hint-2031"><span class="linenos">2031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -30767,8 +31248,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#JoinHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-2009"><a href="#JoinHint-2009"><span class="linenos">2009</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JoinHint-2010"><a href="#JoinHint-2010"><span class="linenos">2010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="JoinHint-2034"><a href="#JoinHint-2034"><span class="linenos">2034</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JoinHint-2035"><a href="#JoinHint-2035"><span class="linenos">2035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -30887,20 +31368,20 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-2013"><a href="#Identifier-2013"><span class="linenos">2013</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Identifier-2014"><a href="#Identifier-2014"><span class="linenos">2014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Identifier-2015"><a href="#Identifier-2015"><span class="linenos">2015</span></a>
-</span><span id="Identifier-2016"><a href="#Identifier-2016"><span class="linenos">2016</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-2017"><a href="#Identifier-2017"><span class="linenos">2017</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Identifier-2018"><a href="#Identifier-2018"><span class="linenos">2018</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
-</span><span id="Identifier-2019"><a href="#Identifier-2019"><span class="linenos">2019</span></a>
-</span><span id="Identifier-2020"><a href="#Identifier-2020"><span class="linenos">2020</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-2021"><a href="#Identifier-2021"><span class="linenos">2021</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
-</span><span id="Identifier-2022"><a href="#Identifier-2022"><span class="linenos">2022</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
-</span><span id="Identifier-2023"><a href="#Identifier-2023"><span class="linenos">2023</span></a>
-</span><span id="Identifier-2024"><a href="#Identifier-2024"><span class="linenos">2024</span></a> <span class="nd">@property</span>
-</span><span id="Identifier-2025"><a href="#Identifier-2025"><span class="linenos">2025</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Identifier-2026"><a href="#Identifier-2026"><span class="linenos">2026</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-2038"><a href="#Identifier-2038"><span class="linenos">2038</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Identifier-2039"><a href="#Identifier-2039"><span class="linenos">2039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Identifier-2040"><a href="#Identifier-2040"><span class="linenos">2040</span></a>
+</span><span id="Identifier-2041"><a href="#Identifier-2041"><span class="linenos">2041</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-2042"><a href="#Identifier-2042"><span class="linenos">2042</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Identifier-2043"><a href="#Identifier-2043"><span class="linenos">2043</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
+</span><span id="Identifier-2044"><a href="#Identifier-2044"><span class="linenos">2044</span></a>
+</span><span id="Identifier-2045"><a href="#Identifier-2045"><span class="linenos">2045</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-2046"><a href="#Identifier-2046"><span class="linenos">2046</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="Identifier-2047"><a href="#Identifier-2047"><span class="linenos">2047</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
+</span><span id="Identifier-2048"><a href="#Identifier-2048"><span class="linenos">2048</span></a>
+</span><span id="Identifier-2049"><a href="#Identifier-2049"><span class="linenos">2049</span></a> <span class="nd">@property</span>
+</span><span id="Identifier-2050"><a href="#Identifier-2050"><span class="linenos">2050</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Identifier-2051"><a href="#Identifier-2051"><span class="linenos">2051</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -30927,9 +31408,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Identifier.quoted"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.quoted-2016"><a href="#Identifier.quoted-2016"><span class="linenos">2016</span></a> <span class="nd">@property</span>
-</span><span id="Identifier.quoted-2017"><a href="#Identifier.quoted-2017"><span class="linenos">2017</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Identifier.quoted-2018"><a href="#Identifier.quoted-2018"><span class="linenos">2018</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.quoted-2041"><a href="#Identifier.quoted-2041"><span class="linenos">2041</span></a> <span class="nd">@property</span>
+</span><span id="Identifier.quoted-2042"><a href="#Identifier.quoted-2042"><span class="linenos">2042</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Identifier.quoted-2043"><a href="#Identifier.quoted-2043"><span class="linenos">2043</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">))</span>
</span></pre></div>
@@ -30945,9 +31426,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Identifier.hashable_args"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.hashable_args-2020"><a href="#Identifier.hashable_args-2020"><span class="linenos">2020</span></a> <span class="nd">@property</span>
-</span><span id="Identifier.hashable_args-2021"><a href="#Identifier.hashable_args-2021"><span class="linenos">2021</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
-</span><span id="Identifier.hashable_args-2022"><a href="#Identifier.hashable_args-2022"><span class="linenos">2022</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.hashable_args-2045"><a href="#Identifier.hashable_args-2045"><span class="linenos">2045</span></a> <span class="nd">@property</span>
+</span><span id="Identifier.hashable_args-2046"><a href="#Identifier.hashable_args-2046"><span class="linenos">2046</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="Identifier.hashable_args-2047"><a href="#Identifier.hashable_args-2047"><span class="linenos">2047</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
</span></pre></div>
@@ -30963,9 +31444,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Identifier.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.output_name-2024"><a href="#Identifier.output_name-2024"><span class="linenos">2024</span></a> <span class="nd">@property</span>
-</span><span id="Identifier.output_name-2025"><a href="#Identifier.output_name-2025"><span class="linenos">2025</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Identifier.output_name-2026"><a href="#Identifier.output_name-2026"><span class="linenos">2026</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier.output_name-2049"><a href="#Identifier.output_name-2049"><span class="linenos">2049</span></a> <span class="nd">@property</span>
+</span><span id="Identifier.output_name-2050"><a href="#Identifier.output_name-2050"><span class="linenos">2050</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Identifier.output_name-2051"><a href="#Identifier.output_name-2051"><span class="linenos">2051</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -31090,8 +31571,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Opclass"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Opclass-2030"><a href="#Opclass-2030"><span class="linenos">2030</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Opclass-2031"><a href="#Opclass-2031"><span class="linenos">2031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Opclass-2055"><a href="#Opclass-2055"><span class="linenos">2055</span></a><span class="k">class</span> <span class="nc">Opclass</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Opclass-2056"><a href="#Opclass-2056"><span class="linenos">2056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -31210,15 +31691,15 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Index"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Index-2034"><a href="#Index-2034"><span class="linenos">2034</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Index-2035"><a href="#Index-2035"><span class="linenos">2035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Index-2036"><a href="#Index-2036"><span class="linenos">2036</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Index-2037"><a href="#Index-2037"><span class="linenos">2037</span></a> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Index-2038"><a href="#Index-2038"><span class="linenos">2038</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Index-2039"><a href="#Index-2039"><span class="linenos">2039</span></a> <span class="s2">&quot;primary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Index-2040"><a href="#Index-2040"><span class="linenos">2040</span></a> <span class="s2">&quot;amp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
-</span><span id="Index-2041"><a href="#Index-2041"><span class="linenos">2041</span></a> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Index-2042"><a href="#Index-2042"><span class="linenos">2042</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Index-2059"><a href="#Index-2059"><span class="linenos">2059</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Index-2060"><a href="#Index-2060"><span class="linenos">2060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Index-2061"><a href="#Index-2061"><span class="linenos">2061</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Index-2062"><a href="#Index-2062"><span class="linenos">2062</span></a> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Index-2063"><a href="#Index-2063"><span class="linenos">2063</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Index-2064"><a href="#Index-2064"><span class="linenos">2064</span></a> <span class="s2">&quot;primary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Index-2065"><a href="#Index-2065"><span class="linenos">2065</span></a> <span class="s2">&quot;amp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
+</span><span id="Index-2066"><a href="#Index-2066"><span class="linenos">2066</span></a> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Index-2067"><a href="#Index-2067"><span class="linenos">2067</span></a> <span class="p">}</span>
</span></pre></div>
@@ -31337,16 +31818,16 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#IndexParameters"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IndexParameters-2045"><a href="#IndexParameters-2045"><span class="linenos">2045</span></a><span class="k">class</span> <span class="nc">IndexParameters</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="IndexParameters-2046"><a href="#IndexParameters-2046"><span class="linenos">2046</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="IndexParameters-2047"><a href="#IndexParameters-2047"><span class="linenos">2047</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2048"><a href="#IndexParameters-2048"><span class="linenos">2048</span></a> <span class="s2">&quot;include&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2049"><a href="#IndexParameters-2049"><span class="linenos">2049</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2050"><a href="#IndexParameters-2050"><span class="linenos">2050</span></a> <span class="s2">&quot;with_storage&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2051"><a href="#IndexParameters-2051"><span class="linenos">2051</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2052"><a href="#IndexParameters-2052"><span class="linenos">2052</span></a> <span class="s2">&quot;tablespace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2053"><a href="#IndexParameters-2053"><span class="linenos">2053</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="IndexParameters-2054"><a href="#IndexParameters-2054"><span class="linenos">2054</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IndexParameters-2070"><a href="#IndexParameters-2070"><span class="linenos">2070</span></a><span class="k">class</span> <span class="nc">IndexParameters</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="IndexParameters-2071"><a href="#IndexParameters-2071"><span class="linenos">2071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="IndexParameters-2072"><a href="#IndexParameters-2072"><span class="linenos">2072</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2073"><a href="#IndexParameters-2073"><span class="linenos">2073</span></a> <span class="s2">&quot;include&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2074"><a href="#IndexParameters-2074"><span class="linenos">2074</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2075"><a href="#IndexParameters-2075"><span class="linenos">2075</span></a> <span class="s2">&quot;with_storage&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2076"><a href="#IndexParameters-2076"><span class="linenos">2076</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2077"><a href="#IndexParameters-2077"><span class="linenos">2077</span></a> <span class="s2">&quot;tablespace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2078"><a href="#IndexParameters-2078"><span class="linenos">2078</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="IndexParameters-2079"><a href="#IndexParameters-2079"><span class="linenos">2079</span></a> <span class="p">}</span>
</span></pre></div>
@@ -31466,59 +31947,59 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-2057"><a href="#Insert-2057"><span class="linenos">2057</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
-</span><span id="Insert-2058"><a href="#Insert-2058"><span class="linenos">2058</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Insert-2059"><a href="#Insert-2059"><span class="linenos">2059</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2060"><a href="#Insert-2060"><span class="linenos">2060</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2061"><a href="#Insert-2061"><span class="linenos">2061</span></a> <span class="s2">&quot;is_function&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2062"><a href="#Insert-2062"><span class="linenos">2062</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="Insert-2063"><a href="#Insert-2063"><span class="linenos">2063</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="Insert-2064"><a href="#Insert-2064"><span class="linenos">2064</span></a> <span class="s2">&quot;conflict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2065"><a href="#Insert-2065"><span class="linenos">2065</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2066"><a href="#Insert-2066"><span class="linenos">2066</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2067"><a href="#Insert-2067"><span class="linenos">2067</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2068"><a href="#Insert-2068"><span class="linenos">2068</span></a> <span class="s2">&quot;alternative&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2069"><a href="#Insert-2069"><span class="linenos">2069</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2070"><a href="#Insert-2070"><span class="linenos">2070</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2071"><a href="#Insert-2071"><span class="linenos">2071</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2072"><a href="#Insert-2072"><span class="linenos">2072</span></a> <span class="s2">&quot;stored&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Insert-2073"><a href="#Insert-2073"><span class="linenos">2073</span></a> <span class="p">}</span>
-</span><span id="Insert-2074"><a href="#Insert-2074"><span class="linenos">2074</span></a>
-</span><span id="Insert-2075"><a href="#Insert-2075"><span class="linenos">2075</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Insert-2076"><a href="#Insert-2076"><span class="linenos">2076</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Insert-2077"><a href="#Insert-2077"><span class="linenos">2077</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert-2078"><a href="#Insert-2078"><span class="linenos">2078</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert-2079"><a href="#Insert-2079"><span class="linenos">2079</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert-2080"><a href="#Insert-2080"><span class="linenos">2080</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert-2081"><a href="#Insert-2081"><span class="linenos">2081</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert-2082"><a href="#Insert-2082"><span class="linenos">2082</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert-2083"><a href="#Insert-2083"><span class="linenos">2083</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Insert-2084"><a href="#Insert-2084"><span class="linenos">2084</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="Insert-2085"><a href="#Insert-2085"><span class="linenos">2085</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Insert-2086"><a href="#Insert-2086"><span class="linenos">2086</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Insert-2087"><a href="#Insert-2087"><span class="linenos">2087</span></a>
-</span><span id="Insert-2088"><a href="#Insert-2088"><span class="linenos">2088</span></a><span class="sd"> Example:</span>
-</span><span id="Insert-2089"><a href="#Insert-2089"><span class="linenos">2089</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
-</span><span id="Insert-2090"><a href="#Insert-2090"><span class="linenos">2090</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
-</span><span id="Insert-2091"><a href="#Insert-2091"><span class="linenos">2091</span></a>
-</span><span id="Insert-2092"><a href="#Insert-2092"><span class="linenos">2092</span></a><span class="sd"> Args:</span>
-</span><span id="Insert-2093"><a href="#Insert-2093"><span class="linenos">2093</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="Insert-2094"><a href="#Insert-2094"><span class="linenos">2094</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Insert-2095"><a href="#Insert-2095"><span class="linenos">2095</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="Insert-2096"><a href="#Insert-2096"><span class="linenos">2096</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Insert-2097"><a href="#Insert-2097"><span class="linenos">2097</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Insert-2098"><a href="#Insert-2098"><span class="linenos">2098</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Insert-2099"><a href="#Insert-2099"><span class="linenos">2099</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Insert-2100"><a href="#Insert-2100"><span class="linenos">2100</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Insert-2101"><a href="#Insert-2101"><span class="linenos">2101</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Insert-2102"><a href="#Insert-2102"><span class="linenos">2102</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Insert-2103"><a href="#Insert-2103"><span class="linenos">2103</span></a>
-</span><span id="Insert-2104"><a href="#Insert-2104"><span class="linenos">2104</span></a><span class="sd"> Returns:</span>
-</span><span id="Insert-2105"><a href="#Insert-2105"><span class="linenos">2105</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Insert-2106"><a href="#Insert-2106"><span class="linenos">2106</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Insert-2107"><a href="#Insert-2107"><span class="linenos">2107</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="Insert-2108"><a href="#Insert-2108"><span class="linenos">2108</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Insert-2109"><a href="#Insert-2109"><span class="linenos">2109</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-2082"><a href="#Insert-2082"><span class="linenos">2082</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">DDL</span><span class="p">,</span> <span class="n">DML</span><span class="p">):</span>
+</span><span id="Insert-2083"><a href="#Insert-2083"><span class="linenos">2083</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Insert-2084"><a href="#Insert-2084"><span class="linenos">2084</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2085"><a href="#Insert-2085"><span class="linenos">2085</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2086"><a href="#Insert-2086"><span class="linenos">2086</span></a> <span class="s2">&quot;is_function&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2087"><a href="#Insert-2087"><span class="linenos">2087</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2088"><a href="#Insert-2088"><span class="linenos">2088</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="Insert-2089"><a href="#Insert-2089"><span class="linenos">2089</span></a> <span class="s2">&quot;conflict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2090"><a href="#Insert-2090"><span class="linenos">2090</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2091"><a href="#Insert-2091"><span class="linenos">2091</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2092"><a href="#Insert-2092"><span class="linenos">2092</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2093"><a href="#Insert-2093"><span class="linenos">2093</span></a> <span class="s2">&quot;alternative&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2094"><a href="#Insert-2094"><span class="linenos">2094</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2095"><a href="#Insert-2095"><span class="linenos">2095</span></a> <span class="s2">&quot;ignore&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2096"><a href="#Insert-2096"><span class="linenos">2096</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2097"><a href="#Insert-2097"><span class="linenos">2097</span></a> <span class="s2">&quot;stored&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Insert-2098"><a href="#Insert-2098"><span class="linenos">2098</span></a> <span class="p">}</span>
+</span><span id="Insert-2099"><a href="#Insert-2099"><span class="linenos">2099</span></a>
+</span><span id="Insert-2100"><a href="#Insert-2100"><span class="linenos">2100</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Insert-2101"><a href="#Insert-2101"><span class="linenos">2101</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Insert-2102"><a href="#Insert-2102"><span class="linenos">2102</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert-2103"><a href="#Insert-2103"><span class="linenos">2103</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert-2104"><a href="#Insert-2104"><span class="linenos">2104</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert-2105"><a href="#Insert-2105"><span class="linenos">2105</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert-2106"><a href="#Insert-2106"><span class="linenos">2106</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert-2107"><a href="#Insert-2107"><span class="linenos">2107</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert-2108"><a href="#Insert-2108"><span class="linenos">2108</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Insert-2109"><a href="#Insert-2109"><span class="linenos">2109</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="Insert-2110"><a href="#Insert-2110"><span class="linenos">2110</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Insert-2111"><a href="#Insert-2111"><span class="linenos">2111</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Insert-2112"><a href="#Insert-2112"><span class="linenos">2112</span></a>
+</span><span id="Insert-2113"><a href="#Insert-2113"><span class="linenos">2113</span></a><span class="sd"> Example:</span>
+</span><span id="Insert-2114"><a href="#Insert-2114"><span class="linenos">2114</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
+</span><span id="Insert-2115"><a href="#Insert-2115"><span class="linenos">2115</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</span><span id="Insert-2116"><a href="#Insert-2116"><span class="linenos">2116</span></a>
+</span><span id="Insert-2117"><a href="#Insert-2117"><span class="linenos">2117</span></a><span class="sd"> Args:</span>
+</span><span id="Insert-2118"><a href="#Insert-2118"><span class="linenos">2118</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Insert-2119"><a href="#Insert-2119"><span class="linenos">2119</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Insert-2120"><a href="#Insert-2120"><span class="linenos">2120</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Insert-2121"><a href="#Insert-2121"><span class="linenos">2121</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Insert-2122"><a href="#Insert-2122"><span class="linenos">2122</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Insert-2123"><a href="#Insert-2123"><span class="linenos">2123</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Insert-2124"><a href="#Insert-2124"><span class="linenos">2124</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Insert-2125"><a href="#Insert-2125"><span class="linenos">2125</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Insert-2126"><a href="#Insert-2126"><span class="linenos">2126</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Insert-2127"><a href="#Insert-2127"><span class="linenos">2127</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Insert-2128"><a href="#Insert-2128"><span class="linenos">2128</span></a>
+</span><span id="Insert-2129"><a href="#Insert-2129"><span class="linenos">2129</span></a><span class="sd"> Returns:</span>
+</span><span id="Insert-2130"><a href="#Insert-2130"><span class="linenos">2130</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Insert-2131"><a href="#Insert-2131"><span class="linenos">2131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Insert-2132"><a href="#Insert-2132"><span class="linenos">2132</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Insert-2133"><a href="#Insert-2133"><span class="linenos">2133</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Insert-2134"><a href="#Insert-2134"><span class="linenos">2134</span></a> <span class="p">)</span>
</span></pre></div>
@@ -31528,7 +32009,7 @@ Otherwise, this resets the expression.</li>
<div class="attr variable">
<span class="name">arg_types</span> =
<input id="Insert.arg_types-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="Insert.arg_types-view-value"></label><span class="default_value">{&#39;hint&#39;: False, &#39;with&#39;: False, &#39;is_function&#39;: False, &#39;this&#39;: True, &#39;expression&#39;: False, &#39;conflict&#39;: False, &#39;returning&#39;: False, &#39;overwrite&#39;: False, &#39;exists&#39;: False, &#39;alternative&#39;: False, &#39;where&#39;: False, &#39;ignore&#39;: False, &#39;by_name&#39;: False, &#39;stored&#39;: False}</span>
+ <label class="view-value-button pdoc-button" for="Insert.arg_types-view-value"></label><span class="default_value">{&#39;hint&#39;: False, &#39;with&#39;: False, &#39;is_function&#39;: False, &#39;this&#39;: False, &#39;expression&#39;: False, &#39;conflict&#39;: False, &#39;returning&#39;: False, &#39;overwrite&#39;: False, &#39;exists&#39;: False, &#39;alternative&#39;: False, &#39;where&#39;: False, &#39;ignore&#39;: False, &#39;by_name&#39;: False, &#39;stored&#39;: False}</span>
</div>
@@ -31548,41 +32029,41 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Insert.with_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Insert.with_-2075"><a href="#Insert.with_-2075"><span class="linenos">2075</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
-</span><span id="Insert.with_-2076"><a href="#Insert.with_-2076"><span class="linenos">2076</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Insert.with_-2077"><a href="#Insert.with_-2077"><span class="linenos">2077</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert.with_-2078"><a href="#Insert.with_-2078"><span class="linenos">2078</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Insert.with_-2079"><a href="#Insert.with_-2079"><span class="linenos">2079</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert.with_-2080"><a href="#Insert.with_-2080"><span class="linenos">2080</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert.with_-2081"><a href="#Insert.with_-2081"><span class="linenos">2081</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Insert.with_-2082"><a href="#Insert.with_-2082"><span class="linenos">2082</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Insert.with_-2083"><a href="#Insert.with_-2083"><span class="linenos">2083</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Insert.with_-2084"><a href="#Insert.with_-2084"><span class="linenos">2084</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="Insert.with_-2085"><a href="#Insert.with_-2085"><span class="linenos">2085</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Insert.with_-2086"><a href="#Insert.with_-2086"><span class="linenos">2086</span></a><span class="sd"> Append to or set the common table expressions.</span>
-</span><span id="Insert.with_-2087"><a href="#Insert.with_-2087"><span class="linenos">2087</span></a>
-</span><span id="Insert.with_-2088"><a href="#Insert.with_-2088"><span class="linenos">2088</span></a><span class="sd"> Example:</span>
-</span><span id="Insert.with_-2089"><a href="#Insert.with_-2089"><span class="linenos">2089</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
-</span><span id="Insert.with_-2090"><a href="#Insert.with_-2090"><span class="linenos">2090</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
-</span><span id="Insert.with_-2091"><a href="#Insert.with_-2091"><span class="linenos">2091</span></a>
-</span><span id="Insert.with_-2092"><a href="#Insert.with_-2092"><span class="linenos">2092</span></a><span class="sd"> Args:</span>
-</span><span id="Insert.with_-2093"><a href="#Insert.with_-2093"><span class="linenos">2093</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
-</span><span id="Insert.with_-2094"><a href="#Insert.with_-2094"><span class="linenos">2094</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
-</span><span id="Insert.with_-2095"><a href="#Insert.with_-2095"><span class="linenos">2095</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
-</span><span id="Insert.with_-2096"><a href="#Insert.with_-2096"><span class="linenos">2096</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Insert.with_-2097"><a href="#Insert.with_-2097"><span class="linenos">2097</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
-</span><span id="Insert.with_-2098"><a href="#Insert.with_-2098"><span class="linenos">2098</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Insert.with_-2099"><a href="#Insert.with_-2099"><span class="linenos">2099</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Insert.with_-2100"><a href="#Insert.with_-2100"><span class="linenos">2100</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Insert.with_-2101"><a href="#Insert.with_-2101"><span class="linenos">2101</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Insert.with_-2102"><a href="#Insert.with_-2102"><span class="linenos">2102</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Insert.with_-2103"><a href="#Insert.with_-2103"><span class="linenos">2103</span></a>
-</span><span id="Insert.with_-2104"><a href="#Insert.with_-2104"><span class="linenos">2104</span></a><span class="sd"> Returns:</span>
-</span><span id="Insert.with_-2105"><a href="#Insert.with_-2105"><span class="linenos">2105</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Insert.with_-2106"><a href="#Insert.with_-2106"><span class="linenos">2106</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Insert.with_-2107"><a href="#Insert.with_-2107"><span class="linenos">2107</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
-</span><span id="Insert.with_-2108"><a href="#Insert.with_-2108"><span class="linenos">2108</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Insert.with_-2109"><a href="#Insert.with_-2109"><span class="linenos">2109</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Insert.with_-2100"><a href="#Insert.with_-2100"><span class="linenos">2100</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
+</span><span id="Insert.with_-2101"><a href="#Insert.with_-2101"><span class="linenos">2101</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Insert.with_-2102"><a href="#Insert.with_-2102"><span class="linenos">2102</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert.with_-2103"><a href="#Insert.with_-2103"><span class="linenos">2103</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Insert.with_-2104"><a href="#Insert.with_-2104"><span class="linenos">2104</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert.with_-2105"><a href="#Insert.with_-2105"><span class="linenos">2105</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert.with_-2106"><a href="#Insert.with_-2106"><span class="linenos">2106</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Insert.with_-2107"><a href="#Insert.with_-2107"><span class="linenos">2107</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Insert.with_-2108"><a href="#Insert.with_-2108"><span class="linenos">2108</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Insert.with_-2109"><a href="#Insert.with_-2109"><span class="linenos">2109</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="Insert.with_-2110"><a href="#Insert.with_-2110"><span class="linenos">2110</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Insert.with_-2111"><a href="#Insert.with_-2111"><span class="linenos">2111</span></a><span class="sd"> Append to or set the common table expressions.</span>
+</span><span id="Insert.with_-2112"><a href="#Insert.with_-2112"><span class="linenos">2112</span></a>
+</span><span id="Insert.with_-2113"><a href="#Insert.with_-2113"><span class="linenos">2113</span></a><span class="sd"> Example:</span>
+</span><span id="Insert.with_-2114"><a href="#Insert.with_-2114"><span class="linenos">2114</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
+</span><span id="Insert.with_-2115"><a href="#Insert.with_-2115"><span class="linenos">2115</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
+</span><span id="Insert.with_-2116"><a href="#Insert.with_-2116"><span class="linenos">2116</span></a>
+</span><span id="Insert.with_-2117"><a href="#Insert.with_-2117"><span class="linenos">2117</span></a><span class="sd"> Args:</span>
+</span><span id="Insert.with_-2118"><a href="#Insert.with_-2118"><span class="linenos">2118</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
+</span><span id="Insert.with_-2119"><a href="#Insert.with_-2119"><span class="linenos">2119</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
+</span><span id="Insert.with_-2120"><a href="#Insert.with_-2120"><span class="linenos">2120</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
+</span><span id="Insert.with_-2121"><a href="#Insert.with_-2121"><span class="linenos">2121</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Insert.with_-2122"><a href="#Insert.with_-2122"><span class="linenos">2122</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
+</span><span id="Insert.with_-2123"><a href="#Insert.with_-2123"><span class="linenos">2123</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Insert.with_-2124"><a href="#Insert.with_-2124"><span class="linenos">2124</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Insert.with_-2125"><a href="#Insert.with_-2125"><span class="linenos">2125</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Insert.with_-2126"><a href="#Insert.with_-2126"><span class="linenos">2126</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Insert.with_-2127"><a href="#Insert.with_-2127"><span class="linenos">2127</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Insert.with_-2128"><a href="#Insert.with_-2128"><span class="linenos">2128</span></a>
+</span><span id="Insert.with_-2129"><a href="#Insert.with_-2129"><span class="linenos">2129</span></a><span class="sd"> Returns:</span>
+</span><span id="Insert.with_-2130"><a href="#Insert.with_-2130"><span class="linenos">2130</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Insert.with_-2131"><a href="#Insert.with_-2131"><span class="linenos">2131</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Insert.with_-2132"><a href="#Insert.with_-2132"><span class="linenos">2132</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
+</span><span id="Insert.with_-2133"><a href="#Insert.with_-2133"><span class="linenos">2133</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Insert.with_-2134"><a href="#Insert.with_-2134"><span class="linenos">2134</span></a> <span class="p">)</span>
</span></pre></div>
@@ -31733,14 +32214,14 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#OnConflict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-2112"><a href="#OnConflict-2112"><span class="linenos">2112</span></a><span class="k">class</span> <span class="nc">OnConflict</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="OnConflict-2113"><a href="#OnConflict-2113"><span class="linenos">2113</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="OnConflict-2114"><a href="#OnConflict-2114"><span class="linenos">2114</span></a> <span class="s2">&quot;duplicate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="OnConflict-2115"><a href="#OnConflict-2115"><span class="linenos">2115</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="OnConflict-2116"><a href="#OnConflict-2116"><span class="linenos">2116</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="OnConflict-2117"><a href="#OnConflict-2117"><span class="linenos">2117</span></a> <span class="s2">&quot;conflict_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="OnConflict-2118"><a href="#OnConflict-2118"><span class="linenos">2118</span></a> <span class="s2">&quot;constraint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="OnConflict-2119"><a href="#OnConflict-2119"><span class="linenos">2119</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-2137"><a href="#OnConflict-2137"><span class="linenos">2137</span></a><span class="k">class</span> <span class="nc">OnConflict</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="OnConflict-2138"><a href="#OnConflict-2138"><span class="linenos">2138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="OnConflict-2139"><a href="#OnConflict-2139"><span class="linenos">2139</span></a> <span class="s2">&quot;duplicate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="OnConflict-2140"><a href="#OnConflict-2140"><span class="linenos">2140</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="OnConflict-2141"><a href="#OnConflict-2141"><span class="linenos">2141</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="OnConflict-2142"><a href="#OnConflict-2142"><span class="linenos">2142</span></a> <span class="s2">&quot;conflict_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="OnConflict-2143"><a href="#OnConflict-2143"><span class="linenos">2143</span></a> <span class="s2">&quot;constraint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="OnConflict-2144"><a href="#OnConflict-2144"><span class="linenos">2144</span></a> <span class="p">}</span>
</span></pre></div>
@@ -31860,8 +32341,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Returning"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-2122"><a href="#Returning-2122"><span class="linenos">2122</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Returning-2123"><a href="#Returning-2123"><span class="linenos">2123</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;into&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="Returning-2147"><a href="#Returning-2147"><span class="linenos">2147</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Returning-2148"><a href="#Returning-2148"><span class="linenos">2148</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;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -31980,8 +32461,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Introducer"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-2127"><a href="#Introducer-2127"><span class="linenos">2127</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Introducer-2128"><a href="#Introducer-2128"><span class="linenos">2128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Introducer-2152"><a href="#Introducer-2152"><span class="linenos">2152</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Introducer-2153"><a href="#Introducer-2153"><span class="linenos">2153</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -32100,8 +32581,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#National"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="National-2132"><a href="#National-2132"><span class="linenos">2132</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="National-2133"><a href="#National-2133"><span class="linenos">2133</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="National-2157"><a href="#National-2157"><span class="linenos">2157</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="National-2158"><a href="#National-2158"><span class="linenos">2158</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -32209,16 +32690,16 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#LoadData"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-2136"><a href="#LoadData-2136"><span class="linenos">2136</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="LoadData-2137"><a href="#LoadData-2137"><span class="linenos">2137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LoadData-2138"><a href="#LoadData-2138"><span class="linenos">2138</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="LoadData-2139"><a href="#LoadData-2139"><span class="linenos">2139</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LoadData-2140"><a href="#LoadData-2140"><span class="linenos">2140</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LoadData-2141"><a href="#LoadData-2141"><span class="linenos">2141</span></a> <span class="s2">&quot;inpath&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="LoadData-2142"><a href="#LoadData-2142"><span class="linenos">2142</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LoadData-2143"><a href="#LoadData-2143"><span class="linenos">2143</span></a> <span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LoadData-2144"><a href="#LoadData-2144"><span class="linenos">2144</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LoadData-2145"><a href="#LoadData-2145"><span class="linenos">2145</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-2161"><a href="#LoadData-2161"><span class="linenos">2161</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="LoadData-2162"><a href="#LoadData-2162"><span class="linenos">2162</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LoadData-2163"><a href="#LoadData-2163"><span class="linenos">2163</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="LoadData-2164"><a href="#LoadData-2164"><span class="linenos">2164</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LoadData-2165"><a href="#LoadData-2165"><span class="linenos">2165</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LoadData-2166"><a href="#LoadData-2166"><span class="linenos">2166</span></a> <span class="s2">&quot;inpath&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="LoadData-2167"><a href="#LoadData-2167"><span class="linenos">2167</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LoadData-2168"><a href="#LoadData-2168"><span class="linenos">2168</span></a> <span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LoadData-2169"><a href="#LoadData-2169"><span class="linenos">2169</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LoadData-2170"><a href="#LoadData-2170"><span class="linenos">2170</span></a> <span class="p">}</span>
</span></pre></div>
@@ -32338,8 +32819,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Partition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-2148"><a href="#Partition-2148"><span class="linenos">2148</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Partition-2149"><a href="#Partition-2149"><span class="linenos">2149</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-2173"><a href="#Partition-2173"><span class="linenos">2173</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Partition-2174"><a href="#Partition-2174"><span class="linenos">2174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -32458,8 +32939,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#PartitionRange"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionRange-2152"><a href="#PartitionRange-2152"><span class="linenos">2152</span></a><span class="k">class</span> <span class="nc">PartitionRange</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PartitionRange-2153"><a href="#PartitionRange-2153"><span class="linenos">2153</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="PartitionRange-2177"><a href="#PartitionRange-2177"><span class="linenos">2177</span></a><span class="k">class</span> <span class="nc">PartitionRange</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PartitionRange-2178"><a href="#PartitionRange-2178"><span class="linenos">2178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -32578,13 +33059,13 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Fetch"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-2156"><a href="#Fetch-2156"><span class="linenos">2156</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Fetch-2157"><a href="#Fetch-2157"><span class="linenos">2157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Fetch-2158"><a href="#Fetch-2158"><span class="linenos">2158</span></a> <span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Fetch-2159"><a href="#Fetch-2159"><span class="linenos">2159</span></a> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Fetch-2160"><a href="#Fetch-2160"><span class="linenos">2160</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Fetch-2161"><a href="#Fetch-2161"><span class="linenos">2161</span></a> <span class="s2">&quot;with_ties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Fetch-2162"><a href="#Fetch-2162"><span class="linenos">2162</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-2181"><a href="#Fetch-2181"><span class="linenos">2181</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Fetch-2182"><a href="#Fetch-2182"><span class="linenos">2182</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Fetch-2183"><a href="#Fetch-2183"><span class="linenos">2183</span></a> <span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Fetch-2184"><a href="#Fetch-2184"><span class="linenos">2184</span></a> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Fetch-2185"><a href="#Fetch-2185"><span class="linenos">2185</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Fetch-2186"><a href="#Fetch-2186"><span class="linenos">2186</span></a> <span class="s2">&quot;with_ties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Fetch-2187"><a href="#Fetch-2187"><span class="linenos">2187</span></a> <span class="p">}</span>
</span></pre></div>
@@ -32703,15 +33184,15 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Group"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Group-2165"><a href="#Group-2165"><span class="linenos">2165</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Group-2166"><a href="#Group-2166"><span class="linenos">2166</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Group-2167"><a href="#Group-2167"><span class="linenos">2167</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="Group-2168"><a href="#Group-2168"><span class="linenos">2168</span></a> <span class="s2">&quot;grouping_sets&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-2169"><a href="#Group-2169"><span class="linenos">2169</span></a> <span class="s2">&quot;cube&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-2170"><a href="#Group-2170"><span class="linenos">2170</span></a> <span class="s2">&quot;rollup&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-2171"><a href="#Group-2171"><span class="linenos">2171</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-2172"><a href="#Group-2172"><span class="linenos">2172</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Group-2173"><a href="#Group-2173"><span class="linenos">2173</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Group-2190"><a href="#Group-2190"><span class="linenos">2190</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Group-2191"><a href="#Group-2191"><span class="linenos">2191</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Group-2192"><a href="#Group-2192"><span class="linenos">2192</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="Group-2193"><a href="#Group-2193"><span class="linenos">2193</span></a> <span class="s2">&quot;grouping_sets&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-2194"><a href="#Group-2194"><span class="linenos">2194</span></a> <span class="s2">&quot;cube&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-2195"><a href="#Group-2195"><span class="linenos">2195</span></a> <span class="s2">&quot;rollup&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-2196"><a href="#Group-2196"><span class="linenos">2196</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-2197"><a href="#Group-2197"><span class="linenos">2197</span></a> <span class="s2">&quot;all&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Group-2198"><a href="#Group-2198"><span class="linenos">2198</span></a> <span class="p">}</span>
</span></pre></div>
@@ -32831,8 +33312,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Lambda"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-2176"><a href="#Lambda-2176"><span class="linenos">2176</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Lambda-2177"><a href="#Lambda-2177"><span class="linenos">2177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Lambda-2201"><a href="#Lambda-2201"><span class="linenos">2201</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Lambda-2202"><a href="#Lambda-2202"><span class="linenos">2202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -32951,8 +33432,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Limit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-2180"><a href="#Limit-2180"><span class="linenos">2180</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Limit-2181"><a href="#Limit-2181"><span class="linenos">2181</span></a> <span class="n">arg_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">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-2205"><a href="#Limit-2205"><span class="linenos">2205</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Limit-2206"><a href="#Limit-2206"><span class="linenos">2206</span></a> <span class="n">arg_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">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -33071,24 +33552,24 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-2184"><a href="#Literal-2184"><span class="linenos">2184</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Literal-2185"><a href="#Literal-2185"><span class="linenos">2185</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="Literal-2186"><a href="#Literal-2186"><span class="linenos">2186</span></a>
-</span><span id="Literal-2187"><a href="#Literal-2187"><span class="linenos">2187</span></a> <span class="nd">@property</span>
-</span><span id="Literal-2188"><a href="#Literal-2188"><span class="linenos">2188</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
-</span><span id="Literal-2189"><a href="#Literal-2189"><span class="linenos">2189</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
-</span><span id="Literal-2190"><a href="#Literal-2190"><span class="linenos">2190</span></a>
-</span><span id="Literal-2191"><a href="#Literal-2191"><span class="linenos">2191</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-2192"><a href="#Literal-2192"><span class="linenos">2192</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
-</span><span id="Literal-2193"><a href="#Literal-2193"><span class="linenos">2193</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="Literal-2194"><a href="#Literal-2194"><span class="linenos">2194</span></a>
-</span><span id="Literal-2195"><a href="#Literal-2195"><span class="linenos">2195</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal-2196"><a href="#Literal-2196"><span class="linenos">2196</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
-</span><span id="Literal-2197"><a href="#Literal-2197"><span class="linenos">2197</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="Literal-2198"><a href="#Literal-2198"><span class="linenos">2198</span></a>
-</span><span id="Literal-2199"><a href="#Literal-2199"><span class="linenos">2199</span></a> <span class="nd">@property</span>
-</span><span id="Literal-2200"><a href="#Literal-2200"><span class="linenos">2200</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Literal-2201"><a href="#Literal-2201"><span class="linenos">2201</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-2209"><a href="#Literal-2209"><span class="linenos">2209</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Literal-2210"><a href="#Literal-2210"><span class="linenos">2210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="Literal-2211"><a href="#Literal-2211"><span class="linenos">2211</span></a>
+</span><span id="Literal-2212"><a href="#Literal-2212"><span class="linenos">2212</span></a> <span class="nd">@property</span>
+</span><span id="Literal-2213"><a href="#Literal-2213"><span class="linenos">2213</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="Literal-2214"><a href="#Literal-2214"><span class="linenos">2214</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
+</span><span id="Literal-2215"><a href="#Literal-2215"><span class="linenos">2215</span></a>
+</span><span id="Literal-2216"><a href="#Literal-2216"><span class="linenos">2216</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-2217"><a href="#Literal-2217"><span class="linenos">2217</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
+</span><span id="Literal-2218"><a href="#Literal-2218"><span class="linenos">2218</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="Literal-2219"><a href="#Literal-2219"><span class="linenos">2219</span></a>
+</span><span id="Literal-2220"><a href="#Literal-2220"><span class="linenos">2220</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal-2221"><a href="#Literal-2221"><span class="linenos">2221</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
+</span><span id="Literal-2222"><a href="#Literal-2222"><span class="linenos">2222</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="Literal-2223"><a href="#Literal-2223"><span class="linenos">2223</span></a>
+</span><span id="Literal-2224"><a href="#Literal-2224"><span class="linenos">2224</span></a> <span class="nd">@property</span>
+</span><span id="Literal-2225"><a href="#Literal-2225"><span class="linenos">2225</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Literal-2226"><a href="#Literal-2226"><span class="linenos">2226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -33115,9 +33596,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal.hashable_args"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.hashable_args-2187"><a href="#Literal.hashable_args-2187"><span class="linenos">2187</span></a> <span class="nd">@property</span>
-</span><span id="Literal.hashable_args-2188"><a href="#Literal.hashable_args-2188"><span class="linenos">2188</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
-</span><span id="Literal.hashable_args-2189"><a href="#Literal.hashable_args-2189"><span class="linenos">2189</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.hashable_args-2212"><a href="#Literal.hashable_args-2212"><span class="linenos">2212</span></a> <span class="nd">@property</span>
+</span><span id="Literal.hashable_args-2213"><a href="#Literal.hashable_args-2213"><span class="linenos">2213</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
+</span><span id="Literal.hashable_args-2214"><a href="#Literal.hashable_args-2214"><span class="linenos">2214</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;is_string&quot;</span><span class="p">))</span>
</span></pre></div>
@@ -33136,9 +33617,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal.number"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-2191"><a href="#Literal.number-2191"><span class="linenos">2191</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.number-2192"><a href="#Literal.number-2192"><span class="linenos">2192</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
-</span><span id="Literal.number-2193"><a href="#Literal.number-2193"><span class="linenos">2193</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-2216"><a href="#Literal.number-2216"><span class="linenos">2216</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.number-2217"><a href="#Literal.number-2217"><span class="linenos">2217</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
+</span><span id="Literal.number-2218"><a href="#Literal.number-2218"><span class="linenos">2218</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span></pre></div>
@@ -33157,9 +33638,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal.string"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-2195"><a href="#Literal.string-2195"><span class="linenos">2195</span></a> <span class="nd">@classmethod</span>
-</span><span id="Literal.string-2196"><a href="#Literal.string-2196"><span class="linenos">2196</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
-</span><span id="Literal.string-2197"><a href="#Literal.string-2197"><span class="linenos">2197</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-2220"><a href="#Literal.string-2220"><span class="linenos">2220</span></a> <span class="nd">@classmethod</span>
+</span><span id="Literal.string-2221"><a href="#Literal.string-2221"><span class="linenos">2221</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
+</span><span id="Literal.string-2222"><a href="#Literal.string-2222"><span class="linenos">2222</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></pre></div>
@@ -33175,9 +33656,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Literal.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.output_name-2199"><a href="#Literal.output_name-2199"><span class="linenos">2199</span></a> <span class="nd">@property</span>
-</span><span id="Literal.output_name-2200"><a href="#Literal.output_name-2200"><span class="linenos">2200</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Literal.output_name-2201"><a href="#Literal.output_name-2201"><span class="linenos">2201</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.output_name-2224"><a href="#Literal.output_name-2224"><span class="linenos">2224</span></a> <span class="nd">@property</span>
+</span><span id="Literal.output_name-2225"><a href="#Literal.output_name-2225"><span class="linenos">2225</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Literal.output_name-2226"><a href="#Literal.output_name-2226"><span class="linenos">2226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -33302,125 +33783,125 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join-2204"><a href="#Join-2204"><span class="linenos">2204</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Join-2205"><a href="#Join-2205"><span class="linenos">2205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Join-2206"><a href="#Join-2206"><span class="linenos">2206</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="Join-2207"><a href="#Join-2207"><span class="linenos">2207</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2208"><a href="#Join-2208"><span class="linenos">2208</span></a> <span class="s2">&quot;side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2209"><a href="#Join-2209"><span class="linenos">2209</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2210"><a href="#Join-2210"><span class="linenos">2210</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2211"><a href="#Join-2211"><span class="linenos">2211</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2212"><a href="#Join-2212"><span class="linenos">2212</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2213"><a href="#Join-2213"><span class="linenos">2213</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Join-2214"><a href="#Join-2214"><span class="linenos">2214</span></a> <span class="s2">&quot;match_condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Snowflake</span>
-</span><span id="Join-2215"><a href="#Join-2215"><span class="linenos">2215</span></a> <span class="p">}</span>
-</span><span id="Join-2216"><a href="#Join-2216"><span class="linenos">2216</span></a>
-</span><span id="Join-2217"><a href="#Join-2217"><span class="linenos">2217</span></a> <span class="nd">@property</span>
-</span><span id="Join-2218"><a href="#Join-2218"><span class="linenos">2218</span></a> <span class="k">def</span> <span class="nf">method</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="Join-2219"><a href="#Join-2219"><span class="linenos">2219</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="Join-2220"><a href="#Join-2220"><span class="linenos">2220</span></a>
-</span><span id="Join-2221"><a href="#Join-2221"><span class="linenos">2221</span></a> <span class="nd">@property</span>
-</span><span id="Join-2222"><a href="#Join-2222"><span class="linenos">2222</span></a> <span class="k">def</span> <span class="nf">kind</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="Join-2223"><a href="#Join-2223"><span class="linenos">2223</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="Join-2224"><a href="#Join-2224"><span class="linenos">2224</span></a>
-</span><span id="Join-2225"><a href="#Join-2225"><span class="linenos">2225</span></a> <span class="nd">@property</span>
-</span><span id="Join-2226"><a href="#Join-2226"><span class="linenos">2226</span></a> <span class="k">def</span> <span class="nf">side</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="Join-2227"><a href="#Join-2227"><span class="linenos">2227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="Join-2228"><a href="#Join-2228"><span class="linenos">2228</span></a>
-</span><span id="Join-2229"><a href="#Join-2229"><span class="linenos">2229</span></a> <span class="nd">@property</span>
-</span><span id="Join-2230"><a href="#Join-2230"><span class="linenos">2230</span></a> <span class="k">def</span> <span class="nf">hint</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="Join-2231"><a href="#Join-2231"><span class="linenos">2231</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="Join-2232"><a href="#Join-2232"><span class="linenos">2232</span></a>
-</span><span id="Join-2233"><a href="#Join-2233"><span class="linenos">2233</span></a> <span class="nd">@property</span>
-</span><span id="Join-2234"><a href="#Join-2234"><span class="linenos">2234</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join-2235"><a href="#Join-2235"><span class="linenos">2235</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">alias_or_name</span>
-</span><span id="Join-2236"><a href="#Join-2236"><span class="linenos">2236</span></a>
-</span><span id="Join-2237"><a href="#Join-2237"><span class="linenos">2237</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
-</span><span id="Join-2238"><a href="#Join-2238"><span class="linenos">2238</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-2239"><a href="#Join-2239"><span class="linenos">2239</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join-2240"><a href="#Join-2240"><span class="linenos">2240</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-2241"><a href="#Join-2241"><span class="linenos">2241</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="Join-2242"><a href="#Join-2242"><span class="linenos">2242</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-2243"><a href="#Join-2243"><span class="linenos">2243</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-2244"><a href="#Join-2244"><span class="linenos">2244</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join-2245"><a href="#Join-2245"><span class="linenos">2245</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-2246"><a href="#Join-2246"><span class="linenos">2246</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join-2247"><a href="#Join-2247"><span class="linenos">2247</span></a>
-</span><span id="Join-2248"><a href="#Join-2248"><span class="linenos">2248</span></a><span class="sd"> Example:</span>
-</span><span id="Join-2249"><a href="#Join-2249"><span class="linenos">2249</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-2250"><a href="#Join-2250"><span class="linenos">2250</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
-</span><span id="Join-2251"><a href="#Join-2251"><span class="linenos">2251</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join-2252"><a href="#Join-2252"><span class="linenos">2252</span></a>
-</span><span id="Join-2253"><a href="#Join-2253"><span class="linenos">2253</span></a><span class="sd"> Args:</span>
-</span><span id="Join-2254"><a href="#Join-2254"><span class="linenos">2254</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join-2255"><a href="#Join-2255"><span class="linenos">2255</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-2256"><a href="#Join-2256"><span class="linenos">2256</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join-2257"><a href="#Join-2257"><span class="linenos">2257</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join-2258"><a href="#Join-2258"><span class="linenos">2258</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-2259"><a href="#Join-2259"><span class="linenos">2259</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join-2260"><a href="#Join-2260"><span class="linenos">2260</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-2261"><a href="#Join-2261"><span class="linenos">2261</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join-2262"><a href="#Join-2262"><span class="linenos">2262</span></a>
-</span><span id="Join-2263"><a href="#Join-2263"><span class="linenos">2263</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-2264"><a href="#Join-2264"><span class="linenos">2264</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join-2265"><a href="#Join-2265"><span class="linenos">2265</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-2266"><a href="#Join-2266"><span class="linenos">2266</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Join-2267"><a href="#Join-2267"><span class="linenos">2267</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-2268"><a href="#Join-2268"><span class="linenos">2268</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-2269"><a href="#Join-2269"><span class="linenos">2269</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
-</span><span id="Join-2270"><a href="#Join-2270"><span class="linenos">2270</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-2271"><a href="#Join-2271"><span class="linenos">2271</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-2272"><a href="#Join-2272"><span class="linenos">2272</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-2273"><a href="#Join-2273"><span class="linenos">2273</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-2274"><a href="#Join-2274"><span class="linenos">2274</span></a> <span class="p">)</span>
-</span><span id="Join-2275"><a href="#Join-2275"><span class="linenos">2275</span></a>
-</span><span id="Join-2276"><a href="#Join-2276"><span class="linenos">2276</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
-</span><span id="Join-2277"><a href="#Join-2277"><span class="linenos">2277</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Join-2278"><a href="#Join-2278"><span class="linenos">2278</span></a>
-</span><span id="Join-2279"><a href="#Join-2279"><span class="linenos">2279</span></a> <span class="k">return</span> <span class="n">join</span>
-</span><span id="Join-2280"><a href="#Join-2280"><span class="linenos">2280</span></a>
-</span><span id="Join-2281"><a href="#Join-2281"><span class="linenos">2281</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
-</span><span id="Join-2282"><a href="#Join-2282"><span class="linenos">2282</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-2283"><a href="#Join-2283"><span class="linenos">2283</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join-2284"><a href="#Join-2284"><span class="linenos">2284</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-2285"><a href="#Join-2285"><span class="linenos">2285</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="Join-2286"><a href="#Join-2286"><span class="linenos">2286</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join-2287"><a href="#Join-2287"><span class="linenos">2287</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-2288"><a href="#Join-2288"><span class="linenos">2288</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join-2289"><a href="#Join-2289"><span class="linenos">2289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join-2290"><a href="#Join-2290"><span class="linenos">2290</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join-2291"><a href="#Join-2291"><span class="linenos">2291</span></a>
-</span><span id="Join-2292"><a href="#Join-2292"><span class="linenos">2292</span></a><span class="sd"> Example:</span>
-</span><span id="Join-2293"><a href="#Join-2293"><span class="linenos">2293</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join-2294"><a href="#Join-2294"><span class="linenos">2294</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
-</span><span id="Join-2295"><a href="#Join-2295"><span class="linenos">2295</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join-2296"><a href="#Join-2296"><span class="linenos">2296</span></a>
-</span><span id="Join-2297"><a href="#Join-2297"><span class="linenos">2297</span></a><span class="sd"> Args:</span>
-</span><span id="Join-2298"><a href="#Join-2298"><span class="linenos">2298</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join-2299"><a href="#Join-2299"><span class="linenos">2299</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join-2300"><a href="#Join-2300"><span class="linenos">2300</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join-2301"><a href="#Join-2301"><span class="linenos">2301</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join-2302"><a href="#Join-2302"><span class="linenos">2302</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join-2303"><a href="#Join-2303"><span class="linenos">2303</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join-2304"><a href="#Join-2304"><span class="linenos">2304</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join-2229"><a href="#Join-2229"><span class="linenos">2229</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Join-2230"><a href="#Join-2230"><span class="linenos">2230</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Join-2231"><a href="#Join-2231"><span class="linenos">2231</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="Join-2232"><a href="#Join-2232"><span class="linenos">2232</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2233"><a href="#Join-2233"><span class="linenos">2233</span></a> <span class="s2">&quot;side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2234"><a href="#Join-2234"><span class="linenos">2234</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2235"><a href="#Join-2235"><span class="linenos">2235</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2236"><a href="#Join-2236"><span class="linenos">2236</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2237"><a href="#Join-2237"><span class="linenos">2237</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2238"><a href="#Join-2238"><span class="linenos">2238</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Join-2239"><a href="#Join-2239"><span class="linenos">2239</span></a> <span class="s2">&quot;match_condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Snowflake</span>
+</span><span id="Join-2240"><a href="#Join-2240"><span class="linenos">2240</span></a> <span class="p">}</span>
+</span><span id="Join-2241"><a href="#Join-2241"><span class="linenos">2241</span></a>
+</span><span id="Join-2242"><a href="#Join-2242"><span class="linenos">2242</span></a> <span class="nd">@property</span>
+</span><span id="Join-2243"><a href="#Join-2243"><span class="linenos">2243</span></a> <span class="k">def</span> <span class="nf">method</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="Join-2244"><a href="#Join-2244"><span class="linenos">2244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="Join-2245"><a href="#Join-2245"><span class="linenos">2245</span></a>
+</span><span id="Join-2246"><a href="#Join-2246"><span class="linenos">2246</span></a> <span class="nd">@property</span>
+</span><span id="Join-2247"><a href="#Join-2247"><span class="linenos">2247</span></a> <span class="k">def</span> <span class="nf">kind</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="Join-2248"><a href="#Join-2248"><span class="linenos">2248</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="Join-2249"><a href="#Join-2249"><span class="linenos">2249</span></a>
+</span><span id="Join-2250"><a href="#Join-2250"><span class="linenos">2250</span></a> <span class="nd">@property</span>
+</span><span id="Join-2251"><a href="#Join-2251"><span class="linenos">2251</span></a> <span class="k">def</span> <span class="nf">side</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="Join-2252"><a href="#Join-2252"><span class="linenos">2252</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="Join-2253"><a href="#Join-2253"><span class="linenos">2253</span></a>
+</span><span id="Join-2254"><a href="#Join-2254"><span class="linenos">2254</span></a> <span class="nd">@property</span>
+</span><span id="Join-2255"><a href="#Join-2255"><span class="linenos">2255</span></a> <span class="k">def</span> <span class="nf">hint</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="Join-2256"><a href="#Join-2256"><span class="linenos">2256</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="Join-2257"><a href="#Join-2257"><span class="linenos">2257</span></a>
+</span><span id="Join-2258"><a href="#Join-2258"><span class="linenos">2258</span></a> <span class="nd">@property</span>
+</span><span id="Join-2259"><a href="#Join-2259"><span class="linenos">2259</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join-2260"><a href="#Join-2260"><span class="linenos">2260</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">alias_or_name</span>
+</span><span id="Join-2261"><a href="#Join-2261"><span class="linenos">2261</span></a>
+</span><span id="Join-2262"><a href="#Join-2262"><span class="linenos">2262</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="Join-2263"><a href="#Join-2263"><span class="linenos">2263</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-2264"><a href="#Join-2264"><span class="linenos">2264</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join-2265"><a href="#Join-2265"><span class="linenos">2265</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-2266"><a href="#Join-2266"><span class="linenos">2266</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="Join-2267"><a href="#Join-2267"><span class="linenos">2267</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-2268"><a href="#Join-2268"><span class="linenos">2268</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-2269"><a href="#Join-2269"><span class="linenos">2269</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join-2270"><a href="#Join-2270"><span class="linenos">2270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-2271"><a href="#Join-2271"><span class="linenos">2271</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join-2272"><a href="#Join-2272"><span class="linenos">2272</span></a>
+</span><span id="Join-2273"><a href="#Join-2273"><span class="linenos">2273</span></a><span class="sd"> Example:</span>
+</span><span id="Join-2274"><a href="#Join-2274"><span class="linenos">2274</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-2275"><a href="#Join-2275"><span class="linenos">2275</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
+</span><span id="Join-2276"><a href="#Join-2276"><span class="linenos">2276</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="Join-2277"><a href="#Join-2277"><span class="linenos">2277</span></a>
+</span><span id="Join-2278"><a href="#Join-2278"><span class="linenos">2278</span></a><span class="sd"> Args:</span>
+</span><span id="Join-2279"><a href="#Join-2279"><span class="linenos">2279</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join-2280"><a href="#Join-2280"><span class="linenos">2280</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-2281"><a href="#Join-2281"><span class="linenos">2281</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join-2282"><a href="#Join-2282"><span class="linenos">2282</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join-2283"><a href="#Join-2283"><span class="linenos">2283</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-2284"><a href="#Join-2284"><span class="linenos">2284</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join-2285"><a href="#Join-2285"><span class="linenos">2285</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-2286"><a href="#Join-2286"><span class="linenos">2286</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join-2287"><a href="#Join-2287"><span class="linenos">2287</span></a>
+</span><span id="Join-2288"><a href="#Join-2288"><span class="linenos">2288</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-2289"><a href="#Join-2289"><span class="linenos">2289</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join-2290"><a href="#Join-2290"><span class="linenos">2290</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-2291"><a href="#Join-2291"><span class="linenos">2291</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Join-2292"><a href="#Join-2292"><span class="linenos">2292</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-2293"><a href="#Join-2293"><span class="linenos">2293</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-2294"><a href="#Join-2294"><span class="linenos">2294</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
+</span><span id="Join-2295"><a href="#Join-2295"><span class="linenos">2295</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-2296"><a href="#Join-2296"><span class="linenos">2296</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-2297"><a href="#Join-2297"><span class="linenos">2297</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-2298"><a href="#Join-2298"><span class="linenos">2298</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-2299"><a href="#Join-2299"><span class="linenos">2299</span></a> <span class="p">)</span>
+</span><span id="Join-2300"><a href="#Join-2300"><span class="linenos">2300</span></a>
+</span><span id="Join-2301"><a href="#Join-2301"><span class="linenos">2301</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
+</span><span id="Join-2302"><a href="#Join-2302"><span class="linenos">2302</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Join-2303"><a href="#Join-2303"><span class="linenos">2303</span></a>
+</span><span id="Join-2304"><a href="#Join-2304"><span class="linenos">2304</span></a> <span class="k">return</span> <span class="n">join</span>
</span><span id="Join-2305"><a href="#Join-2305"><span class="linenos">2305</span></a>
-</span><span id="Join-2306"><a href="#Join-2306"><span class="linenos">2306</span></a><span class="sd"> Returns:</span>
-</span><span id="Join-2307"><a href="#Join-2307"><span class="linenos">2307</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join-2308"><a href="#Join-2308"><span class="linenos">2308</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join-2309"><a href="#Join-2309"><span class="linenos">2309</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Join-2310"><a href="#Join-2310"><span class="linenos">2310</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join-2311"><a href="#Join-2311"><span class="linenos">2311</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join-2312"><a href="#Join-2312"><span class="linenos">2312</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
-</span><span id="Join-2313"><a href="#Join-2313"><span class="linenos">2313</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join-2314"><a href="#Join-2314"><span class="linenos">2314</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join-2315"><a href="#Join-2315"><span class="linenos">2315</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join-2316"><a href="#Join-2316"><span class="linenos">2316</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join-2317"><a href="#Join-2317"><span class="linenos">2317</span></a> <span class="p">)</span>
-</span><span id="Join-2318"><a href="#Join-2318"><span class="linenos">2318</span></a>
-</span><span id="Join-2319"><a href="#Join-2319"><span class="linenos">2319</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
-</span><span id="Join-2320"><a href="#Join-2320"><span class="linenos">2320</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Join-2306"><a href="#Join-2306"><span class="linenos">2306</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="Join-2307"><a href="#Join-2307"><span class="linenos">2307</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-2308"><a href="#Join-2308"><span class="linenos">2308</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join-2309"><a href="#Join-2309"><span class="linenos">2309</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-2310"><a href="#Join-2310"><span class="linenos">2310</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="Join-2311"><a href="#Join-2311"><span class="linenos">2311</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join-2312"><a href="#Join-2312"><span class="linenos">2312</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-2313"><a href="#Join-2313"><span class="linenos">2313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join-2314"><a href="#Join-2314"><span class="linenos">2314</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join-2315"><a href="#Join-2315"><span class="linenos">2315</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join-2316"><a href="#Join-2316"><span class="linenos">2316</span></a>
+</span><span id="Join-2317"><a href="#Join-2317"><span class="linenos">2317</span></a><span class="sd"> Example:</span>
+</span><span id="Join-2318"><a href="#Join-2318"><span class="linenos">2318</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join-2319"><a href="#Join-2319"><span class="linenos">2319</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
+</span><span id="Join-2320"><a href="#Join-2320"><span class="linenos">2320</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
</span><span id="Join-2321"><a href="#Join-2321"><span class="linenos">2321</span></a>
-</span><span id="Join-2322"><a href="#Join-2322"><span class="linenos">2322</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join-2322"><a href="#Join-2322"><span class="linenos">2322</span></a><span class="sd"> Args:</span>
+</span><span id="Join-2323"><a href="#Join-2323"><span class="linenos">2323</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join-2324"><a href="#Join-2324"><span class="linenos">2324</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join-2325"><a href="#Join-2325"><span class="linenos">2325</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join-2326"><a href="#Join-2326"><span class="linenos">2326</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join-2327"><a href="#Join-2327"><span class="linenos">2327</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join-2328"><a href="#Join-2328"><span class="linenos">2328</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join-2329"><a href="#Join-2329"><span class="linenos">2329</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join-2330"><a href="#Join-2330"><span class="linenos">2330</span></a>
+</span><span id="Join-2331"><a href="#Join-2331"><span class="linenos">2331</span></a><span class="sd"> Returns:</span>
+</span><span id="Join-2332"><a href="#Join-2332"><span class="linenos">2332</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join-2333"><a href="#Join-2333"><span class="linenos">2333</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join-2334"><a href="#Join-2334"><span class="linenos">2334</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Join-2335"><a href="#Join-2335"><span class="linenos">2335</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join-2336"><a href="#Join-2336"><span class="linenos">2336</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join-2337"><a href="#Join-2337"><span class="linenos">2337</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
+</span><span id="Join-2338"><a href="#Join-2338"><span class="linenos">2338</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join-2339"><a href="#Join-2339"><span class="linenos">2339</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join-2340"><a href="#Join-2340"><span class="linenos">2340</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join-2341"><a href="#Join-2341"><span class="linenos">2341</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join-2342"><a href="#Join-2342"><span class="linenos">2342</span></a> <span class="p">)</span>
+</span><span id="Join-2343"><a href="#Join-2343"><span class="linenos">2343</span></a>
+</span><span id="Join-2344"><a href="#Join-2344"><span class="linenos">2344</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
+</span><span id="Join-2345"><a href="#Join-2345"><span class="linenos">2345</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Join-2346"><a href="#Join-2346"><span class="linenos">2346</span></a>
+</span><span id="Join-2347"><a href="#Join-2347"><span class="linenos">2347</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -33448,9 +33929,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.method"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.method-2217"><a href="#Join.method-2217"><span class="linenos">2217</span></a> <span class="nd">@property</span>
-</span><span id="Join.method-2218"><a href="#Join.method-2218"><span class="linenos">2218</span></a> <span class="k">def</span> <span class="nf">method</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="Join.method-2219"><a href="#Join.method-2219"><span class="linenos">2219</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.method-2242"><a href="#Join.method-2242"><span class="linenos">2242</span></a> <span class="nd">@property</span>
+</span><span id="Join.method-2243"><a href="#Join.method-2243"><span class="linenos">2243</span></a> <span class="k">def</span> <span class="nf">method</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="Join.method-2244"><a href="#Join.method-2244"><span class="linenos">2244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span></pre></div>
@@ -33466,9 +33947,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.kind"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.kind-2221"><a href="#Join.kind-2221"><span class="linenos">2221</span></a> <span class="nd">@property</span>
-</span><span id="Join.kind-2222"><a href="#Join.kind-2222"><span class="linenos">2222</span></a> <span class="k">def</span> <span class="nf">kind</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="Join.kind-2223"><a href="#Join.kind-2223"><span class="linenos">2223</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.kind-2246"><a href="#Join.kind-2246"><span class="linenos">2246</span></a> <span class="nd">@property</span>
+</span><span id="Join.kind-2247"><a href="#Join.kind-2247"><span class="linenos">2247</span></a> <span class="k">def</span> <span class="nf">kind</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="Join.kind-2248"><a href="#Join.kind-2248"><span class="linenos">2248</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span></pre></div>
@@ -33484,9 +33965,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.side"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.side-2225"><a href="#Join.side-2225"><span class="linenos">2225</span></a> <span class="nd">@property</span>
-</span><span id="Join.side-2226"><a href="#Join.side-2226"><span class="linenos">2226</span></a> <span class="k">def</span> <span class="nf">side</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="Join.side-2227"><a href="#Join.side-2227"><span class="linenos">2227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.side-2250"><a href="#Join.side-2250"><span class="linenos">2250</span></a> <span class="nd">@property</span>
+</span><span id="Join.side-2251"><a href="#Join.side-2251"><span class="linenos">2251</span></a> <span class="k">def</span> <span class="nf">side</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="Join.side-2252"><a href="#Join.side-2252"><span class="linenos">2252</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span></pre></div>
@@ -33502,9 +33983,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.hint-2229"><a href="#Join.hint-2229"><span class="linenos">2229</span></a> <span class="nd">@property</span>
-</span><span id="Join.hint-2230"><a href="#Join.hint-2230"><span class="linenos">2230</span></a> <span class="k">def</span> <span class="nf">hint</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="Join.hint-2231"><a href="#Join.hint-2231"><span class="linenos">2231</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.hint-2254"><a href="#Join.hint-2254"><span class="linenos">2254</span></a> <span class="nd">@property</span>
+</span><span id="Join.hint-2255"><a href="#Join.hint-2255"><span class="linenos">2255</span></a> <span class="k">def</span> <span class="nf">hint</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="Join.hint-2256"><a href="#Join.hint-2256"><span class="linenos">2256</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span></pre></div>
@@ -33520,9 +34001,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.alias_or_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.alias_or_name-2233"><a href="#Join.alias_or_name-2233"><span class="linenos">2233</span></a> <span class="nd">@property</span>
-</span><span id="Join.alias_or_name-2234"><a href="#Join.alias_or_name-2234"><span class="linenos">2234</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Join.alias_or_name-2235"><a href="#Join.alias_or_name-2235"><span class="linenos">2235</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">alias_or_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.alias_or_name-2258"><a href="#Join.alias_or_name-2258"><span class="linenos">2258</span></a> <span class="nd">@property</span>
+</span><span id="Join.alias_or_name-2259"><a href="#Join.alias_or_name-2259"><span class="linenos">2259</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Join.alias_or_name-2260"><a href="#Join.alias_or_name-2260"><span class="linenos">2260</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">alias_or_name</span>
</span></pre></div>
@@ -33540,49 +34021,49 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Join.on"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-2237"><a href="#Join.on-2237"><span class="linenos">2237</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
-</span><span id="Join.on-2238"><a href="#Join.on-2238"><span class="linenos">2238</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join.on-2239"><a href="#Join.on-2239"><span class="linenos">2239</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join.on-2240"><a href="#Join.on-2240"><span class="linenos">2240</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.on-2241"><a href="#Join.on-2241"><span class="linenos">2241</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="Join.on-2242"><a href="#Join.on-2242"><span class="linenos">2242</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.on-2243"><a href="#Join.on-2243"><span class="linenos">2243</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.on-2244"><a href="#Join.on-2244"><span class="linenos">2244</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join.on-2245"><a href="#Join.on-2245"><span class="linenos">2245</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.on-2246"><a href="#Join.on-2246"><span class="linenos">2246</span></a><span class="sd"> Append to or set the ON expressions.</span>
-</span><span id="Join.on-2247"><a href="#Join.on-2247"><span class="linenos">2247</span></a>
-</span><span id="Join.on-2248"><a href="#Join.on-2248"><span class="linenos">2248</span></a><span class="sd"> Example:</span>
-</span><span id="Join.on-2249"><a href="#Join.on-2249"><span class="linenos">2249</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.on-2250"><a href="#Join.on-2250"><span class="linenos">2250</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
-</span><span id="Join.on-2251"><a href="#Join.on-2251"><span class="linenos">2251</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
-</span><span id="Join.on-2252"><a href="#Join.on-2252"><span class="linenos">2252</span></a>
-</span><span id="Join.on-2253"><a href="#Join.on-2253"><span class="linenos">2253</span></a><span class="sd"> Args:</span>
-</span><span id="Join.on-2254"><a href="#Join.on-2254"><span class="linenos">2254</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join.on-2255"><a href="#Join.on-2255"><span class="linenos">2255</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.on-2256"><a href="#Join.on-2256"><span class="linenos">2256</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Join.on-2257"><a href="#Join.on-2257"><span class="linenos">2257</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Join.on-2258"><a href="#Join.on-2258"><span class="linenos">2258</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.on-2259"><a href="#Join.on-2259"><span class="linenos">2259</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join.on-2260"><a href="#Join.on-2260"><span class="linenos">2260</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.on-2261"><a href="#Join.on-2261"><span class="linenos">2261</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join.on-2262"><a href="#Join.on-2262"><span class="linenos">2262</span></a>
-</span><span id="Join.on-2263"><a href="#Join.on-2263"><span class="linenos">2263</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.on-2264"><a href="#Join.on-2264"><span class="linenos">2264</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join.on-2265"><a href="#Join.on-2265"><span class="linenos">2265</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.on-2266"><a href="#Join.on-2266"><span class="linenos">2266</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Join.on-2267"><a href="#Join.on-2267"><span class="linenos">2267</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.on-2268"><a href="#Join.on-2268"><span class="linenos">2268</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join.on-2269"><a href="#Join.on-2269"><span class="linenos">2269</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
-</span><span id="Join.on-2270"><a href="#Join.on-2270"><span class="linenos">2270</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join.on-2271"><a href="#Join.on-2271"><span class="linenos">2271</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join.on-2272"><a href="#Join.on-2272"><span class="linenos">2272</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join.on-2273"><a href="#Join.on-2273"><span class="linenos">2273</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.on-2274"><a href="#Join.on-2274"><span class="linenos">2274</span></a> <span class="p">)</span>
-</span><span id="Join.on-2275"><a href="#Join.on-2275"><span class="linenos">2275</span></a>
-</span><span id="Join.on-2276"><a href="#Join.on-2276"><span class="linenos">2276</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
-</span><span id="Join.on-2277"><a href="#Join.on-2277"><span class="linenos">2277</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Join.on-2278"><a href="#Join.on-2278"><span class="linenos">2278</span></a>
-</span><span id="Join.on-2279"><a href="#Join.on-2279"><span class="linenos">2279</span></a> <span class="k">return</span> <span class="n">join</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-2262"><a href="#Join.on-2262"><span class="linenos">2262</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
+</span><span id="Join.on-2263"><a href="#Join.on-2263"><span class="linenos">2263</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.on-2264"><a href="#Join.on-2264"><span class="linenos">2264</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join.on-2265"><a href="#Join.on-2265"><span class="linenos">2265</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.on-2266"><a href="#Join.on-2266"><span class="linenos">2266</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="Join.on-2267"><a href="#Join.on-2267"><span class="linenos">2267</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.on-2268"><a href="#Join.on-2268"><span class="linenos">2268</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-2269"><a href="#Join.on-2269"><span class="linenos">2269</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join.on-2270"><a href="#Join.on-2270"><span class="linenos">2270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.on-2271"><a href="#Join.on-2271"><span class="linenos">2271</span></a><span class="sd"> Append to or set the ON expressions.</span>
+</span><span id="Join.on-2272"><a href="#Join.on-2272"><span class="linenos">2272</span></a>
+</span><span id="Join.on-2273"><a href="#Join.on-2273"><span class="linenos">2273</span></a><span class="sd"> Example:</span>
+</span><span id="Join.on-2274"><a href="#Join.on-2274"><span class="linenos">2274</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.on-2275"><a href="#Join.on-2275"><span class="linenos">2275</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
+</span><span id="Join.on-2276"><a href="#Join.on-2276"><span class="linenos">2276</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
+</span><span id="Join.on-2277"><a href="#Join.on-2277"><span class="linenos">2277</span></a>
+</span><span id="Join.on-2278"><a href="#Join.on-2278"><span class="linenos">2278</span></a><span class="sd"> Args:</span>
+</span><span id="Join.on-2279"><a href="#Join.on-2279"><span class="linenos">2279</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join.on-2280"><a href="#Join.on-2280"><span class="linenos">2280</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.on-2281"><a href="#Join.on-2281"><span class="linenos">2281</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Join.on-2282"><a href="#Join.on-2282"><span class="linenos">2282</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Join.on-2283"><a href="#Join.on-2283"><span class="linenos">2283</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.on-2284"><a href="#Join.on-2284"><span class="linenos">2284</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join.on-2285"><a href="#Join.on-2285"><span class="linenos">2285</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.on-2286"><a href="#Join.on-2286"><span class="linenos">2286</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join.on-2287"><a href="#Join.on-2287"><span class="linenos">2287</span></a>
+</span><span id="Join.on-2288"><a href="#Join.on-2288"><span class="linenos">2288</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.on-2289"><a href="#Join.on-2289"><span class="linenos">2289</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join.on-2290"><a href="#Join.on-2290"><span class="linenos">2290</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.on-2291"><a href="#Join.on-2291"><span class="linenos">2291</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Join.on-2292"><a href="#Join.on-2292"><span class="linenos">2292</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.on-2293"><a href="#Join.on-2293"><span class="linenos">2293</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.on-2294"><a href="#Join.on-2294"><span class="linenos">2294</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
+</span><span id="Join.on-2295"><a href="#Join.on-2295"><span class="linenos">2295</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join.on-2296"><a href="#Join.on-2296"><span class="linenos">2296</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join.on-2297"><a href="#Join.on-2297"><span class="linenos">2297</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join.on-2298"><a href="#Join.on-2298"><span class="linenos">2298</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.on-2299"><a href="#Join.on-2299"><span class="linenos">2299</span></a> <span class="p">)</span>
+</span><span id="Join.on-2300"><a href="#Join.on-2300"><span class="linenos">2300</span></a>
+</span><span id="Join.on-2301"><a href="#Join.on-2301"><span class="linenos">2301</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
+</span><span id="Join.on-2302"><a href="#Join.on-2302"><span class="linenos">2302</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Join.on-2303"><a href="#Join.on-2303"><span class="linenos">2303</span></a>
+</span><span id="Join.on-2304"><a href="#Join.on-2304"><span class="linenos">2304</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -33632,48 +34113,48 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Join.using"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-2281"><a href="#Join.using-2281"><span class="linenos">2281</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
-</span><span id="Join.using-2282"><a href="#Join.using-2282"><span class="linenos">2282</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Join.using-2283"><a href="#Join.using-2283"><span class="linenos">2283</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Join.using-2284"><a href="#Join.using-2284"><span class="linenos">2284</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.using-2285"><a href="#Join.using-2285"><span class="linenos">2285</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="Join.using-2286"><a href="#Join.using-2286"><span class="linenos">2286</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Join.using-2287"><a href="#Join.using-2287"><span class="linenos">2287</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.using-2288"><a href="#Join.using-2288"><span class="linenos">2288</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
-</span><span id="Join.using-2289"><a href="#Join.using-2289"><span class="linenos">2289</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Join.using-2290"><a href="#Join.using-2290"><span class="linenos">2290</span></a><span class="sd"> Append to or set the USING expressions.</span>
-</span><span id="Join.using-2291"><a href="#Join.using-2291"><span class="linenos">2291</span></a>
-</span><span id="Join.using-2292"><a href="#Join.using-2292"><span class="linenos">2292</span></a><span class="sd"> Example:</span>
-</span><span id="Join.using-2293"><a href="#Join.using-2293"><span class="linenos">2293</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="Join.using-2294"><a href="#Join.using-2294"><span class="linenos">2294</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
-</span><span id="Join.using-2295"><a href="#Join.using-2295"><span class="linenos">2295</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
-</span><span id="Join.using-2296"><a href="#Join.using-2296"><span class="linenos">2296</span></a>
-</span><span id="Join.using-2297"><a href="#Join.using-2297"><span class="linenos">2297</span></a><span class="sd"> Args:</span>
-</span><span id="Join.using-2298"><a href="#Join.using-2298"><span class="linenos">2298</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Join.using-2299"><a href="#Join.using-2299"><span class="linenos">2299</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Join.using-2300"><a href="#Join.using-2300"><span class="linenos">2300</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
-</span><span id="Join.using-2301"><a href="#Join.using-2301"><span class="linenos">2301</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Join.using-2302"><a href="#Join.using-2302"><span class="linenos">2302</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Join.using-2303"><a href="#Join.using-2303"><span class="linenos">2303</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Join.using-2304"><a href="#Join.using-2304"><span class="linenos">2304</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Join.using-2305"><a href="#Join.using-2305"><span class="linenos">2305</span></a>
-</span><span id="Join.using-2306"><a href="#Join.using-2306"><span class="linenos">2306</span></a><span class="sd"> Returns:</span>
-</span><span id="Join.using-2307"><a href="#Join.using-2307"><span class="linenos">2307</span></a><span class="sd"> The modified Join expression.</span>
-</span><span id="Join.using-2308"><a href="#Join.using-2308"><span class="linenos">2308</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Join.using-2309"><a href="#Join.using-2309"><span class="linenos">2309</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Join.using-2310"><a href="#Join.using-2310"><span class="linenos">2310</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Join.using-2311"><a href="#Join.using-2311"><span class="linenos">2311</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Join.using-2312"><a href="#Join.using-2312"><span class="linenos">2312</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
-</span><span id="Join.using-2313"><a href="#Join.using-2313"><span class="linenos">2313</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Join.using-2314"><a href="#Join.using-2314"><span class="linenos">2314</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Join.using-2315"><a href="#Join.using-2315"><span class="linenos">2315</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Join.using-2316"><a href="#Join.using-2316"><span class="linenos">2316</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Join.using-2317"><a href="#Join.using-2317"><span class="linenos">2317</span></a> <span class="p">)</span>
-</span><span id="Join.using-2318"><a href="#Join.using-2318"><span class="linenos">2318</span></a>
-</span><span id="Join.using-2319"><a href="#Join.using-2319"><span class="linenos">2319</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
-</span><span id="Join.using-2320"><a href="#Join.using-2320"><span class="linenos">2320</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-2306"><a href="#Join.using-2306"><span class="linenos">2306</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
+</span><span id="Join.using-2307"><a href="#Join.using-2307"><span class="linenos">2307</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.using-2308"><a href="#Join.using-2308"><span class="linenos">2308</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Join.using-2309"><a href="#Join.using-2309"><span class="linenos">2309</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.using-2310"><a href="#Join.using-2310"><span class="linenos">2310</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="Join.using-2311"><a href="#Join.using-2311"><span class="linenos">2311</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Join.using-2312"><a href="#Join.using-2312"><span class="linenos">2312</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-2313"><a href="#Join.using-2313"><span class="linenos">2313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
+</span><span id="Join.using-2314"><a href="#Join.using-2314"><span class="linenos">2314</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Join.using-2315"><a href="#Join.using-2315"><span class="linenos">2315</span></a><span class="sd"> Append to or set the USING expressions.</span>
+</span><span id="Join.using-2316"><a href="#Join.using-2316"><span class="linenos">2316</span></a>
+</span><span id="Join.using-2317"><a href="#Join.using-2317"><span class="linenos">2317</span></a><span class="sd"> Example:</span>
+</span><span id="Join.using-2318"><a href="#Join.using-2318"><span class="linenos">2318</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="Join.using-2319"><a href="#Join.using-2319"><span class="linenos">2319</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
+</span><span id="Join.using-2320"><a href="#Join.using-2320"><span class="linenos">2320</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
</span><span id="Join.using-2321"><a href="#Join.using-2321"><span class="linenos">2321</span></a>
-</span><span id="Join.using-2322"><a href="#Join.using-2322"><span class="linenos">2322</span></a> <span class="k">return</span> <span class="n">join</span>
+</span><span id="Join.using-2322"><a href="#Join.using-2322"><span class="linenos">2322</span></a><span class="sd"> Args:</span>
+</span><span id="Join.using-2323"><a href="#Join.using-2323"><span class="linenos">2323</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Join.using-2324"><a href="#Join.using-2324"><span class="linenos">2324</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Join.using-2325"><a href="#Join.using-2325"><span class="linenos">2325</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
+</span><span id="Join.using-2326"><a href="#Join.using-2326"><span class="linenos">2326</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Join.using-2327"><a href="#Join.using-2327"><span class="linenos">2327</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Join.using-2328"><a href="#Join.using-2328"><span class="linenos">2328</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Join.using-2329"><a href="#Join.using-2329"><span class="linenos">2329</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Join.using-2330"><a href="#Join.using-2330"><span class="linenos">2330</span></a>
+</span><span id="Join.using-2331"><a href="#Join.using-2331"><span class="linenos">2331</span></a><span class="sd"> Returns:</span>
+</span><span id="Join.using-2332"><a href="#Join.using-2332"><span class="linenos">2332</span></a><span class="sd"> The modified Join expression.</span>
+</span><span id="Join.using-2333"><a href="#Join.using-2333"><span class="linenos">2333</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Join.using-2334"><a href="#Join.using-2334"><span class="linenos">2334</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Join.using-2335"><a href="#Join.using-2335"><span class="linenos">2335</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Join.using-2336"><a href="#Join.using-2336"><span class="linenos">2336</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Join.using-2337"><a href="#Join.using-2337"><span class="linenos">2337</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
+</span><span id="Join.using-2338"><a href="#Join.using-2338"><span class="linenos">2338</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Join.using-2339"><a href="#Join.using-2339"><span class="linenos">2339</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Join.using-2340"><a href="#Join.using-2340"><span class="linenos">2340</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Join.using-2341"><a href="#Join.using-2341"><span class="linenos">2341</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Join.using-2342"><a href="#Join.using-2342"><span class="linenos">2342</span></a> <span class="p">)</span>
+</span><span id="Join.using-2343"><a href="#Join.using-2343"><span class="linenos">2343</span></a>
+</span><span id="Join.using-2344"><a href="#Join.using-2344"><span class="linenos">2344</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
+</span><span id="Join.using-2345"><a href="#Join.using-2345"><span class="linenos">2345</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Join.using-2346"><a href="#Join.using-2346"><span class="linenos">2346</span></a>
+</span><span id="Join.using-2347"><a href="#Join.using-2347"><span class="linenos">2347</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
@@ -33811,14 +34292,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-2325"><a href="#Lateral-2325"><span class="linenos">2325</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="Lateral-2326"><a href="#Lateral-2326"><span class="linenos">2326</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Lateral-2327"><a href="#Lateral-2327"><span class="linenos">2327</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="Lateral-2328"><a href="#Lateral-2328"><span class="linenos">2328</span></a> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Lateral-2329"><a href="#Lateral-2329"><span class="linenos">2329</span></a> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Lateral-2330"><a href="#Lateral-2330"><span class="linenos">2330</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Lateral-2331"><a href="#Lateral-2331"><span class="linenos">2331</span></a> <span class="s2">&quot;cross_apply&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># True -&gt; CROSS APPLY, False -&gt; OUTER APPLY</span>
-</span><span id="Lateral-2332"><a href="#Lateral-2332"><span class="linenos">2332</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-2350"><a href="#Lateral-2350"><span class="linenos">2350</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
+</span><span id="Lateral-2351"><a href="#Lateral-2351"><span class="linenos">2351</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Lateral-2352"><a href="#Lateral-2352"><span class="linenos">2352</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="Lateral-2353"><a href="#Lateral-2353"><span class="linenos">2353</span></a> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Lateral-2354"><a href="#Lateral-2354"><span class="linenos">2354</span></a> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Lateral-2355"><a href="#Lateral-2355"><span class="linenos">2355</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Lateral-2356"><a href="#Lateral-2356"><span class="linenos">2356</span></a> <span class="s2">&quot;cross_apply&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># True -&gt; CROSS APPLY, False -&gt; OUTER APPLY</span>
+</span><span id="Lateral-2357"><a href="#Lateral-2357"><span class="linenos">2357</span></a> <span class="p">}</span>
</span></pre></div>
@@ -33945,11 +34426,11 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#MatchRecognizeMeasure"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognizeMeasure-2335"><a href="#MatchRecognizeMeasure-2335"><span class="linenos">2335</span></a><span class="k">class</span> <span class="nc">MatchRecognizeMeasure</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="MatchRecognizeMeasure-2336"><a href="#MatchRecognizeMeasure-2336"><span class="linenos">2336</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MatchRecognizeMeasure-2337"><a href="#MatchRecognizeMeasure-2337"><span class="linenos">2337</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="MatchRecognizeMeasure-2338"><a href="#MatchRecognizeMeasure-2338"><span class="linenos">2338</span></a> <span class="s2">&quot;window_frame&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognizeMeasure-2339"><a href="#MatchRecognizeMeasure-2339"><span class="linenos">2339</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognizeMeasure-2360"><a href="#MatchRecognizeMeasure-2360"><span class="linenos">2360</span></a><span class="k">class</span> <span class="nc">MatchRecognizeMeasure</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="MatchRecognizeMeasure-2361"><a href="#MatchRecognizeMeasure-2361"><span class="linenos">2361</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MatchRecognizeMeasure-2362"><a href="#MatchRecognizeMeasure-2362"><span class="linenos">2362</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="MatchRecognizeMeasure-2363"><a href="#MatchRecognizeMeasure-2363"><span class="linenos">2363</span></a> <span class="s2">&quot;window_frame&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognizeMeasure-2364"><a href="#MatchRecognizeMeasure-2364"><span class="linenos">2364</span></a> <span class="p">}</span>
</span></pre></div>
@@ -34068,17 +34549,17 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#MatchRecognize"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-2342"><a href="#MatchRecognize-2342"><span class="linenos">2342</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="MatchRecognize-2343"><a href="#MatchRecognize-2343"><span class="linenos">2343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="MatchRecognize-2344"><a href="#MatchRecognize-2344"><span class="linenos">2344</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2345"><a href="#MatchRecognize-2345"><span class="linenos">2345</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2346"><a href="#MatchRecognize-2346"><span class="linenos">2346</span></a> <span class="s2">&quot;measures&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2347"><a href="#MatchRecognize-2347"><span class="linenos">2347</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2348"><a href="#MatchRecognize-2348"><span class="linenos">2348</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2349"><a href="#MatchRecognize-2349"><span class="linenos">2349</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2350"><a href="#MatchRecognize-2350"><span class="linenos">2350</span></a> <span class="s2">&quot;define&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2351"><a href="#MatchRecognize-2351"><span class="linenos">2351</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="MatchRecognize-2352"><a href="#MatchRecognize-2352"><span class="linenos">2352</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-2367"><a href="#MatchRecognize-2367"><span class="linenos">2367</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="MatchRecognize-2368"><a href="#MatchRecognize-2368"><span class="linenos">2368</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="MatchRecognize-2369"><a href="#MatchRecognize-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2370"><a href="#MatchRecognize-2370"><span class="linenos">2370</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2371"><a href="#MatchRecognize-2371"><span class="linenos">2371</span></a> <span class="s2">&quot;measures&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2372"><a href="#MatchRecognize-2372"><span class="linenos">2372</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2373"><a href="#MatchRecognize-2373"><span class="linenos">2373</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2374"><a href="#MatchRecognize-2374"><span class="linenos">2374</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2375"><a href="#MatchRecognize-2375"><span class="linenos">2375</span></a> <span class="s2">&quot;define&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2376"><a href="#MatchRecognize-2376"><span class="linenos">2376</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="MatchRecognize-2377"><a href="#MatchRecognize-2377"><span class="linenos">2377</span></a> <span class="p">}</span>
</span></pre></div>
@@ -34198,8 +34679,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Final"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Final-2357"><a href="#Final-2357"><span class="linenos">2357</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Final-2358"><a href="#Final-2358"><span class="linenos">2358</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Final-2382"><a href="#Final-2382"><span class="linenos">2382</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Final-2383"><a href="#Final-2383"><span class="linenos">2383</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34307,8 +34788,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Offset"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Offset-2361"><a href="#Offset-2361"><span class="linenos">2361</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Offset-2362"><a href="#Offset-2362"><span class="linenos">2362</span></a> <span class="n">arg_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">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="Offset-2386"><a href="#Offset-2386"><span class="linenos">2386</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Offset-2387"><a href="#Offset-2387"><span class="linenos">2387</span></a> <span class="n">arg_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">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>
@@ -34427,13 +34908,13 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Order"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Order-2365"><a href="#Order-2365"><span class="linenos">2365</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Order-2366"><a href="#Order-2366"><span class="linenos">2366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Order-2367"><a href="#Order-2367"><span class="linenos">2367</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Order-2368"><a href="#Order-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Order-2369"><a href="#Order-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;interpolate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Order-2370"><a href="#Order-2370"><span class="linenos">2370</span></a> <span class="s2">&quot;siblings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Order-2371"><a href="#Order-2371"><span class="linenos">2371</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Order-2390"><a href="#Order-2390"><span class="linenos">2390</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Order-2391"><a href="#Order-2391"><span class="linenos">2391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Order-2392"><a href="#Order-2392"><span class="linenos">2392</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Order-2393"><a href="#Order-2393"><span class="linenos">2393</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Order-2394"><a href="#Order-2394"><span class="linenos">2394</span></a> <span class="s2">&quot;interpolate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Order-2395"><a href="#Order-2395"><span class="linenos">2395</span></a> <span class="s2">&quot;siblings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Order-2396"><a href="#Order-2396"><span class="linenos">2396</span></a> <span class="p">}</span>
</span></pre></div>
@@ -34552,8 +35033,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#WithFill"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithFill-2375"><a href="#WithFill-2375"><span class="linenos">2375</span></a><span class="k">class</span> <span class="nc">WithFill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="WithFill-2376"><a href="#WithFill-2376"><span class="linenos">2376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">False</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="WithFill-2400"><a href="#WithFill-2400"><span class="linenos">2400</span></a><span class="k">class</span> <span class="nc">WithFill</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="WithFill-2401"><a href="#WithFill-2401"><span class="linenos">2401</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">False</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>
@@ -34672,8 +35153,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Cluster"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-2381"><a href="#Cluster-2381"><span class="linenos">2381</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
-</span><span id="Cluster-2382"><a href="#Cluster-2382"><span class="linenos">2382</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-2406"><a href="#Cluster-2406"><span class="linenos">2406</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="Cluster-2407"><a href="#Cluster-2407"><span class="linenos">2407</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34784,8 +35265,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Distribute"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-2385"><a href="#Distribute-2385"><span class="linenos">2385</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
-</span><span id="Distribute-2386"><a href="#Distribute-2386"><span class="linenos">2386</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-2410"><a href="#Distribute-2410"><span class="linenos">2410</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="Distribute-2411"><a href="#Distribute-2411"><span class="linenos">2411</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -34896,8 +35377,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Sort"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-2389"><a href="#Sort-2389"><span class="linenos">2389</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
-</span><span id="Sort-2390"><a href="#Sort-2390"><span class="linenos">2390</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-2414"><a href="#Sort-2414"><span class="linenos">2414</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
+</span><span id="Sort-2415"><a href="#Sort-2415"><span class="linenos">2415</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -35008,8 +35489,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Ordered"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-2393"><a href="#Ordered-2393"><span class="linenos">2393</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Ordered-2394"><a href="#Ordered-2394"><span class="linenos">2394</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with_fill&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="Ordered-2418"><a href="#Ordered-2418"><span class="linenos">2418</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Ordered-2419"><a href="#Ordered-2419"><span class="linenos">2419</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with_fill&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -35128,8 +35609,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Property"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Property-2397"><a href="#Property-2397"><span class="linenos">2397</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Property-2398"><a href="#Property-2398"><span class="linenos">2398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&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="Property-2422"><a href="#Property-2422"><span class="linenos">2422</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Property-2423"><a href="#Property-2423"><span class="linenos">2423</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -35248,8 +35729,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#AlgorithmProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlgorithmProperty-2401"><a href="#AlgorithmProperty-2401"><span class="linenos">2401</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="AlgorithmProperty-2402"><a href="#AlgorithmProperty-2402"><span class="linenos">2402</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="AlgorithmProperty-2426"><a href="#AlgorithmProperty-2426"><span class="linenos">2426</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="AlgorithmProperty-2427"><a href="#AlgorithmProperty-2427"><span class="linenos">2427</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -35368,8 +35849,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#AutoIncrementProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementProperty-2405"><a href="#AutoIncrementProperty-2405"><span class="linenos">2405</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="AutoIncrementProperty-2406"><a href="#AutoIncrementProperty-2406"><span class="linenos">2406</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="AutoIncrementProperty-2430"><a href="#AutoIncrementProperty-2430"><span class="linenos">2430</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="AutoIncrementProperty-2431"><a href="#AutoIncrementProperty-2431"><span class="linenos">2431</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -35488,8 +35969,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#AutoRefreshProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AutoRefreshProperty-2410"><a href="#AutoRefreshProperty-2410"><span class="linenos">2410</span></a><span class="k">class</span> <span class="nc">AutoRefreshProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="AutoRefreshProperty-2411"><a href="#AutoRefreshProperty-2411"><span class="linenos">2411</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="AutoRefreshProperty-2435"><a href="#AutoRefreshProperty-2435"><span class="linenos">2435</span></a><span class="k">class</span> <span class="nc">AutoRefreshProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="AutoRefreshProperty-2436"><a href="#AutoRefreshProperty-2436"><span class="linenos">2436</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -35608,8 +36089,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#BackupProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BackupProperty-2414"><a href="#BackupProperty-2414"><span class="linenos">2414</span></a><span class="k">class</span> <span class="nc">BackupProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="BackupProperty-2415"><a href="#BackupProperty-2415"><span class="linenos">2415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="BackupProperty-2439"><a href="#BackupProperty-2439"><span class="linenos">2439</span></a><span class="k">class</span> <span class="nc">BackupProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="BackupProperty-2440"><a href="#BackupProperty-2440"><span class="linenos">2440</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -35728,14 +36209,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#BlockCompressionProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BlockCompressionProperty-2418"><a href="#BlockCompressionProperty-2418"><span class="linenos">2418</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="BlockCompressionProperty-2419"><a href="#BlockCompressionProperty-2419"><span class="linenos">2419</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="BlockCompressionProperty-2420"><a href="#BlockCompressionProperty-2420"><span class="linenos">2420</span></a> <span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="BlockCompressionProperty-2421"><a href="#BlockCompressionProperty-2421"><span class="linenos">2421</span></a> <span class="s2">&quot;always&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="BlockCompressionProperty-2422"><a href="#BlockCompressionProperty-2422"><span class="linenos">2422</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="BlockCompressionProperty-2423"><a href="#BlockCompressionProperty-2423"><span class="linenos">2423</span></a> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="BlockCompressionProperty-2424"><a href="#BlockCompressionProperty-2424"><span class="linenos">2424</span></a> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="BlockCompressionProperty-2425"><a href="#BlockCompressionProperty-2425"><span class="linenos">2425</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BlockCompressionProperty-2443"><a href="#BlockCompressionProperty-2443"><span class="linenos">2443</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="BlockCompressionProperty-2444"><a href="#BlockCompressionProperty-2444"><span class="linenos">2444</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="BlockCompressionProperty-2445"><a href="#BlockCompressionProperty-2445"><span class="linenos">2445</span></a> <span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="BlockCompressionProperty-2446"><a href="#BlockCompressionProperty-2446"><span class="linenos">2446</span></a> <span class="s2">&quot;always&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="BlockCompressionProperty-2447"><a href="#BlockCompressionProperty-2447"><span class="linenos">2447</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="BlockCompressionProperty-2448"><a href="#BlockCompressionProperty-2448"><span class="linenos">2448</span></a> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="BlockCompressionProperty-2449"><a href="#BlockCompressionProperty-2449"><span class="linenos">2449</span></a> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="BlockCompressionProperty-2450"><a href="#BlockCompressionProperty-2450"><span class="linenos">2450</span></a> <span class="p">}</span>
</span></pre></div>
@@ -35854,8 +36335,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#CharacterSetProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetProperty-2428"><a href="#CharacterSetProperty-2428"><span class="linenos">2428</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="CharacterSetProperty-2429"><a href="#CharacterSetProperty-2429"><span class="linenos">2429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetProperty-2453"><a href="#CharacterSetProperty-2453"><span class="linenos">2453</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="CharacterSetProperty-2454"><a href="#CharacterSetProperty-2454"><span class="linenos">2454</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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">True</span><span class="p">}</span>
</span></pre></div>
@@ -35974,8 +36455,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ChecksumProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ChecksumProperty-2432"><a href="#ChecksumProperty-2432"><span class="linenos">2432</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ChecksumProperty-2433"><a href="#ChecksumProperty-2433"><span class="linenos">2433</span></a> <span class="n">arg_types</span> <span class="o">=</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 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="ChecksumProperty-2457"><a href="#ChecksumProperty-2457"><span class="linenos">2457</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ChecksumProperty-2458"><a href="#ChecksumProperty-2458"><span class="linenos">2458</span></a> <span class="n">arg_types</span> <span class="o">=</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 class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -36094,8 +36575,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#CollateProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CollateProperty-2436"><a href="#CollateProperty-2436"><span class="linenos">2436</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="CollateProperty-2437"><a href="#CollateProperty-2437"><span class="linenos">2437</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="CollateProperty-2461"><a href="#CollateProperty-2461"><span class="linenos">2461</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="CollateProperty-2462"><a href="#CollateProperty-2462"><span class="linenos">2462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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>
@@ -36214,8 +36695,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#CopyGrantsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CopyGrantsProperty-2440"><a href="#CopyGrantsProperty-2440"><span class="linenos">2440</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="CopyGrantsProperty-2441"><a href="#CopyGrantsProperty-2441"><span class="linenos">2441</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CopyGrantsProperty-2465"><a href="#CopyGrantsProperty-2465"><span class="linenos">2465</span></a><span class="k">class</span> <span class="nc">CopyGrantsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="CopyGrantsProperty-2466"><a href="#CopyGrantsProperty-2466"><span class="linenos">2466</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -36334,14 +36815,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DataBlocksizeProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-2444"><a href="#DataBlocksizeProperty-2444"><span class="linenos">2444</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DataBlocksizeProperty-2445"><a href="#DataBlocksizeProperty-2445"><span class="linenos">2445</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataBlocksizeProperty-2446"><a href="#DataBlocksizeProperty-2446"><span class="linenos">2446</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2447"><a href="#DataBlocksizeProperty-2447"><span class="linenos">2447</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2448"><a href="#DataBlocksizeProperty-2448"><span class="linenos">2448</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2449"><a href="#DataBlocksizeProperty-2449"><span class="linenos">2449</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2450"><a href="#DataBlocksizeProperty-2450"><span class="linenos">2450</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataBlocksizeProperty-2451"><a href="#DataBlocksizeProperty-2451"><span class="linenos">2451</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-2469"><a href="#DataBlocksizeProperty-2469"><span class="linenos">2469</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DataBlocksizeProperty-2470"><a href="#DataBlocksizeProperty-2470"><span class="linenos">2470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataBlocksizeProperty-2471"><a href="#DataBlocksizeProperty-2471"><span class="linenos">2471</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2472"><a href="#DataBlocksizeProperty-2472"><span class="linenos">2472</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2473"><a href="#DataBlocksizeProperty-2473"><span class="linenos">2473</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2474"><a href="#DataBlocksizeProperty-2474"><span class="linenos">2474</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2475"><a href="#DataBlocksizeProperty-2475"><span class="linenos">2475</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataBlocksizeProperty-2476"><a href="#DataBlocksizeProperty-2476"><span class="linenos">2476</span></a> <span class="p">}</span>
</span></pre></div>
@@ -36460,8 +36941,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DefinerProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DefinerProperty-2454"><a href="#DefinerProperty-2454"><span class="linenos">2454</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DefinerProperty-2455"><a href="#DefinerProperty-2455"><span class="linenos">2455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="DefinerProperty-2479"><a href="#DefinerProperty-2479"><span class="linenos">2479</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DefinerProperty-2480"><a href="#DefinerProperty-2480"><span class="linenos">2480</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -36580,8 +37061,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DistKeyProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DistKeyProperty-2458"><a href="#DistKeyProperty-2458"><span class="linenos">2458</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DistKeyProperty-2459"><a href="#DistKeyProperty-2459"><span class="linenos">2459</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="DistKeyProperty-2483"><a href="#DistKeyProperty-2483"><span class="linenos">2483</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DistKeyProperty-2484"><a href="#DistKeyProperty-2484"><span class="linenos">2484</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -36700,8 +37181,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DistStyleProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DistStyleProperty-2462"><a href="#DistStyleProperty-2462"><span class="linenos">2462</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DistStyleProperty-2463"><a href="#DistStyleProperty-2463"><span class="linenos">2463</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="DistStyleProperty-2487"><a href="#DistStyleProperty-2487"><span class="linenos">2487</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DistStyleProperty-2488"><a href="#DistStyleProperty-2488"><span class="linenos">2488</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -36820,8 +37301,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#EngineProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EngineProperty-2466"><a href="#EngineProperty-2466"><span class="linenos">2466</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="EngineProperty-2467"><a href="#EngineProperty-2467"><span class="linenos">2467</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="EngineProperty-2491"><a href="#EngineProperty-2491"><span class="linenos">2491</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="EngineProperty-2492"><a href="#EngineProperty-2492"><span class="linenos">2492</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -36940,8 +37421,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#HeapProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="HeapProperty-2470"><a href="#HeapProperty-2470"><span class="linenos">2470</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="HeapProperty-2471"><a href="#HeapProperty-2471"><span class="linenos">2471</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="HeapProperty-2495"><a href="#HeapProperty-2495"><span class="linenos">2495</span></a><span class="k">class</span> <span class="nc">HeapProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="HeapProperty-2496"><a href="#HeapProperty-2496"><span class="linenos">2496</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -37060,8 +37541,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ToTableProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToTableProperty-2474"><a href="#ToTableProperty-2474"><span class="linenos">2474</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ToTableProperty-2475"><a href="#ToTableProperty-2475"><span class="linenos">2475</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="ToTableProperty-2499"><a href="#ToTableProperty-2499"><span class="linenos">2499</span></a><span class="k">class</span> <span class="nc">ToTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ToTableProperty-2500"><a href="#ToTableProperty-2500"><span class="linenos">2500</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -37180,8 +37661,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ExecuteAsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ExecuteAsProperty-2478"><a href="#ExecuteAsProperty-2478"><span class="linenos">2478</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ExecuteAsProperty-2479"><a href="#ExecuteAsProperty-2479"><span class="linenos">2479</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="ExecuteAsProperty-2503"><a href="#ExecuteAsProperty-2503"><span class="linenos">2503</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ExecuteAsProperty-2504"><a href="#ExecuteAsProperty-2504"><span class="linenos">2504</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -37300,8 +37781,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ExternalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ExternalProperty-2482"><a href="#ExternalProperty-2482"><span class="linenos">2482</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ExternalProperty-2483"><a href="#ExternalProperty-2483"><span class="linenos">2483</span></a> <span class="n">arg_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="ExternalProperty-2507"><a href="#ExternalProperty-2507"><span class="linenos">2507</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ExternalProperty-2508"><a href="#ExternalProperty-2508"><span class="linenos">2508</span></a> <span class="n">arg_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>
@@ -37420,8 +37901,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#FallbackProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FallbackProperty-2486"><a href="#FallbackProperty-2486"><span class="linenos">2486</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="FallbackProperty-2487"><a href="#FallbackProperty-2487"><span class="linenos">2487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;protection&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="FallbackProperty-2511"><a href="#FallbackProperty-2511"><span class="linenos">2511</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="FallbackProperty-2512"><a href="#FallbackProperty-2512"><span class="linenos">2512</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;protection&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -37540,8 +38021,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#FileFormatProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FileFormatProperty-2490"><a href="#FileFormatProperty-2490"><span class="linenos">2490</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="FileFormatProperty-2491"><a href="#FileFormatProperty-2491"><span class="linenos">2491</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="FileFormatProperty-2515"><a href="#FileFormatProperty-2515"><span class="linenos">2515</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="FileFormatProperty-2516"><a href="#FileFormatProperty-2516"><span class="linenos">2516</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -37660,8 +38141,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#FreespaceProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FreespaceProperty-2494"><a href="#FreespaceProperty-2494"><span class="linenos">2494</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="FreespaceProperty-2495"><a href="#FreespaceProperty-2495"><span class="linenos">2495</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;percent&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="FreespaceProperty-2519"><a href="#FreespaceProperty-2519"><span class="linenos">2519</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="FreespaceProperty-2520"><a href="#FreespaceProperty-2520"><span class="linenos">2520</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -37780,8 +38261,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#GlobalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GlobalProperty-2498"><a href="#GlobalProperty-2498"><span class="linenos">2498</span></a><span class="k">class</span> <span class="nc">GlobalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="GlobalProperty-2499"><a href="#GlobalProperty-2499"><span class="linenos">2499</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GlobalProperty-2523"><a href="#GlobalProperty-2523"><span class="linenos">2523</span></a><span class="k">class</span> <span class="nc">GlobalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="GlobalProperty-2524"><a href="#GlobalProperty-2524"><span class="linenos">2524</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -37900,8 +38381,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#IcebergProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IcebergProperty-2502"><a href="#IcebergProperty-2502"><span class="linenos">2502</span></a><span class="k">class</span> <span class="nc">IcebergProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="IcebergProperty-2503"><a href="#IcebergProperty-2503"><span class="linenos">2503</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IcebergProperty-2527"><a href="#IcebergProperty-2527"><span class="linenos">2527</span></a><span class="k">class</span> <span class="nc">IcebergProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="IcebergProperty-2528"><a href="#IcebergProperty-2528"><span class="linenos">2528</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -38020,8 +38501,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#InheritsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="InheritsProperty-2506"><a href="#InheritsProperty-2506"><span class="linenos">2506</span></a><span class="k">class</span> <span class="nc">InheritsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="InheritsProperty-2507"><a href="#InheritsProperty-2507"><span class="linenos">2507</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="InheritsProperty-2531"><a href="#InheritsProperty-2531"><span class="linenos">2531</span></a><span class="k">class</span> <span class="nc">InheritsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="InheritsProperty-2532"><a href="#InheritsProperty-2532"><span class="linenos">2532</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38140,8 +38621,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#InputModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="InputModelProperty-2510"><a href="#InputModelProperty-2510"><span class="linenos">2510</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="InputModelProperty-2511"><a href="#InputModelProperty-2511"><span class="linenos">2511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="InputModelProperty-2535"><a href="#InputModelProperty-2535"><span class="linenos">2535</span></a><span class="k">class</span> <span class="nc">InputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="InputModelProperty-2536"><a href="#InputModelProperty-2536"><span class="linenos">2536</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38260,8 +38741,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OutputModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OutputModelProperty-2514"><a href="#OutputModelProperty-2514"><span class="linenos">2514</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OutputModelProperty-2515"><a href="#OutputModelProperty-2515"><span class="linenos">2515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="OutputModelProperty-2539"><a href="#OutputModelProperty-2539"><span class="linenos">2539</span></a><span class="k">class</span> <span class="nc">OutputModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OutputModelProperty-2540"><a href="#OutputModelProperty-2540"><span class="linenos">2540</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38380,8 +38861,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#IsolatedLoadingProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-2518"><a href="#IsolatedLoadingProperty-2518"><span class="linenos">2518</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="IsolatedLoadingProperty-2519"><a href="#IsolatedLoadingProperty-2519"><span class="linenos">2519</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&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="IsolatedLoadingProperty-2543"><a href="#IsolatedLoadingProperty-2543"><span class="linenos">2543</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="IsolatedLoadingProperty-2544"><a href="#IsolatedLoadingProperty-2544"><span class="linenos">2544</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -38500,14 +38981,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#JournalProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-2522"><a href="#JournalProperty-2522"><span class="linenos">2522</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="JournalProperty-2523"><a href="#JournalProperty-2523"><span class="linenos">2523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JournalProperty-2524"><a href="#JournalProperty-2524"><span class="linenos">2524</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2525"><a href="#JournalProperty-2525"><span class="linenos">2525</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2526"><a href="#JournalProperty-2526"><span class="linenos">2526</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2527"><a href="#JournalProperty-2527"><span class="linenos">2527</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2528"><a href="#JournalProperty-2528"><span class="linenos">2528</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JournalProperty-2529"><a href="#JournalProperty-2529"><span class="linenos">2529</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-2547"><a href="#JournalProperty-2547"><span class="linenos">2547</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="JournalProperty-2548"><a href="#JournalProperty-2548"><span class="linenos">2548</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JournalProperty-2549"><a href="#JournalProperty-2549"><span class="linenos">2549</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2550"><a href="#JournalProperty-2550"><span class="linenos">2550</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2551"><a href="#JournalProperty-2551"><span class="linenos">2551</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2552"><a href="#JournalProperty-2552"><span class="linenos">2552</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2553"><a href="#JournalProperty-2553"><span class="linenos">2553</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JournalProperty-2554"><a href="#JournalProperty-2554"><span class="linenos">2554</span></a> <span class="p">}</span>
</span></pre></div>
@@ -38626,8 +39107,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#LanguageProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LanguageProperty-2532"><a href="#LanguageProperty-2532"><span class="linenos">2532</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="LanguageProperty-2533"><a href="#LanguageProperty-2533"><span class="linenos">2533</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="LanguageProperty-2557"><a href="#LanguageProperty-2557"><span class="linenos">2557</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="LanguageProperty-2558"><a href="#LanguageProperty-2558"><span class="linenos">2558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38746,8 +39227,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ClusteredByProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ClusteredByProperty-2537"><a href="#ClusteredByProperty-2537"><span class="linenos">2537</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ClusteredByProperty-2538"><a href="#ClusteredByProperty-2538"><span class="linenos">2538</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;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&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="ClusteredByProperty-2562"><a href="#ClusteredByProperty-2562"><span class="linenos">2562</span></a><span class="k">class</span> <span class="nc">ClusteredByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ClusteredByProperty-2563"><a href="#ClusteredByProperty-2563"><span class="linenos">2563</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;sorted_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;buckets&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -38866,8 +39347,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DictProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DictProperty-2541"><a href="#DictProperty-2541"><span class="linenos">2541</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DictProperty-2542"><a href="#DictProperty-2542"><span class="linenos">2542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&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="DictProperty-2566"><a href="#DictProperty-2566"><span class="linenos">2566</span></a><span class="k">class</span> <span class="nc">DictProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DictProperty-2567"><a href="#DictProperty-2567"><span class="linenos">2567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -38986,8 +39467,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DictSubProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DictSubProperty-2545"><a href="#DictSubProperty-2545"><span class="linenos">2545</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DictSubProperty-2546"><a href="#DictSubProperty-2546"><span class="linenos">2546</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DictSubProperty-2570"><a href="#DictSubProperty-2570"><span class="linenos">2570</span></a><span class="k">class</span> <span class="nc">DictSubProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DictSubProperty-2571"><a href="#DictSubProperty-2571"><span class="linenos">2571</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -39098,8 +39579,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#DictRange"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DictRange-2549"><a href="#DictRange-2549"><span class="linenos">2549</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="DictRange-2550"><a href="#DictRange-2550"><span class="linenos">2550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&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="DictRange-2574"><a href="#DictRange-2574"><span class="linenos">2574</span></a><span class="k">class</span> <span class="nc">DictRange</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="DictRange-2575"><a href="#DictRange-2575"><span class="linenos">2575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -39218,8 +39699,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OnCluster"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnCluster-2555"><a href="#OnCluster-2555"><span class="linenos">2555</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OnCluster-2556"><a href="#OnCluster-2556"><span class="linenos">2556</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="OnCluster-2580"><a href="#OnCluster-2580"><span class="linenos">2580</span></a><span class="k">class</span> <span class="nc">OnCluster</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OnCluster-2581"><a href="#OnCluster-2581"><span class="linenos">2581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -39338,8 +39819,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#LikeProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LikeProperty-2559"><a href="#LikeProperty-2559"><span class="linenos">2559</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="LikeProperty-2560"><a href="#LikeProperty-2560"><span class="linenos">2560</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="LikeProperty-2584"><a href="#LikeProperty-2584"><span class="linenos">2584</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="LikeProperty-2585"><a href="#LikeProperty-2585"><span class="linenos">2585</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -39458,8 +39939,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#LocationProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LocationProperty-2563"><a href="#LocationProperty-2563"><span class="linenos">2563</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="LocationProperty-2564"><a href="#LocationProperty-2564"><span class="linenos">2564</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="LocationProperty-2588"><a href="#LocationProperty-2588"><span class="linenos">2588</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="LocationProperty-2589"><a href="#LocationProperty-2589"><span class="linenos">2589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -39578,8 +40059,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#LockProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LockProperty-2567"><a href="#LockProperty-2567"><span class="linenos">2567</span></a><span class="k">class</span> <span class="nc">LockProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="LockProperty-2568"><a href="#LockProperty-2568"><span class="linenos">2568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="LockProperty-2592"><a href="#LockProperty-2592"><span class="linenos">2592</span></a><span class="k">class</span> <span class="nc">LockProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="LockProperty-2593"><a href="#LockProperty-2593"><span class="linenos">2593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -39698,14 +40179,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#LockingProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-2571"><a href="#LockingProperty-2571"><span class="linenos">2571</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="LockingProperty-2572"><a href="#LockingProperty-2572"><span class="linenos">2572</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="LockingProperty-2573"><a href="#LockingProperty-2573"><span class="linenos">2573</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LockingProperty-2574"><a href="#LockingProperty-2574"><span class="linenos">2574</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="LockingProperty-2575"><a href="#LockingProperty-2575"><span class="linenos">2575</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LockingProperty-2576"><a href="#LockingProperty-2576"><span class="linenos">2576</span></a> <span class="s2">&quot;lock_type&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="LockingProperty-2577"><a href="#LockingProperty-2577"><span class="linenos">2577</span></a> <span class="s2">&quot;override&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="LockingProperty-2578"><a href="#LockingProperty-2578"><span class="linenos">2578</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-2596"><a href="#LockingProperty-2596"><span class="linenos">2596</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="LockingProperty-2597"><a href="#LockingProperty-2597"><span class="linenos">2597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="LockingProperty-2598"><a href="#LockingProperty-2598"><span class="linenos">2598</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LockingProperty-2599"><a href="#LockingProperty-2599"><span class="linenos">2599</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="LockingProperty-2600"><a href="#LockingProperty-2600"><span class="linenos">2600</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LockingProperty-2601"><a href="#LockingProperty-2601"><span class="linenos">2601</span></a> <span class="s2">&quot;lock_type&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="LockingProperty-2602"><a href="#LockingProperty-2602"><span class="linenos">2602</span></a> <span class="s2">&quot;override&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="LockingProperty-2603"><a href="#LockingProperty-2603"><span class="linenos">2603</span></a> <span class="p">}</span>
</span></pre></div>
@@ -39824,8 +40305,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#LogProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogProperty-2581"><a href="#LogProperty-2581"><span class="linenos">2581</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="LogProperty-2582"><a href="#LogProperty-2582"><span class="linenos">2582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&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="LogProperty-2606"><a href="#LogProperty-2606"><span class="linenos">2606</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="LogProperty-2607"><a href="#LogProperty-2607"><span class="linenos">2607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -39944,8 +40425,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#MaterializedProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MaterializedProperty-2585"><a href="#MaterializedProperty-2585"><span class="linenos">2585</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="MaterializedProperty-2586"><a href="#MaterializedProperty-2586"><span class="linenos">2586</span></a> <span class="n">arg_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="MaterializedProperty-2610"><a href="#MaterializedProperty-2610"><span class="linenos">2610</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="MaterializedProperty-2611"><a href="#MaterializedProperty-2611"><span class="linenos">2611</span></a> <span class="n">arg_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>
@@ -40064,8 +40545,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#MergeBlockRatioProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MergeBlockRatioProperty-2589"><a href="#MergeBlockRatioProperty-2589"><span class="linenos">2589</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="MergeBlockRatioProperty-2590"><a href="#MergeBlockRatioProperty-2590"><span class="linenos">2590</span></a> <span class="n">arg_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;no&quot;</span><span class="p">:</span> <span class="kc">False</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 class="s2">&quot;percent&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="MergeBlockRatioProperty-2614"><a href="#MergeBlockRatioProperty-2614"><span class="linenos">2614</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="MergeBlockRatioProperty-2615"><a href="#MergeBlockRatioProperty-2615"><span class="linenos">2615</span></a> <span class="n">arg_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;no&quot;</span><span class="p">:</span> <span class="kc">False</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 class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -40184,8 +40665,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#NoPrimaryIndexProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-2593"><a href="#NoPrimaryIndexProperty-2593"><span class="linenos">2593</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="NoPrimaryIndexProperty-2594"><a href="#NoPrimaryIndexProperty-2594"><span class="linenos">2594</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-2618"><a href="#NoPrimaryIndexProperty-2618"><span class="linenos">2618</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="NoPrimaryIndexProperty-2619"><a href="#NoPrimaryIndexProperty-2619"><span class="linenos">2619</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -40304,8 +40785,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OnProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnProperty-2597"><a href="#OnProperty-2597"><span class="linenos">2597</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OnProperty-2598"><a href="#OnProperty-2598"><span class="linenos">2598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="OnProperty-2622"><a href="#OnProperty-2622"><span class="linenos">2622</span></a><span class="k">class</span> <span class="nc">OnProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OnProperty-2623"><a href="#OnProperty-2623"><span class="linenos">2623</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -40424,8 +40905,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#OnCommitProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OnCommitProperty-2601"><a href="#OnCommitProperty-2601"><span class="linenos">2601</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="OnCommitProperty-2602"><a href="#OnCommitProperty-2602"><span class="linenos">2602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&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="OnCommitProperty-2626"><a href="#OnCommitProperty-2626"><span class="linenos">2626</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="OnCommitProperty-2627"><a href="#OnCommitProperty-2627"><span class="linenos">2627</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -40544,8 +41025,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PartitionedByProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedByProperty-2605"><a href="#PartitionedByProperty-2605"><span class="linenos">2605</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="PartitionedByProperty-2606"><a href="#PartitionedByProperty-2606"><span class="linenos">2606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="PartitionedByProperty-2630"><a href="#PartitionedByProperty-2630"><span class="linenos">2630</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="PartitionedByProperty-2631"><a href="#PartitionedByProperty-2631"><span class="linenos">2631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -40664,14 +41145,14 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PartitionBoundSpec"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionBoundSpec-2610"><a href="#PartitionBoundSpec-2610"><span class="linenos">2610</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PartitionBoundSpec-2611"><a href="#PartitionBoundSpec-2611"><span class="linenos">2611</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
-</span><span id="PartitionBoundSpec-2612"><a href="#PartitionBoundSpec-2612"><span class="linenos">2612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="PartitionBoundSpec-2613"><a href="#PartitionBoundSpec-2613"><span class="linenos">2613</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2614"><a href="#PartitionBoundSpec-2614"><span class="linenos">2614</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="PartitionBoundSpec-2615"><a href="#PartitionBoundSpec-2615"><span class="linenos">2615</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2616"><a href="#PartitionBoundSpec-2616"><span class="linenos">2616</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="PartitionBoundSpec-2617"><a href="#PartitionBoundSpec-2617"><span class="linenos">2617</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionBoundSpec-2635"><a href="#PartitionBoundSpec-2635"><span class="linenos">2635</span></a><span class="k">class</span> <span class="nc">PartitionBoundSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PartitionBoundSpec-2636"><a href="#PartitionBoundSpec-2636"><span class="linenos">2636</span></a> <span class="c1"># this -&gt; IN / MODULUS, expression -&gt; REMAINDER, from_expressions -&gt; FROM (...), to_expressions -&gt; TO (...)</span>
+</span><span id="PartitionBoundSpec-2637"><a href="#PartitionBoundSpec-2637"><span class="linenos">2637</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="PartitionBoundSpec-2638"><a href="#PartitionBoundSpec-2638"><span class="linenos">2638</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2639"><a href="#PartitionBoundSpec-2639"><span class="linenos">2639</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="PartitionBoundSpec-2640"><a href="#PartitionBoundSpec-2640"><span class="linenos">2640</span></a> <span class="s2">&quot;from_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2641"><a href="#PartitionBoundSpec-2641"><span class="linenos">2641</span></a> <span class="s2">&quot;to_expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="PartitionBoundSpec-2642"><a href="#PartitionBoundSpec-2642"><span class="linenos">2642</span></a> <span class="p">}</span>
</span></pre></div>
@@ -40790,9 +41271,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#PartitionedOfProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedOfProperty-2620"><a href="#PartitionedOfProperty-2620"><span class="linenos">2620</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="PartitionedOfProperty-2621"><a href="#PartitionedOfProperty-2621"><span class="linenos">2621</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
-</span><span id="PartitionedOfProperty-2622"><a href="#PartitionedOfProperty-2622"><span class="linenos">2622</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="PartitionedOfProperty-2645"><a href="#PartitionedOfProperty-2645"><span class="linenos">2645</span></a><span class="k">class</span> <span class="nc">PartitionedOfProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="PartitionedOfProperty-2646"><a href="#PartitionedOfProperty-2646"><span class="linenos">2646</span></a> <span class="c1"># this -&gt; parent_table (schema), expression -&gt; FOR VALUES ... / DEFAULT</span>
+</span><span id="PartitionedOfProperty-2647"><a href="#PartitionedOfProperty-2647"><span class="linenos">2647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -40911,8 +41392,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#RemoteWithConnectionModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RemoteWithConnectionModelProperty-2625"><a href="#RemoteWithConnectionModelProperty-2625"><span class="linenos">2625</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="RemoteWithConnectionModelProperty-2626"><a href="#RemoteWithConnectionModelProperty-2626"><span class="linenos">2626</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="RemoteWithConnectionModelProperty-2650"><a href="#RemoteWithConnectionModelProperty-2650"><span class="linenos">2650</span></a><span class="k">class</span> <span class="nc">RemoteWithConnectionModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="RemoteWithConnectionModelProperty-2651"><a href="#RemoteWithConnectionModelProperty-2651"><span class="linenos">2651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -41031,8 +41512,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ReturnsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReturnsProperty-2629"><a href="#ReturnsProperty-2629"><span class="linenos">2629</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ReturnsProperty-2630"><a href="#ReturnsProperty-2630"><span class="linenos">2630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;table&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="ReturnsProperty-2654"><a href="#ReturnsProperty-2654"><span class="linenos">2654</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ReturnsProperty-2655"><a href="#ReturnsProperty-2655"><span class="linenos">2655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -41151,8 +41632,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#RowFormatProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatProperty-2633"><a href="#RowFormatProperty-2633"><span class="linenos">2633</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="RowFormatProperty-2634"><a href="#RowFormatProperty-2634"><span class="linenos">2634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="RowFormatProperty-2658"><a href="#RowFormatProperty-2658"><span class="linenos">2658</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="RowFormatProperty-2659"><a href="#RowFormatProperty-2659"><span class="linenos">2659</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -41271,17 +41752,17 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#RowFormatDelimitedProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-2637"><a href="#RowFormatDelimitedProperty-2637"><span class="linenos">2637</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="RowFormatDelimitedProperty-2638"><a href="#RowFormatDelimitedProperty-2638"><span class="linenos">2638</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
-</span><span id="RowFormatDelimitedProperty-2639"><a href="#RowFormatDelimitedProperty-2639"><span class="linenos">2639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RowFormatDelimitedProperty-2640"><a href="#RowFormatDelimitedProperty-2640"><span class="linenos">2640</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2641"><a href="#RowFormatDelimitedProperty-2641"><span class="linenos">2641</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2642"><a href="#RowFormatDelimitedProperty-2642"><span class="linenos">2642</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2643"><a href="#RowFormatDelimitedProperty-2643"><span class="linenos">2643</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2644"><a href="#RowFormatDelimitedProperty-2644"><span class="linenos">2644</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2645"><a href="#RowFormatDelimitedProperty-2645"><span class="linenos">2645</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2646"><a href="#RowFormatDelimitedProperty-2646"><span class="linenos">2646</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RowFormatDelimitedProperty-2647"><a href="#RowFormatDelimitedProperty-2647"><span class="linenos">2647</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-2662"><a href="#RowFormatDelimitedProperty-2662"><span class="linenos">2662</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="RowFormatDelimitedProperty-2663"><a href="#RowFormatDelimitedProperty-2663"><span class="linenos">2663</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
+</span><span id="RowFormatDelimitedProperty-2664"><a href="#RowFormatDelimitedProperty-2664"><span class="linenos">2664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RowFormatDelimitedProperty-2665"><a href="#RowFormatDelimitedProperty-2665"><span class="linenos">2665</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2666"><a href="#RowFormatDelimitedProperty-2666"><span class="linenos">2666</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2667"><a href="#RowFormatDelimitedProperty-2667"><span class="linenos">2667</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2668"><a href="#RowFormatDelimitedProperty-2668"><span class="linenos">2668</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2669"><a href="#RowFormatDelimitedProperty-2669"><span class="linenos">2669</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2670"><a href="#RowFormatDelimitedProperty-2670"><span class="linenos">2670</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2671"><a href="#RowFormatDelimitedProperty-2671"><span class="linenos">2671</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RowFormatDelimitedProperty-2672"><a href="#RowFormatDelimitedProperty-2672"><span class="linenos">2672</span></a> <span class="p">}</span>
</span></pre></div>
@@ -41401,8 +41882,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#RowFormatSerdeProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatSerdeProperty-2650"><a href="#RowFormatSerdeProperty-2650"><span class="linenos">2650</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="RowFormatSerdeProperty-2651"><a href="#RowFormatSerdeProperty-2651"><span class="linenos">2651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&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="RowFormatSerdeProperty-2675"><a href="#RowFormatSerdeProperty-2675"><span class="linenos">2675</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="RowFormatSerdeProperty-2676"><a href="#RowFormatSerdeProperty-2676"><span class="linenos">2676</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;serde_properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -41521,16 +42002,16 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#QueryTransform"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="QueryTransform-2655"><a href="#QueryTransform-2655"><span class="linenos">2655</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="QueryTransform-2656"><a href="#QueryTransform-2656"><span class="linenos">2656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="QueryTransform-2657"><a href="#QueryTransform-2657"><span class="linenos">2657</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="QueryTransform-2658"><a href="#QueryTransform-2658"><span class="linenos">2658</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="QueryTransform-2659"><a href="#QueryTransform-2659"><span class="linenos">2659</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2660"><a href="#QueryTransform-2660"><span class="linenos">2660</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2661"><a href="#QueryTransform-2661"><span class="linenos">2661</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2662"><a href="#QueryTransform-2662"><span class="linenos">2662</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2663"><a href="#QueryTransform-2663"><span class="linenos">2663</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="QueryTransform-2664"><a href="#QueryTransform-2664"><span class="linenos">2664</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="QueryTransform-2680"><a href="#QueryTransform-2680"><span class="linenos">2680</span></a><span class="k">class</span> <span class="nc">QueryTransform</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="QueryTransform-2681"><a href="#QueryTransform-2681"><span class="linenos">2681</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="QueryTransform-2682"><a href="#QueryTransform-2682"><span class="linenos">2682</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="QueryTransform-2683"><a href="#QueryTransform-2683"><span class="linenos">2683</span></a> <span class="s2">&quot;command_script&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="QueryTransform-2684"><a href="#QueryTransform-2684"><span class="linenos">2684</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2685"><a href="#QueryTransform-2685"><span class="linenos">2685</span></a> <span class="s2">&quot;row_format_before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2686"><a href="#QueryTransform-2686"><span class="linenos">2686</span></a> <span class="s2">&quot;record_writer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2687"><a href="#QueryTransform-2687"><span class="linenos">2687</span></a> <span class="s2">&quot;row_format_after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2688"><a href="#QueryTransform-2688"><span class="linenos">2688</span></a> <span class="s2">&quot;record_reader&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="QueryTransform-2689"><a href="#QueryTransform-2689"><span class="linenos">2689</span></a> <span class="p">}</span>
</span></pre></div>
@@ -41650,8 +42131,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SampleProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SampleProperty-2667"><a href="#SampleProperty-2667"><span class="linenos">2667</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SampleProperty-2668"><a href="#SampleProperty-2668"><span class="linenos">2668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="SampleProperty-2692"><a href="#SampleProperty-2692"><span class="linenos">2692</span></a><span class="k">class</span> <span class="nc">SampleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SampleProperty-2693"><a href="#SampleProperty-2693"><span class="linenos">2693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -41770,8 +42251,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SchemaCommentProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SchemaCommentProperty-2671"><a href="#SchemaCommentProperty-2671"><span class="linenos">2671</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SchemaCommentProperty-2672"><a href="#SchemaCommentProperty-2672"><span class="linenos">2672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="SchemaCommentProperty-2696"><a href="#SchemaCommentProperty-2696"><span class="linenos">2696</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SchemaCommentProperty-2697"><a href="#SchemaCommentProperty-2697"><span class="linenos">2697</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -41890,8 +42371,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SerdeProperties"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SerdeProperties-2675"><a href="#SerdeProperties-2675"><span class="linenos">2675</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SerdeProperties-2676"><a href="#SerdeProperties-2676"><span class="linenos">2676</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SerdeProperties-2700"><a href="#SerdeProperties-2700"><span class="linenos">2700</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SerdeProperties-2701"><a href="#SerdeProperties-2701"><span class="linenos">2701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42010,8 +42491,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SetProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetProperty-2679"><a href="#SetProperty-2679"><span class="linenos">2679</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SetProperty-2680"><a href="#SetProperty-2680"><span class="linenos">2680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;multi&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="SetProperty-2704"><a href="#SetProperty-2704"><span class="linenos">2704</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SetProperty-2705"><a href="#SetProperty-2705"><span class="linenos">2705</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;multi&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42130,8 +42611,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SharingProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SharingProperty-2683"><a href="#SharingProperty-2683"><span class="linenos">2683</span></a><span class="k">class</span> <span class="nc">SharingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SharingProperty-2684"><a href="#SharingProperty-2684"><span class="linenos">2684</span></a> <span class="n">arg_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="SharingProperty-2708"><a href="#SharingProperty-2708"><span class="linenos">2708</span></a><span class="k">class</span> <span class="nc">SharingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SharingProperty-2709"><a href="#SharingProperty-2709"><span class="linenos">2709</span></a> <span class="n">arg_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>
@@ -42250,8 +42731,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SetConfigProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SetConfigProperty-2687"><a href="#SetConfigProperty-2687"><span class="linenos">2687</span></a><span class="k">class</span> <span class="nc">SetConfigProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SetConfigProperty-2688"><a href="#SetConfigProperty-2688"><span class="linenos">2688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="SetConfigProperty-2712"><a href="#SetConfigProperty-2712"><span class="linenos">2712</span></a><span class="k">class</span> <span class="nc">SetConfigProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SetConfigProperty-2713"><a href="#SetConfigProperty-2713"><span class="linenos">2713</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42370,8 +42851,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SettingsProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SettingsProperty-2691"><a href="#SettingsProperty-2691"><span class="linenos">2691</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SettingsProperty-2692"><a href="#SettingsProperty-2692"><span class="linenos">2692</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SettingsProperty-2716"><a href="#SettingsProperty-2716"><span class="linenos">2716</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SettingsProperty-2717"><a href="#SettingsProperty-2717"><span class="linenos">2717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42490,8 +42971,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SortKeyProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortKeyProperty-2695"><a href="#SortKeyProperty-2695"><span class="linenos">2695</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SortKeyProperty-2696"><a href="#SortKeyProperty-2696"><span class="linenos">2696</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;compound&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="SortKeyProperty-2720"><a href="#SortKeyProperty-2720"><span class="linenos">2720</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SortKeyProperty-2721"><a href="#SortKeyProperty-2721"><span class="linenos">2721</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;compound&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -42610,8 +43091,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SqlReadWriteProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SqlReadWriteProperty-2699"><a href="#SqlReadWriteProperty-2699"><span class="linenos">2699</span></a><span class="k">class</span> <span class="nc">SqlReadWriteProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SqlReadWriteProperty-2700"><a href="#SqlReadWriteProperty-2700"><span class="linenos">2700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="SqlReadWriteProperty-2724"><a href="#SqlReadWriteProperty-2724"><span class="linenos">2724</span></a><span class="k">class</span> <span class="nc">SqlReadWriteProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SqlReadWriteProperty-2725"><a href="#SqlReadWriteProperty-2725"><span class="linenos">2725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42730,8 +43211,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#SqlSecurityProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SqlSecurityProperty-2703"><a href="#SqlSecurityProperty-2703"><span class="linenos">2703</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="SqlSecurityProperty-2704"><a href="#SqlSecurityProperty-2704"><span class="linenos">2704</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;definer&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="SqlSecurityProperty-2728"><a href="#SqlSecurityProperty-2728"><span class="linenos">2728</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="SqlSecurityProperty-2729"><a href="#SqlSecurityProperty-2729"><span class="linenos">2729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;definer&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42850,8 +43331,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#StabilityProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StabilityProperty-2707"><a href="#StabilityProperty-2707"><span class="linenos">2707</span></a><span class="k">class</span> <span class="nc">StabilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="StabilityProperty-2708"><a href="#StabilityProperty-2708"><span class="linenos">2708</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="StabilityProperty-2732"><a href="#StabilityProperty-2732"><span class="linenos">2732</span></a><span class="k">class</span> <span class="nc">StabilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="StabilityProperty-2733"><a href="#StabilityProperty-2733"><span class="linenos">2733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -42970,8 +43451,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#TemporaryProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TemporaryProperty-2711"><a href="#TemporaryProperty-2711"><span class="linenos">2711</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="TemporaryProperty-2712"><a href="#TemporaryProperty-2712"><span class="linenos">2712</span></a> <span class="n">arg_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="TemporaryProperty-2736"><a href="#TemporaryProperty-2736"><span class="linenos">2736</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="TemporaryProperty-2737"><a href="#TemporaryProperty-2737"><span class="linenos">2737</span></a> <span class="n">arg_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>
@@ -43090,8 +43571,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#TransformModelProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TransformModelProperty-2715"><a href="#TransformModelProperty-2715"><span class="linenos">2715</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="TransformModelProperty-2716"><a href="#TransformModelProperty-2716"><span class="linenos">2716</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TransformModelProperty-2740"><a href="#TransformModelProperty-2740"><span class="linenos">2740</span></a><span class="k">class</span> <span class="nc">TransformModelProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="TransformModelProperty-2741"><a href="#TransformModelProperty-2741"><span class="linenos">2741</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -43210,8 +43691,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#TransientProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TransientProperty-2719"><a href="#TransientProperty-2719"><span class="linenos">2719</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="TransientProperty-2720"><a href="#TransientProperty-2720"><span class="linenos">2720</span></a> <span class="n">arg_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="TransientProperty-2744"><a href="#TransientProperty-2744"><span class="linenos">2744</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="TransientProperty-2745"><a href="#TransientProperty-2745"><span class="linenos">2745</span></a> <span class="n">arg_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>
@@ -43330,8 +43811,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#UnloggedProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnloggedProperty-2723"><a href="#UnloggedProperty-2723"><span class="linenos">2723</span></a><span class="k">class</span> <span class="nc">UnloggedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="UnloggedProperty-2724"><a href="#UnloggedProperty-2724"><span class="linenos">2724</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnloggedProperty-2748"><a href="#UnloggedProperty-2748"><span class="linenos">2748</span></a><span class="k">class</span> <span class="nc">UnloggedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="UnloggedProperty-2749"><a href="#UnloggedProperty-2749"><span class="linenos">2749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -43450,8 +43931,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#ViewAttributeProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ViewAttributeProperty-2728"><a href="#ViewAttributeProperty-2728"><span class="linenos">2728</span></a><span class="k">class</span> <span class="nc">ViewAttributeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="ViewAttributeProperty-2729"><a href="#ViewAttributeProperty-2729"><span class="linenos">2729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="ViewAttributeProperty-2753"><a href="#ViewAttributeProperty-2753"><span class="linenos">2753</span></a><span class="k">class</span> <span class="nc">ViewAttributeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="ViewAttributeProperty-2754"><a href="#ViewAttributeProperty-2754"><span class="linenos">2754</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -43570,8 +44051,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#VolatileProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VolatileProperty-2732"><a href="#VolatileProperty-2732"><span class="linenos">2732</span></a><span class="k">class</span> <span class="nc">VolatileProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="VolatileProperty-2733"><a href="#VolatileProperty-2733"><span class="linenos">2733</span></a> <span class="n">arg_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="VolatileProperty-2757"><a href="#VolatileProperty-2757"><span class="linenos">2757</span></a><span class="k">class</span> <span class="nc">VolatileProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="VolatileProperty-2758"><a href="#VolatileProperty-2758"><span class="linenos">2758</span></a> <span class="n">arg_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>
@@ -43690,8 +44171,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#WithDataProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithDataProperty-2736"><a href="#WithDataProperty-2736"><span class="linenos">2736</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="WithDataProperty-2737"><a href="#WithDataProperty-2737"><span class="linenos">2737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;statistics&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="WithDataProperty-2761"><a href="#WithDataProperty-2761"><span class="linenos">2761</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="WithDataProperty-2762"><a href="#WithDataProperty-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;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;statistics&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -43810,8 +44291,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#WithJournalTableProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithJournalTableProperty-2740"><a href="#WithJournalTableProperty-2740"><span class="linenos">2740</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="WithJournalTableProperty-2741"><a href="#WithJournalTableProperty-2741"><span class="linenos">2741</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="WithJournalTableProperty-2765"><a href="#WithJournalTableProperty-2765"><span class="linenos">2765</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="WithJournalTableProperty-2766"><a href="#WithJournalTableProperty-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></pre></div>
@@ -43930,9 +44411,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#WithSystemVersioningProperty"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithSystemVersioningProperty-2744"><a href="#WithSystemVersioningProperty-2744"><span class="linenos">2744</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
-</span><span id="WithSystemVersioningProperty-2745"><a href="#WithSystemVersioningProperty-2745"><span class="linenos">2745</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
-</span><span id="WithSystemVersioningProperty-2746"><a href="#WithSystemVersioningProperty-2746"><span class="linenos">2746</span></a> <span class="n">arg_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="WithSystemVersioningProperty-2769"><a href="#WithSystemVersioningProperty-2769"><span class="linenos">2769</span></a><span class="k">class</span> <span class="nc">WithSystemVersioningProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
+</span><span id="WithSystemVersioningProperty-2770"><a href="#WithSystemVersioningProperty-2770"><span class="linenos">2770</span></a> <span class="c1"># this -&gt; history table name, expression -&gt; data consistency check</span>
+</span><span id="WithSystemVersioningProperty-2771"><a href="#WithSystemVersioningProperty-2771"><span class="linenos">2771</span></a> <span class="n">arg_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>
@@ -44051,67 +44532,67 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Properties"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Properties-2749"><a href="#Properties-2749"><span class="linenos">2749</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Properties-2750"><a href="#Properties-2750"><span class="linenos">2750</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="Properties-2751"><a href="#Properties-2751"><span class="linenos">2751</span></a>
-</span><span id="Properties-2752"><a href="#Properties-2752"><span class="linenos">2752</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Properties-2753"><a href="#Properties-2753"><span class="linenos">2753</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
-</span><span id="Properties-2754"><a href="#Properties-2754"><span class="linenos">2754</span></a> <span class="s2">&quot;AUTO_INCREMENT&quot;</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span>
-</span><span id="Properties-2755"><a href="#Properties-2755"><span class="linenos">2755</span></a> <span class="s2">&quot;CHARACTER SET&quot;</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span>
-</span><span id="Properties-2756"><a href="#Properties-2756"><span class="linenos">2756</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
-</span><span id="Properties-2757"><a href="#Properties-2757"><span class="linenos">2757</span></a> <span class="s2">&quot;COLLATE&quot;</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span>
-</span><span id="Properties-2758"><a href="#Properties-2758"><span class="linenos">2758</span></a> <span class="s2">&quot;COMMENT&quot;</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span>
-</span><span id="Properties-2759"><a href="#Properties-2759"><span class="linenos">2759</span></a> <span class="s2">&quot;DEFINER&quot;</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span>
-</span><span id="Properties-2760"><a href="#Properties-2760"><span class="linenos">2760</span></a> <span class="s2">&quot;DISTKEY&quot;</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span>
-</span><span id="Properties-2761"><a href="#Properties-2761"><span class="linenos">2761</span></a> <span class="s2">&quot;DISTSTYLE&quot;</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span>
-</span><span id="Properties-2762"><a href="#Properties-2762"><span class="linenos">2762</span></a> <span class="s2">&quot;ENGINE&quot;</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span>
-</span><span id="Properties-2763"><a href="#Properties-2763"><span class="linenos">2763</span></a> <span class="s2">&quot;EXECUTE AS&quot;</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span>
-</span><span id="Properties-2764"><a href="#Properties-2764"><span class="linenos">2764</span></a> <span class="s2">&quot;FORMAT&quot;</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span>
-</span><span id="Properties-2765"><a href="#Properties-2765"><span class="linenos">2765</span></a> <span class="s2">&quot;LANGUAGE&quot;</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span>
-</span><span id="Properties-2766"><a href="#Properties-2766"><span class="linenos">2766</span></a> <span class="s2">&quot;LOCATION&quot;</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span>
-</span><span id="Properties-2767"><a href="#Properties-2767"><span class="linenos">2767</span></a> <span class="s2">&quot;LOCK&quot;</span><span class="p">:</span> <span class="n">LockProperty</span><span class="p">,</span>
-</span><span id="Properties-2768"><a href="#Properties-2768"><span class="linenos">2768</span></a> <span class="s2">&quot;PARTITIONED_BY&quot;</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span>
-</span><span id="Properties-2769"><a href="#Properties-2769"><span class="linenos">2769</span></a> <span class="s2">&quot;RETURNS&quot;</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span>
-</span><span id="Properties-2770"><a href="#Properties-2770"><span class="linenos">2770</span></a> <span class="s2">&quot;ROW_FORMAT&quot;</span><span class="p">:</span> <span class="n">RowFormatProperty</span><span class="p">,</span>
-</span><span id="Properties-2771"><a href="#Properties-2771"><span class="linenos">2771</span></a> <span class="s2">&quot;SORTKEY&quot;</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span>
-</span><span id="Properties-2772"><a href="#Properties-2772"><span class="linenos">2772</span></a> <span class="p">}</span>
-</span><span id="Properties-2773"><a href="#Properties-2773"><span class="linenos">2773</span></a>
-</span><span id="Properties-2774"><a href="#Properties-2774"><span class="linenos">2774</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</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">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="Properties-2775"><a href="#Properties-2775"><span class="linenos">2775</span></a>
-</span><span id="Properties-2776"><a href="#Properties-2776"><span class="linenos">2776</span></a> <span class="c1"># CREATE property locations</span>
-</span><span id="Properties-2777"><a href="#Properties-2777"><span class="linenos">2777</span></a> <span class="c1"># Form: schema specified</span>
-</span><span id="Properties-2778"><a href="#Properties-2778"><span class="linenos">2778</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-2779"><a href="#Properties-2779"><span class="linenos">2779</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-2780"><a href="#Properties-2780"><span class="linenos">2780</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
-</span><span id="Properties-2781"><a href="#Properties-2781"><span class="linenos">2781</span></a> <span class="c1"># with ([POST_WITH])</span>
-</span><span id="Properties-2782"><a href="#Properties-2782"><span class="linenos">2782</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
-</span><span id="Properties-2783"><a href="#Properties-2783"><span class="linenos">2783</span></a> <span class="c1">#</span>
-</span><span id="Properties-2784"><a href="#Properties-2784"><span class="linenos">2784</span></a> <span class="c1"># Form: alias selection</span>
-</span><span id="Properties-2785"><a href="#Properties-2785"><span class="linenos">2785</span></a> <span class="c1"># create [POST_CREATE]</span>
-</span><span id="Properties-2786"><a href="#Properties-2786"><span class="linenos">2786</span></a> <span class="c1"># table a [POST_NAME]</span>
-</span><span id="Properties-2787"><a href="#Properties-2787"><span class="linenos">2787</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
-</span><span id="Properties-2788"><a href="#Properties-2788"><span class="linenos">2788</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
-</span><span id="Properties-2789"><a href="#Properties-2789"><span class="linenos">2789</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="Properties-2790"><a href="#Properties-2790"><span class="linenos">2790</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2791"><a href="#Properties-2791"><span class="linenos">2791</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2792"><a href="#Properties-2792"><span class="linenos">2792</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2793"><a href="#Properties-2793"><span class="linenos">2793</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2794"><a href="#Properties-2794"><span class="linenos">2794</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2795"><a href="#Properties-2795"><span class="linenos">2795</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2796"><a href="#Properties-2796"><span class="linenos">2796</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties-2797"><a href="#Properties-2797"><span class="linenos">2797</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Properties-2774"><a href="#Properties-2774"><span class="linenos">2774</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Properties-2775"><a href="#Properties-2775"><span class="linenos">2775</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="Properties-2776"><a href="#Properties-2776"><span class="linenos">2776</span></a>
+</span><span id="Properties-2777"><a href="#Properties-2777"><span class="linenos">2777</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Properties-2778"><a href="#Properties-2778"><span class="linenos">2778</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
+</span><span id="Properties-2779"><a href="#Properties-2779"><span class="linenos">2779</span></a> <span class="s2">&quot;AUTO_INCREMENT&quot;</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span>
+</span><span id="Properties-2780"><a href="#Properties-2780"><span class="linenos">2780</span></a> <span class="s2">&quot;CHARACTER SET&quot;</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span>
+</span><span id="Properties-2781"><a href="#Properties-2781"><span class="linenos">2781</span></a> <span class="s2">&quot;CLUSTERED_BY&quot;</span><span class="p">:</span> <span class="n">ClusteredByProperty</span><span class="p">,</span>
+</span><span id="Properties-2782"><a href="#Properties-2782"><span class="linenos">2782</span></a> <span class="s2">&quot;COLLATE&quot;</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span>
+</span><span id="Properties-2783"><a href="#Properties-2783"><span class="linenos">2783</span></a> <span class="s2">&quot;COMMENT&quot;</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span>
+</span><span id="Properties-2784"><a href="#Properties-2784"><span class="linenos">2784</span></a> <span class="s2">&quot;DEFINER&quot;</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span>
+</span><span id="Properties-2785"><a href="#Properties-2785"><span class="linenos">2785</span></a> <span class="s2">&quot;DISTKEY&quot;</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span>
+</span><span id="Properties-2786"><a href="#Properties-2786"><span class="linenos">2786</span></a> <span class="s2">&quot;DISTSTYLE&quot;</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span>
+</span><span id="Properties-2787"><a href="#Properties-2787"><span class="linenos">2787</span></a> <span class="s2">&quot;ENGINE&quot;</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span>
+</span><span id="Properties-2788"><a href="#Properties-2788"><span class="linenos">2788</span></a> <span class="s2">&quot;EXECUTE AS&quot;</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span>
+</span><span id="Properties-2789"><a href="#Properties-2789"><span class="linenos">2789</span></a> <span class="s2">&quot;FORMAT&quot;</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span>
+</span><span id="Properties-2790"><a href="#Properties-2790"><span class="linenos">2790</span></a> <span class="s2">&quot;LANGUAGE&quot;</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span>
+</span><span id="Properties-2791"><a href="#Properties-2791"><span class="linenos">2791</span></a> <span class="s2">&quot;LOCATION&quot;</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span>
+</span><span id="Properties-2792"><a href="#Properties-2792"><span class="linenos">2792</span></a> <span class="s2">&quot;LOCK&quot;</span><span class="p">:</span> <span class="n">LockProperty</span><span class="p">,</span>
+</span><span id="Properties-2793"><a href="#Properties-2793"><span class="linenos">2793</span></a> <span class="s2">&quot;PARTITIONED_BY&quot;</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span>
+</span><span id="Properties-2794"><a href="#Properties-2794"><span class="linenos">2794</span></a> <span class="s2">&quot;RETURNS&quot;</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span>
+</span><span id="Properties-2795"><a href="#Properties-2795"><span class="linenos">2795</span></a> <span class="s2">&quot;ROW_FORMAT&quot;</span><span class="p">:</span> <span class="n">RowFormatProperty</span><span class="p">,</span>
+</span><span id="Properties-2796"><a href="#Properties-2796"><span class="linenos">2796</span></a> <span class="s2">&quot;SORTKEY&quot;</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span>
+</span><span id="Properties-2797"><a href="#Properties-2797"><span class="linenos">2797</span></a> <span class="p">}</span>
</span><span id="Properties-2798"><a href="#Properties-2798"><span class="linenos">2798</span></a>
-</span><span id="Properties-2799"><a href="#Properties-2799"><span class="linenos">2799</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties-2800"><a href="#Properties-2800"><span class="linenos">2800</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties-2801"><a href="#Properties-2801"><span class="linenos">2801</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties-2802"><a href="#Properties-2802"><span class="linenos">2802</span></a> <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">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Properties-2803"><a href="#Properties-2803"><span class="linenos">2803</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="Properties-2804"><a href="#Properties-2804"><span class="linenos">2804</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties-2805"><a href="#Properties-2805"><span class="linenos">2805</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
-</span><span id="Properties-2806"><a href="#Properties-2806"><span class="linenos">2806</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties-2807"><a href="#Properties-2807"><span class="linenos">2807</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><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">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
-</span><span id="Properties-2808"><a href="#Properties-2808"><span class="linenos">2808</span></a>
-</span><span id="Properties-2809"><a href="#Properties-2809"><span class="linenos">2809</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
+</span><span id="Properties-2799"><a href="#Properties-2799"><span class="linenos">2799</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</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">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="Properties-2800"><a href="#Properties-2800"><span class="linenos">2800</span></a>
+</span><span id="Properties-2801"><a href="#Properties-2801"><span class="linenos">2801</span></a> <span class="c1"># CREATE property locations</span>
+</span><span id="Properties-2802"><a href="#Properties-2802"><span class="linenos">2802</span></a> <span class="c1"># Form: schema specified</span>
+</span><span id="Properties-2803"><a href="#Properties-2803"><span class="linenos">2803</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-2804"><a href="#Properties-2804"><span class="linenos">2804</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-2805"><a href="#Properties-2805"><span class="linenos">2805</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
+</span><span id="Properties-2806"><a href="#Properties-2806"><span class="linenos">2806</span></a> <span class="c1"># with ([POST_WITH])</span>
+</span><span id="Properties-2807"><a href="#Properties-2807"><span class="linenos">2807</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
+</span><span id="Properties-2808"><a href="#Properties-2808"><span class="linenos">2808</span></a> <span class="c1">#</span>
+</span><span id="Properties-2809"><a href="#Properties-2809"><span class="linenos">2809</span></a> <span class="c1"># Form: alias selection</span>
+</span><span id="Properties-2810"><a href="#Properties-2810"><span class="linenos">2810</span></a> <span class="c1"># create [POST_CREATE]</span>
+</span><span id="Properties-2811"><a href="#Properties-2811"><span class="linenos">2811</span></a> <span class="c1"># table a [POST_NAME]</span>
+</span><span id="Properties-2812"><a href="#Properties-2812"><span class="linenos">2812</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
+</span><span id="Properties-2813"><a href="#Properties-2813"><span class="linenos">2813</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
+</span><span id="Properties-2814"><a href="#Properties-2814"><span class="linenos">2814</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="Properties-2815"><a href="#Properties-2815"><span class="linenos">2815</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2816"><a href="#Properties-2816"><span class="linenos">2816</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2817"><a href="#Properties-2817"><span class="linenos">2817</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2818"><a href="#Properties-2818"><span class="linenos">2818</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2819"><a href="#Properties-2819"><span class="linenos">2819</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2820"><a href="#Properties-2820"><span class="linenos">2820</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2821"><a href="#Properties-2821"><span class="linenos">2821</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2822"><a href="#Properties-2822"><span class="linenos">2822</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties-2823"><a href="#Properties-2823"><span class="linenos">2823</span></a>
+</span><span id="Properties-2824"><a href="#Properties-2824"><span class="linenos">2824</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties-2825"><a href="#Properties-2825"><span class="linenos">2825</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="Properties-2826"><a href="#Properties-2826"><span class="linenos">2826</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties-2827"><a href="#Properties-2827"><span class="linenos">2827</span></a> <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">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Properties-2828"><a href="#Properties-2828"><span class="linenos">2828</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="Properties-2829"><a href="#Properties-2829"><span class="linenos">2829</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties-2830"><a href="#Properties-2830"><span class="linenos">2830</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+</span><span id="Properties-2831"><a href="#Properties-2831"><span class="linenos">2831</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties-2832"><a href="#Properties-2832"><span class="linenos">2832</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><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">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+</span><span id="Properties-2833"><a href="#Properties-2833"><span class="linenos">2833</span></a>
+</span><span id="Properties-2834"><a href="#Properties-2834"><span class="linenos">2834</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
</span></pre></div>
@@ -44167,17 +44648,17 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Properties.from_dict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.from_dict-2799"><a href="#Properties.from_dict-2799"><span class="linenos">2799</span></a> <span class="nd">@classmethod</span>
-</span><span id="Properties.from_dict-2800"><a href="#Properties.from_dict-2800"><span class="linenos">2800</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
-</span><span id="Properties.from_dict-2801"><a href="#Properties.from_dict-2801"><span class="linenos">2801</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Properties.from_dict-2802"><a href="#Properties.from_dict-2802"><span class="linenos">2802</span></a> <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">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="Properties.from_dict-2803"><a href="#Properties.from_dict-2803"><span class="linenos">2803</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
-</span><span id="Properties.from_dict-2804"><a href="#Properties.from_dict-2804"><span class="linenos">2804</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
-</span><span id="Properties.from_dict-2805"><a href="#Properties.from_dict-2805"><span class="linenos">2805</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
-</span><span id="Properties.from_dict-2806"><a href="#Properties.from_dict-2806"><span class="linenos">2806</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Properties.from_dict-2807"><a href="#Properties.from_dict-2807"><span class="linenos">2807</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><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">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
-</span><span id="Properties.from_dict-2808"><a href="#Properties.from_dict-2808"><span class="linenos">2808</span></a>
-</span><span id="Properties.from_dict-2809"><a href="#Properties.from_dict-2809"><span class="linenos">2809</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.from_dict-2824"><a href="#Properties.from_dict-2824"><span class="linenos">2824</span></a> <span class="nd">@classmethod</span>
+</span><span id="Properties.from_dict-2825"><a href="#Properties.from_dict-2825"><span class="linenos">2825</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</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="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2826"><a href="#Properties.from_dict-2826"><span class="linenos">2826</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Properties.from_dict-2827"><a href="#Properties.from_dict-2827"><span class="linenos">2827</span></a> <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">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="Properties.from_dict-2828"><a href="#Properties.from_dict-2828"><span class="linenos">2828</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
+</span><span id="Properties.from_dict-2829"><a href="#Properties.from_dict-2829"><span class="linenos">2829</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2830"><a href="#Properties.from_dict-2830"><span class="linenos">2830</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+</span><span id="Properties.from_dict-2831"><a href="#Properties.from_dict-2831"><span class="linenos">2831</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Properties.from_dict-2832"><a href="#Properties.from_dict-2832"><span class="linenos">2832</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><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">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
+</span><span id="Properties.from_dict-2833"><a href="#Properties.from_dict-2833"><span class="linenos">2833</span></a>
+</span><span id="Properties.from_dict-2834"><a href="#Properties.from_dict-2834"><span class="linenos">2834</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
</span></pre></div>
@@ -44285,15 +44766,15 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Properties.Location"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.Location-2789"><a href="#Properties.Location-2789"><span class="linenos">2789</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="Properties.Location-2790"><a href="#Properties.Location-2790"><span class="linenos">2790</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2791"><a href="#Properties.Location-2791"><span class="linenos">2791</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2792"><a href="#Properties.Location-2792"><span class="linenos">2792</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2793"><a href="#Properties.Location-2793"><span class="linenos">2793</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2794"><a href="#Properties.Location-2794"><span class="linenos">2794</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2795"><a href="#Properties.Location-2795"><span class="linenos">2795</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2796"><a href="#Properties.Location-2796"><span class="linenos">2796</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="Properties.Location-2797"><a href="#Properties.Location-2797"><span class="linenos">2797</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.Location-2814"><a href="#Properties.Location-2814"><span class="linenos">2814</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="Properties.Location-2815"><a href="#Properties.Location-2815"><span class="linenos">2815</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2816"><a href="#Properties.Location-2816"><span class="linenos">2816</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2817"><a href="#Properties.Location-2817"><span class="linenos">2817</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2818"><a href="#Properties.Location-2818"><span class="linenos">2818</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2819"><a href="#Properties.Location-2819"><span class="linenos">2819</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2820"><a href="#Properties.Location-2820"><span class="linenos">2820</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2821"><a href="#Properties.Location-2821"><span class="linenos">2821</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="Properties.Location-2822"><a href="#Properties.Location-2822"><span class="linenos">2822</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -44419,8 +44900,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Qualify"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-2812"><a href="#Qualify-2812"><span class="linenos">2812</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Qualify-2813"><a href="#Qualify-2813"><span class="linenos">2813</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-2837"><a href="#Qualify-2837"><span class="linenos">2837</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Qualify-2838"><a href="#Qualify-2838"><span class="linenos">2838</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44528,8 +45009,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#InputOutputFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="InputOutputFormat-2816"><a href="#InputOutputFormat-2816"><span class="linenos">2816</span></a><span class="k">class</span> <span class="nc">InputOutputFormat</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="InputOutputFormat-2817"><a href="#InputOutputFormat-2817"><span class="linenos">2817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_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="InputOutputFormat-2841"><a href="#InputOutputFormat-2841"><span class="linenos">2841</span></a><span class="k">class</span> <span class="nc">InputOutputFormat</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="InputOutputFormat-2842"><a href="#InputOutputFormat-2842"><span class="linenos">2842</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -44648,8 +45129,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Return"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Return-2821"><a href="#Return-2821"><span class="linenos">2821</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Return-2822"><a href="#Return-2822"><span class="linenos">2822</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Return-2846"><a href="#Return-2846"><span class="linenos">2846</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Return-2847"><a href="#Return-2847"><span class="linenos">2847</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -44757,8 +45238,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Reference"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reference-2825"><a href="#Reference-2825"><span class="linenos">2825</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Reference-2826"><a href="#Reference-2826"><span class="linenos">2826</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;options&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="Reference-2850"><a href="#Reference-2850"><span class="linenos">2850</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Reference-2851"><a href="#Reference-2851"><span class="linenos">2851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -44877,32 +45358,32 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Tuple"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-2829"><a href="#Tuple-2829"><span class="linenos">2829</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Tuple-2830"><a href="#Tuple-2830"><span class="linenos">2830</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="Tuple-2831"><a href="#Tuple-2831"><span class="linenos">2831</span></a>
-</span><span id="Tuple-2832"><a href="#Tuple-2832"><span class="linenos">2832</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Tuple-2833"><a href="#Tuple-2833"><span class="linenos">2833</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Tuple-2834"><a href="#Tuple-2834"><span class="linenos">2834</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Tuple-2835"><a href="#Tuple-2835"><span class="linenos">2835</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2836"><a href="#Tuple-2836"><span class="linenos">2836</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2837"><a href="#Tuple-2837"><span class="linenos">2837</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Tuple-2838"><a href="#Tuple-2838"><span class="linenos">2838</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Tuple-2839"><a href="#Tuple-2839"><span class="linenos">2839</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Tuple-2840"><a href="#Tuple-2840"><span class="linenos">2840</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Tuple-2841"><a href="#Tuple-2841"><span class="linenos">2841</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Tuple-2842"><a href="#Tuple-2842"><span class="linenos">2842</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Tuple-2843"><a href="#Tuple-2843"><span class="linenos">2843</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple-2844"><a href="#Tuple-2844"><span class="linenos">2844</span></a> <span class="n">unnest</span><span class="o">=</span><span class="p">(</span>
-</span><span id="Tuple-2845"><a href="#Tuple-2845"><span class="linenos">2845</span></a> <span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Tuple-2846"><a href="#Tuple-2846"><span class="linenos">2846</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Tuple-2847"><a href="#Tuple-2847"><span class="linenos">2847</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Tuple-2848"><a href="#Tuple-2848"><span class="linenos">2848</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Tuple-2849"><a href="#Tuple-2849"><span class="linenos">2849</span></a> <span class="p">]</span>
-</span><span id="Tuple-2850"><a href="#Tuple-2850"><span class="linenos">2850</span></a> <span class="p">)</span>
-</span><span id="Tuple-2851"><a href="#Tuple-2851"><span class="linenos">2851</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Tuple-2852"><a href="#Tuple-2852"><span class="linenos">2852</span></a> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="Tuple-2853"><a href="#Tuple-2853"><span class="linenos">2853</span></a> <span class="p">),</span>
-</span><span id="Tuple-2854"><a href="#Tuple-2854"><span class="linenos">2854</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-2854"><a href="#Tuple-2854"><span class="linenos">2854</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Tuple-2855"><a href="#Tuple-2855"><span class="linenos">2855</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="Tuple-2856"><a href="#Tuple-2856"><span class="linenos">2856</span></a>
+</span><span id="Tuple-2857"><a href="#Tuple-2857"><span class="linenos">2857</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Tuple-2858"><a href="#Tuple-2858"><span class="linenos">2858</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Tuple-2859"><a href="#Tuple-2859"><span class="linenos">2859</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Tuple-2860"><a href="#Tuple-2860"><span class="linenos">2860</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2861"><a href="#Tuple-2861"><span class="linenos">2861</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2862"><a href="#Tuple-2862"><span class="linenos">2862</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Tuple-2863"><a href="#Tuple-2863"><span class="linenos">2863</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Tuple-2864"><a href="#Tuple-2864"><span class="linenos">2864</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Tuple-2865"><a href="#Tuple-2865"><span class="linenos">2865</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Tuple-2866"><a href="#Tuple-2866"><span class="linenos">2866</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Tuple-2867"><a href="#Tuple-2867"><span class="linenos">2867</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Tuple-2868"><a href="#Tuple-2868"><span class="linenos">2868</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple-2869"><a href="#Tuple-2869"><span class="linenos">2869</span></a> <span class="n">unnest</span><span class="o">=</span><span class="p">(</span>
+</span><span id="Tuple-2870"><a href="#Tuple-2870"><span class="linenos">2870</span></a> <span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Tuple-2871"><a href="#Tuple-2871"><span class="linenos">2871</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Tuple-2872"><a href="#Tuple-2872"><span class="linenos">2872</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Tuple-2873"><a href="#Tuple-2873"><span class="linenos">2873</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Tuple-2874"><a href="#Tuple-2874"><span class="linenos">2874</span></a> <span class="p">]</span>
+</span><span id="Tuple-2875"><a href="#Tuple-2875"><span class="linenos">2875</span></a> <span class="p">)</span>
+</span><span id="Tuple-2876"><a href="#Tuple-2876"><span class="linenos">2876</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Tuple-2877"><a href="#Tuple-2877"><span class="linenos">2877</span></a> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="Tuple-2878"><a href="#Tuple-2878"><span class="linenos">2878</span></a> <span class="p">),</span>
+</span><span id="Tuple-2879"><a href="#Tuple-2879"><span class="linenos">2879</span></a> <span class="p">)</span>
</span></pre></div>
@@ -44931,29 +45412,29 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Tuple.isin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple.isin-2832"><a href="#Tuple.isin-2832"><span class="linenos">2832</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
-</span><span id="Tuple.isin-2833"><a href="#Tuple.isin-2833"><span class="linenos">2833</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Tuple.isin-2834"><a href="#Tuple.isin-2834"><span class="linenos">2834</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
-</span><span id="Tuple.isin-2835"><a href="#Tuple.isin-2835"><span class="linenos">2835</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2836"><a href="#Tuple.isin-2836"><span class="linenos">2836</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2837"><a href="#Tuple.isin-2837"><span class="linenos">2837</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Tuple.isin-2838"><a href="#Tuple.isin-2838"><span class="linenos">2838</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Tuple.isin-2839"><a href="#Tuple.isin-2839"><span class="linenos">2839</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
-</span><span id="Tuple.isin-2840"><a href="#Tuple.isin-2840"><span class="linenos">2840</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
-</span><span id="Tuple.isin-2841"><a href="#Tuple.isin-2841"><span class="linenos">2841</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
-</span><span id="Tuple.isin-2842"><a href="#Tuple.isin-2842"><span class="linenos">2842</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
-</span><span id="Tuple.isin-2843"><a href="#Tuple.isin-2843"><span class="linenos">2843</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Tuple.isin-2844"><a href="#Tuple.isin-2844"><span class="linenos">2844</span></a> <span class="n">unnest</span><span class="o">=</span><span class="p">(</span>
-</span><span id="Tuple.isin-2845"><a href="#Tuple.isin-2845"><span class="linenos">2845</span></a> <span class="n">Unnest</span><span class="p">(</span>
-</span><span id="Tuple.isin-2846"><a href="#Tuple.isin-2846"><span class="linenos">2846</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="Tuple.isin-2847"><a href="#Tuple.isin-2847"><span class="linenos">2847</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Tuple.isin-2848"><a href="#Tuple.isin-2848"><span class="linenos">2848</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
-</span><span id="Tuple.isin-2849"><a href="#Tuple.isin-2849"><span class="linenos">2849</span></a> <span class="p">]</span>
-</span><span id="Tuple.isin-2850"><a href="#Tuple.isin-2850"><span class="linenos">2850</span></a> <span class="p">)</span>
-</span><span id="Tuple.isin-2851"><a href="#Tuple.isin-2851"><span class="linenos">2851</span></a> <span class="k">if</span> <span class="n">unnest</span>
-</span><span id="Tuple.isin-2852"><a href="#Tuple.isin-2852"><span class="linenos">2852</span></a> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="Tuple.isin-2853"><a href="#Tuple.isin-2853"><span class="linenos">2853</span></a> <span class="p">),</span>
-</span><span id="Tuple.isin-2854"><a href="#Tuple.isin-2854"><span class="linenos">2854</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple.isin-2857"><a href="#Tuple.isin-2857"><span class="linenos">2857</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
+</span><span id="Tuple.isin-2858"><a href="#Tuple.isin-2858"><span class="linenos">2858</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Tuple.isin-2859"><a href="#Tuple.isin-2859"><span class="linenos">2859</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span>
+</span><span id="Tuple.isin-2860"><a href="#Tuple.isin-2860"><span class="linenos">2860</span></a> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2861"><a href="#Tuple.isin-2861"><span class="linenos">2861</span></a> <span class="n">unnest</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2862"><a href="#Tuple.isin-2862"><span class="linenos">2862</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Tuple.isin-2863"><a href="#Tuple.isin-2863"><span class="linenos">2863</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Tuple.isin-2864"><a href="#Tuple.isin-2864"><span class="linenos">2864</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
+</span><span id="Tuple.isin-2865"><a href="#Tuple.isin-2865"><span class="linenos">2865</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
+</span><span id="Tuple.isin-2866"><a href="#Tuple.isin-2866"><span class="linenos">2866</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
+</span><span id="Tuple.isin-2867"><a href="#Tuple.isin-2867"><span class="linenos">2867</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
+</span><span id="Tuple.isin-2868"><a href="#Tuple.isin-2868"><span class="linenos">2868</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Tuple.isin-2869"><a href="#Tuple.isin-2869"><span class="linenos">2869</span></a> <span class="n">unnest</span><span class="o">=</span><span class="p">(</span>
+</span><span id="Tuple.isin-2870"><a href="#Tuple.isin-2870"><span class="linenos">2870</span></a> <span class="n">Unnest</span><span class="p">(</span>
+</span><span id="Tuple.isin-2871"><a href="#Tuple.isin-2871"><span class="linenos">2871</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="Tuple.isin-2872"><a href="#Tuple.isin-2872"><span class="linenos">2872</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Tuple.isin-2873"><a href="#Tuple.isin-2873"><span class="linenos">2873</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span>
+</span><span id="Tuple.isin-2874"><a href="#Tuple.isin-2874"><span class="linenos">2874</span></a> <span class="p">]</span>
+</span><span id="Tuple.isin-2875"><a href="#Tuple.isin-2875"><span class="linenos">2875</span></a> <span class="p">)</span>
+</span><span id="Tuple.isin-2876"><a href="#Tuple.isin-2876"><span class="linenos">2876</span></a> <span class="k">if</span> <span class="n">unnest</span>
+</span><span id="Tuple.isin-2877"><a href="#Tuple.isin-2877"><span class="linenos">2877</span></a> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="Tuple.isin-2878"><a href="#Tuple.isin-2878"><span class="linenos">2878</span></a> <span class="p">),</span>
+</span><span id="Tuple.isin-2879"><a href="#Tuple.isin-2879"><span class="linenos">2879</span></a> <span class="p">)</span>
</span></pre></div>
@@ -45073,8 +45554,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#QueryOption"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="QueryOption-2885"><a href="#QueryOption-2885"><span class="linenos">2885</span></a><span class="k">class</span> <span class="nc">QueryOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="QueryOption-2886"><a href="#QueryOption-2886"><span class="linenos">2886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="QueryOption-2910"><a href="#QueryOption-2910"><span class="linenos">2910</span></a><span class="k">class</span> <span class="nc">QueryOption</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="QueryOption-2911"><a href="#QueryOption-2911"><span class="linenos">2911</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -45193,8 +45674,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#WithTableHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WithTableHint-2890"><a href="#WithTableHint-2890"><span class="linenos">2890</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="WithTableHint-2891"><a href="#WithTableHint-2891"><span class="linenos">2891</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WithTableHint-2915"><a href="#WithTableHint-2915"><span class="linenos">2915</span></a><span class="k">class</span> <span class="nc">WithTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="WithTableHint-2916"><a href="#WithTableHint-2916"><span class="linenos">2916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -45313,8 +45794,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#IndexTableHint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IndexTableHint-2895"><a href="#IndexTableHint-2895"><span class="linenos">2895</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="IndexTableHint-2896"><a href="#IndexTableHint-2896"><span class="linenos">2896</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;target&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="IndexTableHint-2920"><a href="#IndexTableHint-2920"><span class="linenos">2920</span></a><span class="k">class</span> <span class="nc">IndexTableHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="IndexTableHint-2921"><a href="#IndexTableHint-2921"><span class="linenos">2921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -45433,8 +45914,8 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#HistoricalData"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="HistoricalData-2900"><a href="#HistoricalData-2900"><span class="linenos">2900</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="HistoricalData-2901"><a href="#HistoricalData-2901"><span class="linenos">2901</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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="HistoricalData-2925"><a href="#HistoricalData-2925"><span class="linenos">2925</span></a><span class="k">class</span> <span class="nc">HistoricalData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="HistoricalData-2926"><a href="#HistoricalData-2926"><span class="linenos">2926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -45553,70 +46034,70 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table-2904"><a href="#Table-2904"><span class="linenos">2904</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Table-2905"><a href="#Table-2905"><span class="linenos">2905</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Table-2906"><a href="#Table-2906"><span class="linenos">2906</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2907"><a href="#Table-2907"><span class="linenos">2907</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2908"><a href="#Table-2908"><span class="linenos">2908</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2909"><a href="#Table-2909"><span class="linenos">2909</span></a> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2910"><a href="#Table-2910"><span class="linenos">2910</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2911"><a href="#Table-2911"><span class="linenos">2911</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2912"><a href="#Table-2912"><span class="linenos">2912</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2913"><a href="#Table-2913"><span class="linenos">2913</span></a> <span class="s2">&quot;hints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2914"><a href="#Table-2914"><span class="linenos">2914</span></a> <span class="s2">&quot;system_time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2915"><a href="#Table-2915"><span class="linenos">2915</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2916"><a href="#Table-2916"><span class="linenos">2916</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2917"><a href="#Table-2917"><span class="linenos">2917</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2918"><a href="#Table-2918"><span class="linenos">2918</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2919"><a href="#Table-2919"><span class="linenos">2919</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2920"><a href="#Table-2920"><span class="linenos">2920</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2921"><a href="#Table-2921"><span class="linenos">2921</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Table-2922"><a href="#Table-2922"><span class="linenos">2922</span></a> <span class="p">}</span>
-</span><span id="Table-2923"><a href="#Table-2923"><span class="linenos">2923</span></a>
-</span><span id="Table-2924"><a href="#Table-2924"><span class="linenos">2924</span></a> <span class="nd">@property</span>
-</span><span id="Table-2925"><a href="#Table-2925"><span class="linenos">2925</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="Table-2926"><a href="#Table-2926"><span class="linenos">2926</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Table-2927"><a href="#Table-2927"><span class="linenos">2927</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Table-2928"><a href="#Table-2928"><span class="linenos">2928</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="Table-2929"><a href="#Table-2929"><span class="linenos">2929</span></a>
-</span><span id="Table-2930"><a href="#Table-2930"><span class="linenos">2930</span></a> <span class="nd">@property</span>
-</span><span id="Table-2931"><a href="#Table-2931"><span class="linenos">2931</span></a> <span class="k">def</span> <span class="nf">db</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="Table-2932"><a href="#Table-2932"><span class="linenos">2932</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
-</span><span id="Table-2933"><a href="#Table-2933"><span class="linenos">2933</span></a>
-</span><span id="Table-2934"><a href="#Table-2934"><span class="linenos">2934</span></a> <span class="nd">@property</span>
-</span><span id="Table-2935"><a href="#Table-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">catalog</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="Table-2936"><a href="#Table-2936"><span class="linenos">2936</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
-</span><span id="Table-2937"><a href="#Table-2937"><span class="linenos">2937</span></a>
-</span><span id="Table-2938"><a href="#Table-2938"><span class="linenos">2938</span></a> <span class="nd">@property</span>
-</span><span id="Table-2939"><a href="#Table-2939"><span class="linenos">2939</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Table-2940"><a href="#Table-2940"><span class="linenos">2940</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Table-2941"><a href="#Table-2941"><span class="linenos">2941</span></a>
-</span><span id="Table-2942"><a href="#Table-2942"><span class="linenos">2942</span></a> <span class="nd">@property</span>
-</span><span id="Table-2943"><a href="#Table-2943"><span class="linenos">2943</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Table-2944"><a href="#Table-2944"><span class="linenos">2944</span></a> <span class="k">return</span> <span class="p">[]</span>
-</span><span id="Table-2945"><a href="#Table-2945"><span class="linenos">2945</span></a>
-</span><span id="Table-2946"><a href="#Table-2946"><span class="linenos">2946</span></a> <span class="nd">@property</span>
-</span><span id="Table-2947"><a href="#Table-2947"><span class="linenos">2947</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Table-2948"><a href="#Table-2948"><span class="linenos">2948</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="Table-2949"><a href="#Table-2949"><span class="linenos">2949</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Table-2950"><a href="#Table-2950"><span class="linenos">2950</span></a>
-</span><span id="Table-2951"><a href="#Table-2951"><span class="linenos">2951</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
-</span><span id="Table-2952"><a href="#Table-2952"><span class="linenos">2952</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="Table-2953"><a href="#Table-2953"><span class="linenos">2953</span></a>
-</span><span id="Table-2954"><a href="#Table-2954"><span class="linenos">2954</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="Table-2955"><a href="#Table-2955"><span class="linenos">2955</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
-</span><span id="Table-2956"><a href="#Table-2956"><span class="linenos">2956</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Table-2957"><a href="#Table-2957"><span class="linenos">2957</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table-2929"><a href="#Table-2929"><span class="linenos">2929</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Table-2930"><a href="#Table-2930"><span class="linenos">2930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Table-2931"><a href="#Table-2931"><span class="linenos">2931</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2932"><a href="#Table-2932"><span class="linenos">2932</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2933"><a href="#Table-2933"><span class="linenos">2933</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2934"><a href="#Table-2934"><span class="linenos">2934</span></a> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2935"><a href="#Table-2935"><span class="linenos">2935</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2936"><a href="#Table-2936"><span class="linenos">2936</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2937"><a href="#Table-2937"><span class="linenos">2937</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2938"><a href="#Table-2938"><span class="linenos">2938</span></a> <span class="s2">&quot;hints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2939"><a href="#Table-2939"><span class="linenos">2939</span></a> <span class="s2">&quot;system_time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2940"><a href="#Table-2940"><span class="linenos">2940</span></a> <span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2941"><a href="#Table-2941"><span class="linenos">2941</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2942"><a href="#Table-2942"><span class="linenos">2942</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2943"><a href="#Table-2943"><span class="linenos">2943</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2944"><a href="#Table-2944"><span class="linenos">2944</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2945"><a href="#Table-2945"><span class="linenos">2945</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2946"><a href="#Table-2946"><span class="linenos">2946</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Table-2947"><a href="#Table-2947"><span class="linenos">2947</span></a> <span class="p">}</span>
+</span><span id="Table-2948"><a href="#Table-2948"><span class="linenos">2948</span></a>
+</span><span id="Table-2949"><a href="#Table-2949"><span class="linenos">2949</span></a> <span class="nd">@property</span>
+</span><span id="Table-2950"><a href="#Table-2950"><span class="linenos">2950</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="Table-2951"><a href="#Table-2951"><span class="linenos">2951</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Table-2952"><a href="#Table-2952"><span class="linenos">2952</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Table-2953"><a href="#Table-2953"><span class="linenos">2953</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="Table-2954"><a href="#Table-2954"><span class="linenos">2954</span></a>
+</span><span id="Table-2955"><a href="#Table-2955"><span class="linenos">2955</span></a> <span class="nd">@property</span>
+</span><span id="Table-2956"><a href="#Table-2956"><span class="linenos">2956</span></a> <span class="k">def</span> <span class="nf">db</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="Table-2957"><a href="#Table-2957"><span class="linenos">2957</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
</span><span id="Table-2958"><a href="#Table-2958"><span class="linenos">2958</span></a>
-</span><span id="Table-2959"><a href="#Table-2959"><span class="linenos">2959</span></a> <span class="k">return</span> <span class="n">parts</span>
-</span><span id="Table-2960"><a href="#Table-2960"><span class="linenos">2960</span></a>
-</span><span id="Table-2961"><a href="#Table-2961"><span class="linenos">2961</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Table-2962"><a href="#Table-2962"><span class="linenos">2962</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="Table-2963"><a href="#Table-2963"><span class="linenos">2963</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Table-2964"><a href="#Table-2964"><span class="linenos">2964</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="Table-2965"><a href="#Table-2965"><span class="linenos">2965</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
-</span><span id="Table-2966"><a href="#Table-2966"><span class="linenos">2966</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</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="Table-2967"><a href="#Table-2967"><span class="linenos">2967</span></a> <span class="k">return</span> <span class="n">col</span>
+</span><span id="Table-2959"><a href="#Table-2959"><span class="linenos">2959</span></a> <span class="nd">@property</span>
+</span><span id="Table-2960"><a href="#Table-2960"><span class="linenos">2960</span></a> <span class="k">def</span> <span class="nf">catalog</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="Table-2961"><a href="#Table-2961"><span class="linenos">2961</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
+</span><span id="Table-2962"><a href="#Table-2962"><span class="linenos">2962</span></a>
+</span><span id="Table-2963"><a href="#Table-2963"><span class="linenos">2963</span></a> <span class="nd">@property</span>
+</span><span id="Table-2964"><a href="#Table-2964"><span class="linenos">2964</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table-2965"><a href="#Table-2965"><span class="linenos">2965</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Table-2966"><a href="#Table-2966"><span class="linenos">2966</span></a>
+</span><span id="Table-2967"><a href="#Table-2967"><span class="linenos">2967</span></a> <span class="nd">@property</span>
+</span><span id="Table-2968"><a href="#Table-2968"><span class="linenos">2968</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Table-2969"><a href="#Table-2969"><span class="linenos">2969</span></a> <span class="k">return</span> <span class="p">[]</span>
+</span><span id="Table-2970"><a href="#Table-2970"><span class="linenos">2970</span></a>
+</span><span id="Table-2971"><a href="#Table-2971"><span class="linenos">2971</span></a> <span class="nd">@property</span>
+</span><span id="Table-2972"><a href="#Table-2972"><span class="linenos">2972</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table-2973"><a href="#Table-2973"><span class="linenos">2973</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Table-2974"><a href="#Table-2974"><span class="linenos">2974</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Table-2975"><a href="#Table-2975"><span class="linenos">2975</span></a>
+</span><span id="Table-2976"><a href="#Table-2976"><span class="linenos">2976</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
+</span><span id="Table-2977"><a href="#Table-2977"><span class="linenos">2977</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Table-2978"><a href="#Table-2978"><span class="linenos">2978</span></a>
+</span><span id="Table-2979"><a href="#Table-2979"><span class="linenos">2979</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="Table-2980"><a href="#Table-2980"><span class="linenos">2980</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
+</span><span id="Table-2981"><a href="#Table-2981"><span class="linenos">2981</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Table-2982"><a href="#Table-2982"><span class="linenos">2982</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Table-2983"><a href="#Table-2983"><span class="linenos">2983</span></a>
+</span><span id="Table-2984"><a href="#Table-2984"><span class="linenos">2984</span></a> <span class="k">return</span> <span class="n">parts</span>
+</span><span id="Table-2985"><a href="#Table-2985"><span class="linenos">2985</span></a>
+</span><span id="Table-2986"><a href="#Table-2986"><span class="linenos">2986</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Table-2987"><a href="#Table-2987"><span class="linenos">2987</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="Table-2988"><a href="#Table-2988"><span class="linenos">2988</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Table-2989"><a href="#Table-2989"><span class="linenos">2989</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Table-2990"><a href="#Table-2990"><span class="linenos">2990</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="Table-2991"><a href="#Table-2991"><span class="linenos">2991</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</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="Table-2992"><a href="#Table-2992"><span class="linenos">2992</span></a> <span class="k">return</span> <span class="n">col</span>
</span></pre></div>
@@ -45644,11 +46125,11 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.name-2924"><a href="#Table.name-2924"><span class="linenos">2924</span></a> <span class="nd">@property</span>
-</span><span id="Table.name-2925"><a href="#Table.name-2925"><span class="linenos">2925</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="Table.name-2926"><a href="#Table.name-2926"><span class="linenos">2926</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Table.name-2927"><a href="#Table.name-2927"><span class="linenos">2927</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
-</span><span id="Table.name-2928"><a href="#Table.name-2928"><span class="linenos">2928</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.name-2949"><a href="#Table.name-2949"><span class="linenos">2949</span></a> <span class="nd">@property</span>
+</span><span id="Table.name-2950"><a href="#Table.name-2950"><span class="linenos">2950</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="Table.name-2951"><a href="#Table.name-2951"><span class="linenos">2951</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Table.name-2952"><a href="#Table.name-2952"><span class="linenos">2952</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+</span><span id="Table.name-2953"><a href="#Table.name-2953"><span class="linenos">2953</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></pre></div>
@@ -45664,9 +46145,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.db"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.db-2930"><a href="#Table.db-2930"><span class="linenos">2930</span></a> <span class="nd">@property</span>
-</span><span id="Table.db-2931"><a href="#Table.db-2931"><span class="linenos">2931</span></a> <span class="k">def</span> <span class="nf">db</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="Table.db-2932"><a href="#Table.db-2932"><span class="linenos">2932</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.db-2955"><a href="#Table.db-2955"><span class="linenos">2955</span></a> <span class="nd">@property</span>
+</span><span id="Table.db-2956"><a href="#Table.db-2956"><span class="linenos">2956</span></a> <span class="k">def</span> <span class="nf">db</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="Table.db-2957"><a href="#Table.db-2957"><span class="linenos">2957</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -45682,9 +46163,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.catalog"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.catalog-2934"><a href="#Table.catalog-2934"><span class="linenos">2934</span></a> <span class="nd">@property</span>
-</span><span id="Table.catalog-2935"><a href="#Table.catalog-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">catalog</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="Table.catalog-2936"><a href="#Table.catalog-2936"><span class="linenos">2936</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.catalog-2959"><a href="#Table.catalog-2959"><span class="linenos">2959</span></a> <span class="nd">@property</span>
+</span><span id="Table.catalog-2960"><a href="#Table.catalog-2960"><span class="linenos">2960</span></a> <span class="k">def</span> <span class="nf">catalog</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="Table.catalog-2961"><a href="#Table.catalog-2961"><span class="linenos">2961</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -45700,9 +46181,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.selects-2938"><a href="#Table.selects-2938"><span class="linenos">2938</span></a> <span class="nd">@property</span>
-</span><span id="Table.selects-2939"><a href="#Table.selects-2939"><span class="linenos">2939</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Table.selects-2940"><a href="#Table.selects-2940"><span class="linenos">2940</span></a> <span class="k">return</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.selects-2963"><a href="#Table.selects-2963"><span class="linenos">2963</span></a> <span class="nd">@property</span>
+</span><span id="Table.selects-2964"><a href="#Table.selects-2964"><span class="linenos">2964</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table.selects-2965"><a href="#Table.selects-2965"><span class="linenos">2965</span></a> <span class="k">return</span> <span class="p">[]</span>
</span></pre></div>
@@ -45718,9 +46199,9 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.named_selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.named_selects-2942"><a href="#Table.named_selects-2942"><span class="linenos">2942</span></a> <span class="nd">@property</span>
-</span><span id="Table.named_selects-2943"><a href="#Table.named_selects-2943"><span class="linenos">2943</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Table.named_selects-2944"><a href="#Table.named_selects-2944"><span class="linenos">2944</span></a> <span class="k">return</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.named_selects-2967"><a href="#Table.named_selects-2967"><span class="linenos">2967</span></a> <span class="nd">@property</span>
+</span><span id="Table.named_selects-2968"><a href="#Table.named_selects-2968"><span class="linenos">2968</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Table.named_selects-2969"><a href="#Table.named_selects-2969"><span class="linenos">2969</span></a> <span class="k">return</span> <span class="p">[]</span>
</span></pre></div>
@@ -45736,20 +46217,20 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.parts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.parts-2946"><a href="#Table.parts-2946"><span class="linenos">2946</span></a> <span class="nd">@property</span>
-</span><span id="Table.parts-2947"><a href="#Table.parts-2947"><span class="linenos">2947</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Table.parts-2948"><a href="#Table.parts-2948"><span class="linenos">2948</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="Table.parts-2949"><a href="#Table.parts-2949"><span class="linenos">2949</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="Table.parts-2950"><a href="#Table.parts-2950"><span class="linenos">2950</span></a>
-</span><span id="Table.parts-2951"><a href="#Table.parts-2951"><span class="linenos">2951</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
-</span><span id="Table.parts-2952"><a href="#Table.parts-2952"><span class="linenos">2952</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
-</span><span id="Table.parts-2953"><a href="#Table.parts-2953"><span class="linenos">2953</span></a>
-</span><span id="Table.parts-2954"><a href="#Table.parts-2954"><span class="linenos">2954</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
-</span><span id="Table.parts-2955"><a href="#Table.parts-2955"><span class="linenos">2955</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
-</span><span id="Table.parts-2956"><a href="#Table.parts-2956"><span class="linenos">2956</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Table.parts-2957"><a href="#Table.parts-2957"><span class="linenos">2957</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="Table.parts-2958"><a href="#Table.parts-2958"><span class="linenos">2958</span></a>
-</span><span id="Table.parts-2959"><a href="#Table.parts-2959"><span class="linenos">2959</span></a> <span class="k">return</span> <span class="n">parts</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.parts-2971"><a href="#Table.parts-2971"><span class="linenos">2971</span></a> <span class="nd">@property</span>
+</span><span id="Table.parts-2972"><a href="#Table.parts-2972"><span class="linenos">2972</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Table.parts-2973"><a href="#Table.parts-2973"><span class="linenos">2973</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Table.parts-2974"><a href="#Table.parts-2974"><span class="linenos">2974</span></a> <span class="n">parts</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="Table.parts-2975"><a href="#Table.parts-2975"><span class="linenos">2975</span></a>
+</span><span id="Table.parts-2976"><a href="#Table.parts-2976"><span class="linenos">2976</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">):</span>
+</span><span id="Table.parts-2977"><a href="#Table.parts-2977"><span class="linenos">2977</span></a> <span class="n">part</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span>
+</span><span id="Table.parts-2978"><a href="#Table.parts-2978"><span class="linenos">2978</span></a>
+</span><span id="Table.parts-2979"><a href="#Table.parts-2979"><span class="linenos">2979</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
+</span><span id="Table.parts-2980"><a href="#Table.parts-2980"><span class="linenos">2980</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">flatten</span><span class="p">())</span>
+</span><span id="Table.parts-2981"><a href="#Table.parts-2981"><span class="linenos">2981</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Table.parts-2982"><a href="#Table.parts-2982"><span class="linenos">2982</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Table.parts-2983"><a href="#Table.parts-2983"><span class="linenos">2983</span></a>
+</span><span id="Table.parts-2984"><a href="#Table.parts-2984"><span class="linenos">2984</span></a> <span class="k">return</span> <span class="n">parts</span>
</span></pre></div>
@@ -45769,13 +46250,13 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Table.to_column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Table.to_column-2961"><a href="#Table.to_column-2961"><span class="linenos">2961</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Table.to_column-2962"><a href="#Table.to_column-2962"><span class="linenos">2962</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="Table.to_column-2963"><a href="#Table.to_column-2963"><span class="linenos">2963</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Table.to_column-2964"><a href="#Table.to_column-2964"><span class="linenos">2964</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
-</span><span id="Table.to_column-2965"><a href="#Table.to_column-2965"><span class="linenos">2965</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
-</span><span id="Table.to_column-2966"><a href="#Table.to_column-2966"><span class="linenos">2966</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</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="Table.to_column-2967"><a href="#Table.to_column-2967"><span class="linenos">2967</span></a> <span class="k">return</span> <span class="n">col</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Table.to_column-2986"><a href="#Table.to_column-2986"><span class="linenos">2986</span></a> <span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span> <span class="o">|</span> <span class="n">Column</span> <span class="o">|</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Table.to_column-2987"><a href="#Table.to_column-2987"><span class="linenos">2987</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="Table.to_column-2988"><a href="#Table.to_column-2988"><span class="linenos">2988</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]),</span> <span class="n">fields</span><span class="o">=</span><span class="n">parts</span><span class="p">[</span><span class="mi">4</span><span class="p">:],</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+</span><span id="Table.to_column-2989"><a href="#Table.to_column-2989"><span class="linenos">2989</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
+</span><span id="Table.to_column-2990"><a href="#Table.to_column-2990"><span class="linenos">2990</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span>
+</span><span id="Table.to_column-2991"><a href="#Table.to_column-2991"><span class="linenos">2991</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">alias_</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</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="Table.to_column-2992"><a href="#Table.to_column-2992"><span class="linenos">2992</span></a> <span class="k">return</span> <span class="n">col</span>
</span></pre></div>
@@ -45882,50 +46363,50 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Union"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union-2970"><a href="#Union-2970"><span class="linenos">2970</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
-</span><span id="Union-2971"><a href="#Union-2971"><span class="linenos">2971</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Union-2972"><a href="#Union-2972"><span class="linenos">2972</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Union-2973"><a href="#Union-2973"><span class="linenos">2973</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="Union-2974"><a href="#Union-2974"><span class="linenos">2974</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="Union-2975"><a href="#Union-2975"><span class="linenos">2975</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Union-2976"><a href="#Union-2976"><span class="linenos">2976</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Union-2977"><a href="#Union-2977"><span class="linenos">2977</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Union-2978"><a href="#Union-2978"><span class="linenos">2978</span></a> <span class="p">}</span>
-</span><span id="Union-2979"><a href="#Union-2979"><span class="linenos">2979</span></a>
-</span><span id="Union-2980"><a href="#Union-2980"><span class="linenos">2980</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union-2981"><a href="#Union-2981"><span class="linenos">2981</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union-2982"><a href="#Union-2982"><span class="linenos">2982</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Union-2983"><a href="#Union-2983"><span class="linenos">2983</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Union-2984"><a href="#Union-2984"><span class="linenos">2984</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="Union-2985"><a href="#Union-2985"><span class="linenos">2985</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Union-2986"><a href="#Union-2986"><span class="linenos">2986</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union-2987"><a href="#Union-2987"><span class="linenos">2987</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="Union-2988"><a href="#Union-2988"><span class="linenos">2988</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Union-2989"><a href="#Union-2989"><span class="linenos">2989</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Union-2990"><a href="#Union-2990"><span class="linenos">2990</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
-</span><span id="Union-2991"><a href="#Union-2991"><span class="linenos">2991</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Union-2992"><a href="#Union-2992"><span class="linenos">2992</span></a> <span class="p">)</span>
-</span><span id="Union-2993"><a href="#Union-2993"><span class="linenos">2993</span></a> <span class="k">return</span> <span class="n">this</span>
-</span><span id="Union-2994"><a href="#Union-2994"><span class="linenos">2994</span></a>
-</span><span id="Union-2995"><a href="#Union-2995"><span class="linenos">2995</span></a> <span class="nd">@property</span>
-</span><span id="Union-2996"><a href="#Union-2996"><span class="linenos">2996</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Union-2997"><a href="#Union-2997"><span class="linenos">2997</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
-</span><span id="Union-2998"><a href="#Union-2998"><span class="linenos">2998</span></a>
-</span><span id="Union-2999"><a href="#Union-2999"><span class="linenos">2999</span></a> <span class="nd">@property</span>
-</span><span id="Union-3000"><a href="#Union-3000"><span class="linenos">3000</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Union-3001"><a href="#Union-3001"><span class="linenos">3001</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">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
-</span><span id="Union-3002"><a href="#Union-3002"><span class="linenos">3002</span></a>
-</span><span id="Union-3003"><a href="#Union-3003"><span class="linenos">3003</span></a> <span class="nd">@property</span>
-</span><span id="Union-3004"><a href="#Union-3004"><span class="linenos">3004</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Union-3005"><a href="#Union-3005"><span class="linenos">3005</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
-</span><span id="Union-3006"><a href="#Union-3006"><span class="linenos">3006</span></a>
-</span><span id="Union-3007"><a href="#Union-3007"><span class="linenos">3007</span></a> <span class="nd">@property</span>
-</span><span id="Union-3008"><a href="#Union-3008"><span class="linenos">3008</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Union-3009"><a href="#Union-3009"><span class="linenos">3009</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Union-3010"><a href="#Union-3010"><span class="linenos">3010</span></a>
-</span><span id="Union-3011"><a href="#Union-3011"><span class="linenos">3011</span></a> <span class="nd">@property</span>
-</span><span id="Union-3012"><a href="#Union-3012"><span class="linenos">3012</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Union-3013"><a href="#Union-3013"><span class="linenos">3013</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="Union-2995"><a href="#Union-2995"><span class="linenos">2995</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
+</span><span id="Union-2996"><a href="#Union-2996"><span class="linenos">2996</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Union-2997"><a href="#Union-2997"><span class="linenos">2997</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Union-2998"><a href="#Union-2998"><span class="linenos">2998</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="Union-2999"><a href="#Union-2999"><span class="linenos">2999</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="Union-3000"><a href="#Union-3000"><span class="linenos">3000</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Union-3001"><a href="#Union-3001"><span class="linenos">3001</span></a> <span class="s2">&quot;by_name&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Union-3002"><a href="#Union-3002"><span class="linenos">3002</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Union-3003"><a href="#Union-3003"><span class="linenos">3003</span></a> <span class="p">}</span>
+</span><span id="Union-3004"><a href="#Union-3004"><span class="linenos">3004</span></a>
+</span><span id="Union-3005"><a href="#Union-3005"><span class="linenos">3005</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union-3006"><a href="#Union-3006"><span class="linenos">3006</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union-3007"><a href="#Union-3007"><span class="linenos">3007</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Union-3008"><a href="#Union-3008"><span class="linenos">3008</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Union-3009"><a href="#Union-3009"><span class="linenos">3009</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="Union-3010"><a href="#Union-3010"><span class="linenos">3010</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Union-3011"><a href="#Union-3011"><span class="linenos">3011</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union-3012"><a href="#Union-3012"><span class="linenos">3012</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="Union-3013"><a href="#Union-3013"><span class="linenos">3013</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Union-3014"><a href="#Union-3014"><span class="linenos">3014</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Union-3015"><a href="#Union-3015"><span class="linenos">3015</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
+</span><span id="Union-3016"><a href="#Union-3016"><span class="linenos">3016</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Union-3017"><a href="#Union-3017"><span class="linenos">3017</span></a> <span class="p">)</span>
+</span><span id="Union-3018"><a href="#Union-3018"><span class="linenos">3018</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="Union-3019"><a href="#Union-3019"><span class="linenos">3019</span></a>
+</span><span id="Union-3020"><a href="#Union-3020"><span class="linenos">3020</span></a> <span class="nd">@property</span>
+</span><span id="Union-3021"><a href="#Union-3021"><span class="linenos">3021</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Union-3022"><a href="#Union-3022"><span class="linenos">3022</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
+</span><span id="Union-3023"><a href="#Union-3023"><span class="linenos">3023</span></a>
+</span><span id="Union-3024"><a href="#Union-3024"><span class="linenos">3024</span></a> <span class="nd">@property</span>
+</span><span id="Union-3025"><a href="#Union-3025"><span class="linenos">3025</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Union-3026"><a href="#Union-3026"><span class="linenos">3026</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">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
+</span><span id="Union-3027"><a href="#Union-3027"><span class="linenos">3027</span></a>
+</span><span id="Union-3028"><a href="#Union-3028"><span class="linenos">3028</span></a> <span class="nd">@property</span>
+</span><span id="Union-3029"><a href="#Union-3029"><span class="linenos">3029</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Union-3030"><a href="#Union-3030"><span class="linenos">3030</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+</span><span id="Union-3031"><a href="#Union-3031"><span class="linenos">3031</span></a>
+</span><span id="Union-3032"><a href="#Union-3032"><span class="linenos">3032</span></a> <span class="nd">@property</span>
+</span><span id="Union-3033"><a href="#Union-3033"><span class="linenos">3033</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union-3034"><a href="#Union-3034"><span class="linenos">3034</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Union-3035"><a href="#Union-3035"><span class="linenos">3035</span></a>
+</span><span id="Union-3036"><a href="#Union-3036"><span class="linenos">3036</span></a> <span class="nd">@property</span>
+</span><span id="Union-3037"><a href="#Union-3037"><span class="linenos">3037</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union-3038"><a href="#Union-3038"><span class="linenos">3038</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -45955,20 +46436,20 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Union.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-2980"><a href="#Union.select-2980"><span class="linenos">2980</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Union.select-2981"><a href="#Union.select-2981"><span class="linenos">2981</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Union.select-2982"><a href="#Union.select-2982"><span class="linenos">2982</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Union.select-2983"><a href="#Union.select-2983"><span class="linenos">2983</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Union.select-2984"><a href="#Union.select-2984"><span class="linenos">2984</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="Union.select-2985"><a href="#Union.select-2985"><span class="linenos">2985</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Union.select-2986"><a href="#Union.select-2986"><span class="linenos">2986</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Union.select-2987"><a href="#Union.select-2987"><span class="linenos">2987</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="Union.select-2988"><a href="#Union.select-2988"><span class="linenos">2988</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Union.select-2989"><a href="#Union.select-2989"><span class="linenos">2989</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Union.select-2990"><a href="#Union.select-2990"><span class="linenos">2990</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
-</span><span id="Union.select-2991"><a href="#Union.select-2991"><span class="linenos">2991</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Union.select-2992"><a href="#Union.select-2992"><span class="linenos">2992</span></a> <span class="p">)</span>
-</span><span id="Union.select-2993"><a href="#Union.select-2993"><span class="linenos">2993</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-3005"><a href="#Union.select-3005"><span class="linenos">3005</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Union.select-3006"><a href="#Union.select-3006"><span class="linenos">3006</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Union.select-3007"><a href="#Union.select-3007"><span class="linenos">3007</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Union.select-3008"><a href="#Union.select-3008"><span class="linenos">3008</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Union.select-3009"><a href="#Union.select-3009"><span class="linenos">3009</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="Union.select-3010"><a href="#Union.select-3010"><span class="linenos">3010</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Union.select-3011"><a href="#Union.select-3011"><span class="linenos">3011</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Union.select-3012"><a href="#Union.select-3012"><span class="linenos">3012</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="Union.select-3013"><a href="#Union.select-3013"><span class="linenos">3013</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Union.select-3014"><a href="#Union.select-3014"><span class="linenos">3014</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Union.select-3015"><a href="#Union.select-3015"><span class="linenos">3015</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
+</span><span id="Union.select-3016"><a href="#Union.select-3016"><span class="linenos">3016</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Union.select-3017"><a href="#Union.select-3017"><span class="linenos">3017</span></a> <span class="p">)</span>
+</span><span id="Union.select-3018"><a href="#Union.select-3018"><span class="linenos">3018</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -46014,9 +46495,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union.named_selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.named_selects-2995"><a href="#Union.named_selects-2995"><span class="linenos">2995</span></a> <span class="nd">@property</span>
-</span><span id="Union.named_selects-2996"><a href="#Union.named_selects-2996"><span class="linenos">2996</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Union.named_selects-2997"><a href="#Union.named_selects-2997"><span class="linenos">2997</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.named_selects-3020"><a href="#Union.named_selects-3020"><span class="linenos">3020</span></a> <span class="nd">@property</span>
+</span><span id="Union.named_selects-3021"><a href="#Union.named_selects-3021"><span class="linenos">3021</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Union.named_selects-3022"><a href="#Union.named_selects-3022"><span class="linenos">3022</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
</span></pre></div>
@@ -46034,9 +46515,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union.is_star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.is_star-2999"><a href="#Union.is_star-2999"><span class="linenos">2999</span></a> <span class="nd">@property</span>
-</span><span id="Union.is_star-3000"><a href="#Union.is_star-3000"><span class="linenos">3000</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Union.is_star-3001"><a href="#Union.is_star-3001"><span class="linenos">3001</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">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.is_star-3024"><a href="#Union.is_star-3024"><span class="linenos">3024</span></a> <span class="nd">@property</span>
+</span><span id="Union.is_star-3025"><a href="#Union.is_star-3025"><span class="linenos">3025</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Union.is_star-3026"><a href="#Union.is_star-3026"><span class="linenos">3026</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">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
</span></pre></div>
@@ -46054,9 +46535,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union.selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.selects-3003"><a href="#Union.selects-3003"><span class="linenos">3003</span></a> <span class="nd">@property</span>
-</span><span id="Union.selects-3004"><a href="#Union.selects-3004"><span class="linenos">3004</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Union.selects-3005"><a href="#Union.selects-3005"><span class="linenos">3005</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.selects-3028"><a href="#Union.selects-3028"><span class="linenos">3028</span></a> <span class="nd">@property</span>
+</span><span id="Union.selects-3029"><a href="#Union.selects-3029"><span class="linenos">3029</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Union.selects-3030"><a href="#Union.selects-3030"><span class="linenos">3030</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">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
</span></pre></div>
@@ -46074,9 +46555,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union.left"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.left-3007"><a href="#Union.left-3007"><span class="linenos">3007</span></a> <span class="nd">@property</span>
-</span><span id="Union.left-3008"><a href="#Union.left-3008"><span class="linenos">3008</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Union.left-3009"><a href="#Union.left-3009"><span class="linenos">3009</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Union.left-3032"><a href="#Union.left-3032"><span class="linenos">3032</span></a> <span class="nd">@property</span>
+</span><span id="Union.left-3033"><a href="#Union.left-3033"><span class="linenos">3033</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union.left-3034"><a href="#Union.left-3034"><span class="linenos">3034</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span></pre></div>
@@ -46092,9 +46573,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Union.right"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Union.right-3011"><a href="#Union.right-3011"><span class="linenos">3011</span></a> <span class="nd">@property</span>
-</span><span id="Union.right-3012"><a href="#Union.right-3012"><span class="linenos">3012</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Union.right-3013"><a href="#Union.right-3013"><span class="linenos">3013</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="Union.right-3036"><a href="#Union.right-3036"><span class="linenos">3036</span></a> <span class="nd">@property</span>
+</span><span id="Union.right-3037"><a href="#Union.right-3037"><span class="linenos">3037</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Union.right-3038"><a href="#Union.right-3038"><span class="linenos">3038</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -46213,8 +46694,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Except"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Except-3016"><a href="#Except-3016"><span class="linenos">3016</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
-</span><span id="Except-3017"><a href="#Except-3017"><span class="linenos">3017</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Except-3041"><a href="#Except-3041"><span class="linenos">3041</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
+</span><span id="Except-3042"><a href="#Except-3042"><span class="linenos">3042</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46342,8 +46823,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Intersect"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-3020"><a href="#Intersect-3020"><span class="linenos">3020</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
-</span><span id="Intersect-3021"><a href="#Intersect-3021"><span class="linenos">3021</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-3045"><a href="#Intersect-3045"><span class="linenos">3045</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
+</span><span id="Intersect-3046"><a href="#Intersect-3046"><span class="linenos">3046</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46471,20 +46952,20 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-3024"><a href="#Unnest-3024"><span class="linenos">3024</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="Unnest-3025"><a href="#Unnest-3025"><span class="linenos">3025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Unnest-3026"><a href="#Unnest-3026"><span class="linenos">3026</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Unnest-3027"><a href="#Unnest-3027"><span class="linenos">3027</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Unnest-3028"><a href="#Unnest-3028"><span class="linenos">3028</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Unnest-3029"><a href="#Unnest-3029"><span class="linenos">3029</span></a> <span class="p">}</span>
-</span><span id="Unnest-3030"><a href="#Unnest-3030"><span class="linenos">3030</span></a>
-</span><span id="Unnest-3031"><a href="#Unnest-3031"><span class="linenos">3031</span></a> <span class="nd">@property</span>
-</span><span id="Unnest-3032"><a href="#Unnest-3032"><span class="linenos">3032</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Unnest-3033"><a href="#Unnest-3033"><span class="linenos">3033</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
-</span><span id="Unnest-3034"><a href="#Unnest-3034"><span class="linenos">3034</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;offset&quot;</span><span class="p">)</span>
-</span><span id="Unnest-3035"><a href="#Unnest-3035"><span class="linenos">3035</span></a> <span class="k">if</span> <span class="n">offset</span><span class="p">:</span>
-</span><span id="Unnest-3036"><a href="#Unnest-3036"><span class="linenos">3036</span></a> <span class="n">columns</span> <span class="o">=</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="s2">&quot;offset&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">offset</span><span class="p">]</span>
-</span><span id="Unnest-3037"><a href="#Unnest-3037"><span class="linenos">3037</span></a> <span class="k">return</span> <span class="n">columns</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-3049"><a href="#Unnest-3049"><span class="linenos">3049</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
+</span><span id="Unnest-3050"><a href="#Unnest-3050"><span class="linenos">3050</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Unnest-3051"><a href="#Unnest-3051"><span class="linenos">3051</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Unnest-3052"><a href="#Unnest-3052"><span class="linenos">3052</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Unnest-3053"><a href="#Unnest-3053"><span class="linenos">3053</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Unnest-3054"><a href="#Unnest-3054"><span class="linenos">3054</span></a> <span class="p">}</span>
+</span><span id="Unnest-3055"><a href="#Unnest-3055"><span class="linenos">3055</span></a>
+</span><span id="Unnest-3056"><a href="#Unnest-3056"><span class="linenos">3056</span></a> <span class="nd">@property</span>
+</span><span id="Unnest-3057"><a href="#Unnest-3057"><span class="linenos">3057</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Unnest-3058"><a href="#Unnest-3058"><span class="linenos">3058</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+</span><span id="Unnest-3059"><a href="#Unnest-3059"><span class="linenos">3059</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;offset&quot;</span><span class="p">)</span>
+</span><span id="Unnest-3060"><a href="#Unnest-3060"><span class="linenos">3060</span></a> <span class="k">if</span> <span class="n">offset</span><span class="p">:</span>
+</span><span id="Unnest-3061"><a href="#Unnest-3061"><span class="linenos">3061</span></a> <span class="n">columns</span> <span class="o">=</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="s2">&quot;offset&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">offset</span><span class="p">]</span>
+</span><span id="Unnest-3062"><a href="#Unnest-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">columns</span>
</span></pre></div>
@@ -46511,13 +46992,13 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Unnest.selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest.selects-3031"><a href="#Unnest.selects-3031"><span class="linenos">3031</span></a> <span class="nd">@property</span>
-</span><span id="Unnest.selects-3032"><a href="#Unnest.selects-3032"><span class="linenos">3032</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Unnest.selects-3033"><a href="#Unnest.selects-3033"><span class="linenos">3033</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
-</span><span id="Unnest.selects-3034"><a href="#Unnest.selects-3034"><span class="linenos">3034</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;offset&quot;</span><span class="p">)</span>
-</span><span id="Unnest.selects-3035"><a href="#Unnest.selects-3035"><span class="linenos">3035</span></a> <span class="k">if</span> <span class="n">offset</span><span class="p">:</span>
-</span><span id="Unnest.selects-3036"><a href="#Unnest.selects-3036"><span class="linenos">3036</span></a> <span class="n">columns</span> <span class="o">=</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="s2">&quot;offset&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">offset</span><span class="p">]</span>
-</span><span id="Unnest.selects-3037"><a href="#Unnest.selects-3037"><span class="linenos">3037</span></a> <span class="k">return</span> <span class="n">columns</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest.selects-3056"><a href="#Unnest.selects-3056"><span class="linenos">3056</span></a> <span class="nd">@property</span>
+</span><span id="Unnest.selects-3057"><a href="#Unnest.selects-3057"><span class="linenos">3057</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Unnest.selects-3058"><a href="#Unnest.selects-3058"><span class="linenos">3058</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
+</span><span id="Unnest.selects-3059"><a href="#Unnest.selects-3059"><span class="linenos">3059</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;offset&quot;</span><span class="p">)</span>
+</span><span id="Unnest.selects-3060"><a href="#Unnest.selects-3060"><span class="linenos">3060</span></a> <span class="k">if</span> <span class="n">offset</span><span class="p">:</span>
+</span><span id="Unnest.selects-3061"><a href="#Unnest.selects-3061"><span class="linenos">3061</span></a> <span class="n">columns</span> <span class="o">=</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="s2">&quot;offset&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="n">offset</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">offset</span><span class="p">]</span>
+</span><span id="Unnest.selects-3062"><a href="#Unnest.selects-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">columns</span>
</span></pre></div>
@@ -46629,17 +47110,17 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Update"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Update-3040"><a href="#Update-3040"><span class="linenos">3040</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Update-3041"><a href="#Update-3041"><span class="linenos">3041</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Update-3042"><a href="#Update-3042"><span class="linenos">3042</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3043"><a href="#Update-3043"><span class="linenos">3043</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3044"><a href="#Update-3044"><span class="linenos">3044</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Update-3045"><a href="#Update-3045"><span class="linenos">3045</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3046"><a href="#Update-3046"><span class="linenos">3046</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3047"><a href="#Update-3047"><span class="linenos">3047</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3048"><a href="#Update-3048"><span class="linenos">3048</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3049"><a href="#Update-3049"><span class="linenos">3049</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Update-3050"><a href="#Update-3050"><span class="linenos">3050</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Update-3065"><a href="#Update-3065"><span class="linenos">3065</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Update-3066"><a href="#Update-3066"><span class="linenos">3066</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Update-3067"><a href="#Update-3067"><span class="linenos">3067</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3068"><a href="#Update-3068"><span class="linenos">3068</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3069"><a href="#Update-3069"><span class="linenos">3069</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Update-3070"><a href="#Update-3070"><span class="linenos">3070</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3071"><a href="#Update-3071"><span class="linenos">3071</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3072"><a href="#Update-3072"><span class="linenos">3072</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3073"><a href="#Update-3073"><span class="linenos">3073</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3074"><a href="#Update-3074"><span class="linenos">3074</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Update-3075"><a href="#Update-3075"><span class="linenos">3075</span></a> <span class="p">}</span>
</span></pre></div>
@@ -46759,8 +47240,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Values-3053"><a href="#Values-3053"><span class="linenos">3053</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
-</span><span id="Values-3054"><a href="#Values-3054"><span class="linenos">3054</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;alias&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="Values-3078"><a href="#Values-3078"><span class="linenos">3078</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
+</span><span id="Values-3079"><a href="#Values-3079"><span class="linenos">3079</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;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -46887,8 +47368,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Var"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Var-3057"><a href="#Var-3057"><span class="linenos">3057</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Var-3058"><a href="#Var-3058"><span class="linenos">3058</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Var-3082"><a href="#Var-3082"><span class="linenos">3082</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Var-3083"><a href="#Var-3083"><span class="linenos">3083</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -46996,18 +47477,18 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Version"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Version-3061"><a href="#Version-3061"><span class="linenos">3061</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Version-3062"><a href="#Version-3062"><span class="linenos">3062</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Version-3063"><a href="#Version-3063"><span class="linenos">3063</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
-</span><span id="Version-3064"><a href="#Version-3064"><span class="linenos">3064</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
-</span><span id="Version-3065"><a href="#Version-3065"><span class="linenos">3065</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
-</span><span id="Version-3066"><a href="#Version-3066"><span class="linenos">3066</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
-</span><span id="Version-3067"><a href="#Version-3067"><span class="linenos">3067</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
-</span><span id="Version-3068"><a href="#Version-3068"><span class="linenos">3068</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
-</span><span id="Version-3069"><a href="#Version-3069"><span class="linenos">3069</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
-</span><span id="Version-3070"><a href="#Version-3070"><span class="linenos">3070</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Version-3071"><a href="#Version-3071"><span class="linenos">3071</span></a>
-</span><span id="Version-3072"><a href="#Version-3072"><span class="linenos">3072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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="Version-3086"><a href="#Version-3086"><span class="linenos">3086</span></a><span class="k">class</span> <span class="nc">Version</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Version-3087"><a href="#Version-3087"><span class="linenos">3087</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Version-3088"><a href="#Version-3088"><span class="linenos">3088</span></a><span class="sd"> Time travel, iceberg, bigquery etc</span>
+</span><span id="Version-3089"><a href="#Version-3089"><span class="linenos">3089</span></a><span class="sd"> https://trino.io/docs/current/connector/iceberg.html?highlight=snapshot#using-snapshots</span>
+</span><span id="Version-3090"><a href="#Version-3090"><span class="linenos">3090</span></a><span class="sd"> https://www.databricks.com/blog/2019/02/04/introducing-delta-time-travel-for-large-scale-data-lakes.html</span>
+</span><span id="Version-3091"><a href="#Version-3091"><span class="linenos">3091</span></a><span class="sd"> https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#for_system_time_as_of</span>
+</span><span id="Version-3092"><a href="#Version-3092"><span class="linenos">3092</span></a><span class="sd"> https://learn.microsoft.com/en-us/sql/relational-databases/tables/querying-data-in-a-system-versioned-temporal-table?view=sql-server-ver16</span>
+</span><span id="Version-3093"><a href="#Version-3093"><span class="linenos">3093</span></a><span class="sd"> this is either TIMESTAMP or VERSION</span>
+</span><span id="Version-3094"><a href="#Version-3094"><span class="linenos">3094</span></a><span class="sd"> kind is (&quot;AS OF&quot;, &quot;BETWEEN&quot;)</span>
+</span><span id="Version-3095"><a href="#Version-3095"><span class="linenos">3095</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Version-3096"><a href="#Version-3096"><span class="linenos">3096</span></a>
+</span><span id="Version-3097"><a href="#Version-3097"><span class="linenos">3097</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47134,8 +47615,8 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Schema"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Schema-3075"><a href="#Schema-3075"><span class="linenos">3075</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Schema-3076"><a href="#Schema-3076"><span class="linenos">3076</span></a> <span class="n">arg_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;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="Schema-3100"><a href="#Schema-3100"><span class="linenos">3100</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Schema-3101"><a href="#Schema-3101"><span class="linenos">3101</span></a> <span class="n">arg_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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47254,8 +47735,8 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-3081"><a href="#Lock-3081"><span class="linenos">3081</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Lock-3082"><a href="#Lock-3082"><span class="linenos">3082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&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 class="s2">&quot;wait&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="Lock-3106"><a href="#Lock-3106"><span class="linenos">3106</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Lock-3107"><a href="#Lock-3107"><span class="linenos">3107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&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 class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -47374,567 +47855,567 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select-3085"><a href="#Select-3085"><span class="linenos">3085</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
-</span><span id="Select-3086"><a href="#Select-3086"><span class="linenos">3086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Select-3087"><a href="#Select-3087"><span class="linenos">3087</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Select-3088"><a href="#Select-3088"><span class="linenos">3088</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Select-3089"><a href="#Select-3089"><span class="linenos">3089</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="Select-3090"><a href="#Select-3090"><span class="linenos">3090</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Select-3091"><a href="#Select-3091"><span class="linenos">3091</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Select-3092"><a href="#Select-3092"><span class="linenos">3092</span></a> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Select-3093"><a href="#Select-3093"><span class="linenos">3093</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Select-3094"><a href="#Select-3094"><span class="linenos">3094</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Select-3095"><a href="#Select-3095"><span class="linenos">3095</span></a> <span class="p">}</span>
-</span><span id="Select-3096"><a href="#Select-3096"><span class="linenos">3096</span></a>
-</span><span id="Select-3097"><a href="#Select-3097"><span class="linenos">3097</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
-</span><span id="Select-3098"><a href="#Select-3098"><span class="linenos">3098</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select-3099"><a href="#Select-3099"><span class="linenos">3099</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3100"><a href="#Select-3100"><span class="linenos">3100</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3101"><a href="#Select-3101"><span class="linenos">3101</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select-3102"><a href="#Select-3102"><span class="linenos">3102</span></a>
-</span><span id="Select-3103"><a href="#Select-3103"><span class="linenos">3103</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3104"><a href="#Select-3104"><span class="linenos">3104</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select-3105"><a href="#Select-3105"><span class="linenos">3105</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select-3106"><a href="#Select-3106"><span class="linenos">3106</span></a>
-</span><span id="Select-3107"><a href="#Select-3107"><span class="linenos">3107</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3108"><a href="#Select-3108"><span class="linenos">3108</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
-</span><span id="Select-3109"><a href="#Select-3109"><span class="linenos">3109</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select-3110"><a href="#Select-3110"><span class="linenos">3110</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select-3111"><a href="#Select-3111"><span class="linenos">3111</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-3112"><a href="#Select-3112"><span class="linenos">3112</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3113"><a href="#Select-3113"><span class="linenos">3113</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3114"><a href="#Select-3114"><span class="linenos">3114</span></a>
-</span><span id="Select-3115"><a href="#Select-3115"><span class="linenos">3115</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3116"><a href="#Select-3116"><span class="linenos">3116</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3117"><a href="#Select-3117"><span class="linenos">3117</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3118"><a href="#Select-3118"><span class="linenos">3118</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select-3119"><a href="#Select-3119"><span class="linenos">3119</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select-3120"><a href="#Select-3120"><span class="linenos">3120</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3121"><a href="#Select-3121"><span class="linenos">3121</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="Select-3122"><a href="#Select-3122"><span class="linenos">3122</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="Select-3123"><a href="#Select-3123"><span class="linenos">3123</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
-</span><span id="Select-3124"><a href="#Select-3124"><span class="linenos">3124</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3125"><a href="#Select-3125"><span class="linenos">3125</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3126"><a href="#Select-3126"><span class="linenos">3126</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3127"><a href="#Select-3127"><span class="linenos">3127</span></a> <span class="p">)</span>
-</span><span id="Select-3128"><a href="#Select-3128"><span class="linenos">3128</span></a>
-</span><span id="Select-3129"><a href="#Select-3129"><span class="linenos">3129</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
-</span><span id="Select-3130"><a href="#Select-3130"><span class="linenos">3130</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3131"><a href="#Select-3131"><span class="linenos">3131</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3132"><a href="#Select-3132"><span class="linenos">3132</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3133"><a href="#Select-3133"><span class="linenos">3133</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="Select-3134"><a href="#Select-3134"><span class="linenos">3134</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3135"><a href="#Select-3135"><span class="linenos">3135</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3136"><a href="#Select-3136"><span class="linenos">3136</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3137"><a href="#Select-3137"><span class="linenos">3137</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3138"><a href="#Select-3138"><span class="linenos">3138</span></a><span class="sd"> Set the GROUP BY expression.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select-3110"><a href="#Select-3110"><span class="linenos">3110</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Query</span><span class="p">):</span>
+</span><span id="Select-3111"><a href="#Select-3111"><span class="linenos">3111</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Select-3112"><a href="#Select-3112"><span class="linenos">3112</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-3113"><a href="#Select-3113"><span class="linenos">3113</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-3114"><a href="#Select-3114"><span class="linenos">3114</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="Select-3115"><a href="#Select-3115"><span class="linenos">3115</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-3116"><a href="#Select-3116"><span class="linenos">3116</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-3117"><a href="#Select-3117"><span class="linenos">3117</span></a> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-3118"><a href="#Select-3118"><span class="linenos">3118</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Select-3119"><a href="#Select-3119"><span class="linenos">3119</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Select-3120"><a href="#Select-3120"><span class="linenos">3120</span></a> <span class="p">}</span>
+</span><span id="Select-3121"><a href="#Select-3121"><span class="linenos">3121</span></a>
+</span><span id="Select-3122"><a href="#Select-3122"><span class="linenos">3122</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="Select-3123"><a href="#Select-3123"><span class="linenos">3123</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select-3124"><a href="#Select-3124"><span class="linenos">3124</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3125"><a href="#Select-3125"><span class="linenos">3125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3126"><a href="#Select-3126"><span class="linenos">3126</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select-3127"><a href="#Select-3127"><span class="linenos">3127</span></a>
+</span><span id="Select-3128"><a href="#Select-3128"><span class="linenos">3128</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3129"><a href="#Select-3129"><span class="linenos">3129</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select-3130"><a href="#Select-3130"><span class="linenos">3130</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select-3131"><a href="#Select-3131"><span class="linenos">3131</span></a>
+</span><span id="Select-3132"><a href="#Select-3132"><span class="linenos">3132</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3133"><a href="#Select-3133"><span class="linenos">3133</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="Select-3134"><a href="#Select-3134"><span class="linenos">3134</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select-3135"><a href="#Select-3135"><span class="linenos">3135</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select-3136"><a href="#Select-3136"><span class="linenos">3136</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-3137"><a href="#Select-3137"><span class="linenos">3137</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3138"><a href="#Select-3138"><span class="linenos">3138</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-3139"><a href="#Select-3139"><span class="linenos">3139</span></a>
-</span><span id="Select-3140"><a href="#Select-3140"><span class="linenos">3140</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3141"><a href="#Select-3141"><span class="linenos">3141</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
-</span><span id="Select-3142"><a href="#Select-3142"><span class="linenos">3142</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select-3143"><a href="#Select-3143"><span class="linenos">3143</span></a>
-</span><span id="Select-3144"><a href="#Select-3144"><span class="linenos">3144</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3145"><a href="#Select-3145"><span class="linenos">3145</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3146"><a href="#Select-3146"><span class="linenos">3146</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-3147"><a href="#Select-3147"><span class="linenos">3147</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="Select-3148"><a href="#Select-3148"><span class="linenos">3148</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
-</span><span id="Select-3149"><a href="#Select-3149"><span class="linenos">3149</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3150"><a href="#Select-3150"><span class="linenos">3150</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select-3151"><a href="#Select-3151"><span class="linenos">3151</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-3152"><a href="#Select-3152"><span class="linenos">3152</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3153"><a href="#Select-3153"><span class="linenos">3153</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3154"><a href="#Select-3154"><span class="linenos">3154</span></a>
-</span><span id="Select-3155"><a href="#Select-3155"><span class="linenos">3155</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3156"><a href="#Select-3156"><span class="linenos">3156</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3157"><a href="#Select-3157"><span class="linenos">3157</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3158"><a href="#Select-3158"><span class="linenos">3158</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
-</span><span id="Select-3159"><a href="#Select-3159"><span class="linenos">3159</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="Select-3160"><a href="#Select-3160"><span class="linenos">3160</span></a>
-</span><span id="Select-3161"><a href="#Select-3161"><span class="linenos">3161</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-3162"><a href="#Select-3162"><span class="linenos">3162</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3163"><a href="#Select-3163"><span class="linenos">3163</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3164"><a href="#Select-3164"><span class="linenos">3164</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
-</span><span id="Select-3165"><a href="#Select-3165"><span class="linenos">3165</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3166"><a href="#Select-3166"><span class="linenos">3166</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3167"><a href="#Select-3167"><span class="linenos">3167</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
-</span><span id="Select-3168"><a href="#Select-3168"><span class="linenos">3168</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="Select-3169"><a href="#Select-3169"><span class="linenos">3169</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3170"><a href="#Select-3170"><span class="linenos">3170</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3171"><a href="#Select-3171"><span class="linenos">3171</span></a> <span class="p">)</span>
-</span><span id="Select-3172"><a href="#Select-3172"><span class="linenos">3172</span></a>
-</span><span id="Select-3173"><a href="#Select-3173"><span class="linenos">3173</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
-</span><span id="Select-3174"><a href="#Select-3174"><span class="linenos">3174</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3175"><a href="#Select-3175"><span class="linenos">3175</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3176"><a href="#Select-3176"><span class="linenos">3176</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3177"><a href="#Select-3177"><span class="linenos">3177</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="Select-3178"><a href="#Select-3178"><span class="linenos">3178</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3179"><a href="#Select-3179"><span class="linenos">3179</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3180"><a href="#Select-3180"><span class="linenos">3180</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3181"><a href="#Select-3181"><span class="linenos">3181</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3182"><a href="#Select-3182"><span class="linenos">3182</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select-3183"><a href="#Select-3183"><span class="linenos">3183</span></a>
-</span><span id="Select-3184"><a href="#Select-3184"><span class="linenos">3184</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3185"><a href="#Select-3185"><span class="linenos">3185</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select-3186"><a href="#Select-3186"><span class="linenos">3186</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select-3187"><a href="#Select-3187"><span class="linenos">3187</span></a>
-</span><span id="Select-3188"><a href="#Select-3188"><span class="linenos">3188</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3189"><a href="#Select-3189"><span class="linenos">3189</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3190"><a href="#Select-3190"><span class="linenos">3190</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-3191"><a href="#Select-3191"><span class="linenos">3191</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="Select-3192"><a href="#Select-3192"><span class="linenos">3192</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3193"><a href="#Select-3193"><span class="linenos">3193</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-3194"><a href="#Select-3194"><span class="linenos">3194</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-3195"><a href="#Select-3195"><span class="linenos">3195</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3196"><a href="#Select-3196"><span class="linenos">3196</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3140"><a href="#Select-3140"><span class="linenos">3140</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3141"><a href="#Select-3141"><span class="linenos">3141</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3142"><a href="#Select-3142"><span class="linenos">3142</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3143"><a href="#Select-3143"><span class="linenos">3143</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select-3144"><a href="#Select-3144"><span class="linenos">3144</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select-3145"><a href="#Select-3145"><span class="linenos">3145</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3146"><a href="#Select-3146"><span class="linenos">3146</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="Select-3147"><a href="#Select-3147"><span class="linenos">3147</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="Select-3148"><a href="#Select-3148"><span class="linenos">3148</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
+</span><span id="Select-3149"><a href="#Select-3149"><span class="linenos">3149</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3150"><a href="#Select-3150"><span class="linenos">3150</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3151"><a href="#Select-3151"><span class="linenos">3151</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3152"><a href="#Select-3152"><span class="linenos">3152</span></a> <span class="p">)</span>
+</span><span id="Select-3153"><a href="#Select-3153"><span class="linenos">3153</span></a>
+</span><span id="Select-3154"><a href="#Select-3154"><span class="linenos">3154</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="Select-3155"><a href="#Select-3155"><span class="linenos">3155</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3156"><a href="#Select-3156"><span class="linenos">3156</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3157"><a href="#Select-3157"><span class="linenos">3157</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3158"><a href="#Select-3158"><span class="linenos">3158</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="Select-3159"><a href="#Select-3159"><span class="linenos">3159</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3160"><a href="#Select-3160"><span class="linenos">3160</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3161"><a href="#Select-3161"><span class="linenos">3161</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3162"><a href="#Select-3162"><span class="linenos">3162</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3163"><a href="#Select-3163"><span class="linenos">3163</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select-3164"><a href="#Select-3164"><span class="linenos">3164</span></a>
+</span><span id="Select-3165"><a href="#Select-3165"><span class="linenos">3165</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3166"><a href="#Select-3166"><span class="linenos">3166</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
+</span><span id="Select-3167"><a href="#Select-3167"><span class="linenos">3167</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select-3168"><a href="#Select-3168"><span class="linenos">3168</span></a>
+</span><span id="Select-3169"><a href="#Select-3169"><span class="linenos">3169</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3170"><a href="#Select-3170"><span class="linenos">3170</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3171"><a href="#Select-3171"><span class="linenos">3171</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-3172"><a href="#Select-3172"><span class="linenos">3172</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="Select-3173"><a href="#Select-3173"><span class="linenos">3173</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
+</span><span id="Select-3174"><a href="#Select-3174"><span class="linenos">3174</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3175"><a href="#Select-3175"><span class="linenos">3175</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select-3176"><a href="#Select-3176"><span class="linenos">3176</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-3177"><a href="#Select-3177"><span class="linenos">3177</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3178"><a href="#Select-3178"><span class="linenos">3178</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3179"><a href="#Select-3179"><span class="linenos">3179</span></a>
+</span><span id="Select-3180"><a href="#Select-3180"><span class="linenos">3180</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3181"><a href="#Select-3181"><span class="linenos">3181</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3182"><a href="#Select-3182"><span class="linenos">3182</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3183"><a href="#Select-3183"><span class="linenos">3183</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
+</span><span id="Select-3184"><a href="#Select-3184"><span class="linenos">3184</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="Select-3185"><a href="#Select-3185"><span class="linenos">3185</span></a>
+</span><span id="Select-3186"><a href="#Select-3186"><span class="linenos">3186</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-3187"><a href="#Select-3187"><span class="linenos">3187</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3188"><a href="#Select-3188"><span class="linenos">3188</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3189"><a href="#Select-3189"><span class="linenos">3189</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
+</span><span id="Select-3190"><a href="#Select-3190"><span class="linenos">3190</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3191"><a href="#Select-3191"><span class="linenos">3191</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3192"><a href="#Select-3192"><span class="linenos">3192</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
+</span><span id="Select-3193"><a href="#Select-3193"><span class="linenos">3193</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="Select-3194"><a href="#Select-3194"><span class="linenos">3194</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3195"><a href="#Select-3195"><span class="linenos">3195</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3196"><a href="#Select-3196"><span class="linenos">3196</span></a> <span class="p">)</span>
</span><span id="Select-3197"><a href="#Select-3197"><span class="linenos">3197</span></a>
-</span><span id="Select-3198"><a href="#Select-3198"><span class="linenos">3198</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3199"><a href="#Select-3199"><span class="linenos">3199</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3200"><a href="#Select-3200"><span class="linenos">3200</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3201"><a href="#Select-3201"><span class="linenos">3201</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-3202"><a href="#Select-3202"><span class="linenos">3202</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3203"><a href="#Select-3203"><span class="linenos">3203</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3204"><a href="#Select-3204"><span class="linenos">3204</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
-</span><span id="Select-3205"><a href="#Select-3205"><span class="linenos">3205</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3206"><a href="#Select-3206"><span class="linenos">3206</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3207"><a href="#Select-3207"><span class="linenos">3207</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
-</span><span id="Select-3208"><a href="#Select-3208"><span class="linenos">3208</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="Select-3209"><a href="#Select-3209"><span class="linenos">3209</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3210"><a href="#Select-3210"><span class="linenos">3210</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3211"><a href="#Select-3211"><span class="linenos">3211</span></a> <span class="p">)</span>
+</span><span id="Select-3198"><a href="#Select-3198"><span class="linenos">3198</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="Select-3199"><a href="#Select-3199"><span class="linenos">3199</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3200"><a href="#Select-3200"><span class="linenos">3200</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3201"><a href="#Select-3201"><span class="linenos">3201</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3202"><a href="#Select-3202"><span class="linenos">3202</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="Select-3203"><a href="#Select-3203"><span class="linenos">3203</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3204"><a href="#Select-3204"><span class="linenos">3204</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3205"><a href="#Select-3205"><span class="linenos">3205</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3206"><a href="#Select-3206"><span class="linenos">3206</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3207"><a href="#Select-3207"><span class="linenos">3207</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select-3208"><a href="#Select-3208"><span class="linenos">3208</span></a>
+</span><span id="Select-3209"><a href="#Select-3209"><span class="linenos">3209</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3210"><a href="#Select-3210"><span class="linenos">3210</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select-3211"><a href="#Select-3211"><span class="linenos">3211</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
</span><span id="Select-3212"><a href="#Select-3212"><span class="linenos">3212</span></a>
-</span><span id="Select-3213"><a href="#Select-3213"><span class="linenos">3213</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
-</span><span id="Select-3214"><a href="#Select-3214"><span class="linenos">3214</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3215"><a href="#Select-3215"><span class="linenos">3215</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3216"><a href="#Select-3216"><span class="linenos">3216</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3217"><a href="#Select-3217"><span class="linenos">3217</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="Select-3218"><a href="#Select-3218"><span class="linenos">3218</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3219"><a href="#Select-3219"><span class="linenos">3219</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3220"><a href="#Select-3220"><span class="linenos">3220</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3221"><a href="#Select-3221"><span class="linenos">3221</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3222"><a href="#Select-3222"><span class="linenos">3222</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select-3223"><a href="#Select-3223"><span class="linenos">3223</span></a>
-</span><span id="Select-3224"><a href="#Select-3224"><span class="linenos">3224</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3225"><a href="#Select-3225"><span class="linenos">3225</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select-3226"><a href="#Select-3226"><span class="linenos">3226</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select-3227"><a href="#Select-3227"><span class="linenos">3227</span></a>
-</span><span id="Select-3228"><a href="#Select-3228"><span class="linenos">3228</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3229"><a href="#Select-3229"><span class="linenos">3229</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3230"><a href="#Select-3230"><span class="linenos">3230</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select-3231"><a href="#Select-3231"><span class="linenos">3231</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="Select-3232"><a href="#Select-3232"><span class="linenos">3232</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3233"><a href="#Select-3233"><span class="linenos">3233</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select-3234"><a href="#Select-3234"><span class="linenos">3234</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select-3235"><a href="#Select-3235"><span class="linenos">3235</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3236"><a href="#Select-3236"><span class="linenos">3236</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3213"><a href="#Select-3213"><span class="linenos">3213</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3214"><a href="#Select-3214"><span class="linenos">3214</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3215"><a href="#Select-3215"><span class="linenos">3215</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-3216"><a href="#Select-3216"><span class="linenos">3216</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="Select-3217"><a href="#Select-3217"><span class="linenos">3217</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3218"><a href="#Select-3218"><span class="linenos">3218</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-3219"><a href="#Select-3219"><span class="linenos">3219</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-3220"><a href="#Select-3220"><span class="linenos">3220</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3221"><a href="#Select-3221"><span class="linenos">3221</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3222"><a href="#Select-3222"><span class="linenos">3222</span></a>
+</span><span id="Select-3223"><a href="#Select-3223"><span class="linenos">3223</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3224"><a href="#Select-3224"><span class="linenos">3224</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3225"><a href="#Select-3225"><span class="linenos">3225</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3226"><a href="#Select-3226"><span class="linenos">3226</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-3227"><a href="#Select-3227"><span class="linenos">3227</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3228"><a href="#Select-3228"><span class="linenos">3228</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3229"><a href="#Select-3229"><span class="linenos">3229</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
+</span><span id="Select-3230"><a href="#Select-3230"><span class="linenos">3230</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3231"><a href="#Select-3231"><span class="linenos">3231</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3232"><a href="#Select-3232"><span class="linenos">3232</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
+</span><span id="Select-3233"><a href="#Select-3233"><span class="linenos">3233</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="Select-3234"><a href="#Select-3234"><span class="linenos">3234</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3235"><a href="#Select-3235"><span class="linenos">3235</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3236"><a href="#Select-3236"><span class="linenos">3236</span></a> <span class="p">)</span>
</span><span id="Select-3237"><a href="#Select-3237"><span class="linenos">3237</span></a>
-</span><span id="Select-3238"><a href="#Select-3238"><span class="linenos">3238</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3239"><a href="#Select-3239"><span class="linenos">3239</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3240"><a href="#Select-3240"><span class="linenos">3240</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3241"><a href="#Select-3241"><span class="linenos">3241</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select-3242"><a href="#Select-3242"><span class="linenos">3242</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3243"><a href="#Select-3243"><span class="linenos">3243</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3244"><a href="#Select-3244"><span class="linenos">3244</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
-</span><span id="Select-3245"><a href="#Select-3245"><span class="linenos">3245</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3246"><a href="#Select-3246"><span class="linenos">3246</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3247"><a href="#Select-3247"><span class="linenos">3247</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
-</span><span id="Select-3248"><a href="#Select-3248"><span class="linenos">3248</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="Select-3249"><a href="#Select-3249"><span class="linenos">3249</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3250"><a href="#Select-3250"><span class="linenos">3250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3251"><a href="#Select-3251"><span class="linenos">3251</span></a> <span class="p">)</span>
+</span><span id="Select-3238"><a href="#Select-3238"><span class="linenos">3238</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="Select-3239"><a href="#Select-3239"><span class="linenos">3239</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3240"><a href="#Select-3240"><span class="linenos">3240</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3241"><a href="#Select-3241"><span class="linenos">3241</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3242"><a href="#Select-3242"><span class="linenos">3242</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="Select-3243"><a href="#Select-3243"><span class="linenos">3243</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3244"><a href="#Select-3244"><span class="linenos">3244</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3245"><a href="#Select-3245"><span class="linenos">3245</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3246"><a href="#Select-3246"><span class="linenos">3246</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3247"><a href="#Select-3247"><span class="linenos">3247</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select-3248"><a href="#Select-3248"><span class="linenos">3248</span></a>
+</span><span id="Select-3249"><a href="#Select-3249"><span class="linenos">3249</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3250"><a href="#Select-3250"><span class="linenos">3250</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select-3251"><a href="#Select-3251"><span class="linenos">3251</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</span><span id="Select-3252"><a href="#Select-3252"><span class="linenos">3252</span></a>
-</span><span id="Select-3253"><a href="#Select-3253"><span class="linenos">3253</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select-3254"><a href="#Select-3254"><span class="linenos">3254</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3255"><a href="#Select-3255"><span class="linenos">3255</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3256"><a href="#Select-3256"><span class="linenos">3256</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3257"><a href="#Select-3257"><span class="linenos">3257</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="Select-3258"><a href="#Select-3258"><span class="linenos">3258</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3259"><a href="#Select-3259"><span class="linenos">3259</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3260"><a href="#Select-3260"><span class="linenos">3260</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3261"><a href="#Select-3261"><span class="linenos">3261</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3262"><a href="#Select-3262"><span class="linenos">3262</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3263"><a href="#Select-3263"><span class="linenos">3263</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3264"><a href="#Select-3264"><span class="linenos">3264</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="Select-3265"><a href="#Select-3265"><span class="linenos">3265</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3266"><a href="#Select-3266"><span class="linenos">3266</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3267"><a href="#Select-3267"><span class="linenos">3267</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Expression</span><span class="p">,</span>
-</span><span id="Select-3268"><a href="#Select-3268"><span class="linenos">3268</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3269"><a href="#Select-3269"><span class="linenos">3269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3270"><a href="#Select-3270"><span class="linenos">3270</span></a> <span class="p">)</span>
-</span><span id="Select-3271"><a href="#Select-3271"><span class="linenos">3271</span></a>
-</span><span id="Select-3272"><a href="#Select-3272"><span class="linenos">3272</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
-</span><span id="Select-3273"><a href="#Select-3273"><span class="linenos">3273</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3274"><a href="#Select-3274"><span class="linenos">3274</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3275"><a href="#Select-3275"><span class="linenos">3275</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3276"><a href="#Select-3276"><span class="linenos">3276</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="Select-3277"><a href="#Select-3277"><span class="linenos">3277</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3278"><a href="#Select-3278"><span class="linenos">3278</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3279"><a href="#Select-3279"><span class="linenos">3279</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3280"><a href="#Select-3280"><span class="linenos">3280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3281"><a href="#Select-3281"><span class="linenos">3281</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select-3282"><a href="#Select-3282"><span class="linenos">3282</span></a>
-</span><span id="Select-3283"><a href="#Select-3283"><span class="linenos">3283</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3284"><a href="#Select-3284"><span class="linenos">3284</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
-</span><span id="Select-3285"><a href="#Select-3285"><span class="linenos">3285</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="Select-3286"><a href="#Select-3286"><span class="linenos">3286</span></a>
-</span><span id="Select-3287"><a href="#Select-3287"><span class="linenos">3287</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3288"><a href="#Select-3288"><span class="linenos">3288</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3289"><a href="#Select-3289"><span class="linenos">3289</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3290"><a href="#Select-3290"><span class="linenos">3290</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3291"><a href="#Select-3291"><span class="linenos">3291</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-3292"><a href="#Select-3292"><span class="linenos">3292</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3293"><a href="#Select-3293"><span class="linenos">3293</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3294"><a href="#Select-3294"><span class="linenos">3294</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3295"><a href="#Select-3295"><span class="linenos">3295</span></a>
-</span><span id="Select-3296"><a href="#Select-3296"><span class="linenos">3296</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3297"><a href="#Select-3297"><span class="linenos">3297</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3298"><a href="#Select-3298"><span class="linenos">3298</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3299"><a href="#Select-3299"><span class="linenos">3299</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3300"><a href="#Select-3300"><span class="linenos">3300</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3301"><a href="#Select-3301"><span class="linenos">3301</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3302"><a href="#Select-3302"><span class="linenos">3302</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
-</span><span id="Select-3303"><a href="#Select-3303"><span class="linenos">3303</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3304"><a href="#Select-3304"><span class="linenos">3304</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="Select-3305"><a href="#Select-3305"><span class="linenos">3305</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
-</span><span id="Select-3306"><a href="#Select-3306"><span class="linenos">3306</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3307"><a href="#Select-3307"><span class="linenos">3307</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3308"><a href="#Select-3308"><span class="linenos">3308</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3309"><a href="#Select-3309"><span class="linenos">3309</span></a> <span class="p">)</span>
-</span><span id="Select-3310"><a href="#Select-3310"><span class="linenos">3310</span></a>
-</span><span id="Select-3311"><a href="#Select-3311"><span class="linenos">3311</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select-3312"><a href="#Select-3312"><span class="linenos">3312</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3313"><a href="#Select-3313"><span class="linenos">3313</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select-3314"><a href="#Select-3314"><span class="linenos">3314</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3315"><a href="#Select-3315"><span class="linenos">3315</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3316"><a href="#Select-3316"><span class="linenos">3316</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3317"><a href="#Select-3317"><span class="linenos">3317</span></a> <span class="n">join_type</span><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="Select-3318"><a href="#Select-3318"><span class="linenos">3318</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3319"><a href="#Select-3319"><span class="linenos">3319</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="Select-3320"><a href="#Select-3320"><span class="linenos">3320</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3321"><a href="#Select-3321"><span class="linenos">3321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3322"><a href="#Select-3322"><span class="linenos">3322</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3323"><a href="#Select-3323"><span class="linenos">3323</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3324"><a href="#Select-3324"><span class="linenos">3324</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select-3325"><a href="#Select-3325"><span class="linenos">3325</span></a>
-</span><span id="Select-3326"><a href="#Select-3326"><span class="linenos">3326</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3327"><a href="#Select-3327"><span class="linenos">3327</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
-</span><span id="Select-3328"><a href="#Select-3328"><span class="linenos">3328</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-3329"><a href="#Select-3329"><span class="linenos">3329</span></a>
-</span><span id="Select-3330"><a href="#Select-3330"><span class="linenos">3330</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
-</span><span id="Select-3331"><a href="#Select-3331"><span class="linenos">3331</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select-3332"><a href="#Select-3332"><span class="linenos">3332</span></a>
-</span><span id="Select-3333"><a href="#Select-3333"><span class="linenos">3333</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="Select-3334"><a href="#Select-3334"><span class="linenos">3334</span></a>
-</span><span id="Select-3335"><a href="#Select-3335"><span class="linenos">3335</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
-</span><span id="Select-3336"><a href="#Select-3336"><span class="linenos">3336</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select-3337"><a href="#Select-3337"><span class="linenos">3337</span></a>
-</span><span id="Select-3338"><a href="#Select-3338"><span class="linenos">3338</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3339"><a href="#Select-3339"><span class="linenos">3339</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select-3340"><a href="#Select-3340"><span class="linenos">3340</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3341"><a href="#Select-3341"><span class="linenos">3341</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select-3342"><a href="#Select-3342"><span class="linenos">3342</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3343"><a href="#Select-3343"><span class="linenos">3343</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select-3344"><a href="#Select-3344"><span class="linenos">3344</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3345"><a href="#Select-3345"><span class="linenos">3345</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select-3346"><a href="#Select-3346"><span class="linenos">3346</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select-3347"><a href="#Select-3347"><span class="linenos">3347</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
-</span><span id="Select-3348"><a href="#Select-3348"><span class="linenos">3348</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
-</span><span id="Select-3349"><a href="#Select-3349"><span class="linenos">3349</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3350"><a href="#Select-3350"><span class="linenos">3350</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3351"><a href="#Select-3351"><span class="linenos">3351</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select-3352"><a href="#Select-3352"><span class="linenos">3352</span></a>
-</span><span id="Select-3353"><a href="#Select-3353"><span class="linenos">3353</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3354"><a href="#Select-3354"><span class="linenos">3354</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-3355"><a href="#Select-3355"><span class="linenos">3355</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3356"><a href="#Select-3356"><span class="linenos">3356</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</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="Select-3253"><a href="#Select-3253"><span class="linenos">3253</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3254"><a href="#Select-3254"><span class="linenos">3254</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3255"><a href="#Select-3255"><span class="linenos">3255</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select-3256"><a href="#Select-3256"><span class="linenos">3256</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="Select-3257"><a href="#Select-3257"><span class="linenos">3257</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3258"><a href="#Select-3258"><span class="linenos">3258</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select-3259"><a href="#Select-3259"><span class="linenos">3259</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select-3260"><a href="#Select-3260"><span class="linenos">3260</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3261"><a href="#Select-3261"><span class="linenos">3261</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3262"><a href="#Select-3262"><span class="linenos">3262</span></a>
+</span><span id="Select-3263"><a href="#Select-3263"><span class="linenos">3263</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3264"><a href="#Select-3264"><span class="linenos">3264</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3265"><a href="#Select-3265"><span class="linenos">3265</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3266"><a href="#Select-3266"><span class="linenos">3266</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select-3267"><a href="#Select-3267"><span class="linenos">3267</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3268"><a href="#Select-3268"><span class="linenos">3268</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3269"><a href="#Select-3269"><span class="linenos">3269</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
+</span><span id="Select-3270"><a href="#Select-3270"><span class="linenos">3270</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3271"><a href="#Select-3271"><span class="linenos">3271</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3272"><a href="#Select-3272"><span class="linenos">3272</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
+</span><span id="Select-3273"><a href="#Select-3273"><span class="linenos">3273</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="Select-3274"><a href="#Select-3274"><span class="linenos">3274</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3275"><a href="#Select-3275"><span class="linenos">3275</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3276"><a href="#Select-3276"><span class="linenos">3276</span></a> <span class="p">)</span>
+</span><span id="Select-3277"><a href="#Select-3277"><span class="linenos">3277</span></a>
+</span><span id="Select-3278"><a href="#Select-3278"><span class="linenos">3278</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select-3279"><a href="#Select-3279"><span class="linenos">3279</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3280"><a href="#Select-3280"><span class="linenos">3280</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3281"><a href="#Select-3281"><span class="linenos">3281</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3282"><a href="#Select-3282"><span class="linenos">3282</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="Select-3283"><a href="#Select-3283"><span class="linenos">3283</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3284"><a href="#Select-3284"><span class="linenos">3284</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3285"><a href="#Select-3285"><span class="linenos">3285</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3286"><a href="#Select-3286"><span class="linenos">3286</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3287"><a href="#Select-3287"><span class="linenos">3287</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3288"><a href="#Select-3288"><span class="linenos">3288</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3289"><a href="#Select-3289"><span class="linenos">3289</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="Select-3290"><a href="#Select-3290"><span class="linenos">3290</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3291"><a href="#Select-3291"><span class="linenos">3291</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3292"><a href="#Select-3292"><span class="linenos">3292</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Expression</span><span class="p">,</span>
+</span><span id="Select-3293"><a href="#Select-3293"><span class="linenos">3293</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3294"><a href="#Select-3294"><span class="linenos">3294</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3295"><a href="#Select-3295"><span class="linenos">3295</span></a> <span class="p">)</span>
+</span><span id="Select-3296"><a href="#Select-3296"><span class="linenos">3296</span></a>
+</span><span id="Select-3297"><a href="#Select-3297"><span class="linenos">3297</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="Select-3298"><a href="#Select-3298"><span class="linenos">3298</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3299"><a href="#Select-3299"><span class="linenos">3299</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3300"><a href="#Select-3300"><span class="linenos">3300</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3301"><a href="#Select-3301"><span class="linenos">3301</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="Select-3302"><a href="#Select-3302"><span class="linenos">3302</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3303"><a href="#Select-3303"><span class="linenos">3303</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3304"><a href="#Select-3304"><span class="linenos">3304</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3305"><a href="#Select-3305"><span class="linenos">3305</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3306"><a href="#Select-3306"><span class="linenos">3306</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select-3307"><a href="#Select-3307"><span class="linenos">3307</span></a>
+</span><span id="Select-3308"><a href="#Select-3308"><span class="linenos">3308</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3309"><a href="#Select-3309"><span class="linenos">3309</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
+</span><span id="Select-3310"><a href="#Select-3310"><span class="linenos">3310</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
+</span><span id="Select-3311"><a href="#Select-3311"><span class="linenos">3311</span></a>
+</span><span id="Select-3312"><a href="#Select-3312"><span class="linenos">3312</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3313"><a href="#Select-3313"><span class="linenos">3313</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3314"><a href="#Select-3314"><span class="linenos">3314</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3315"><a href="#Select-3315"><span class="linenos">3315</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3316"><a href="#Select-3316"><span class="linenos">3316</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-3317"><a href="#Select-3317"><span class="linenos">3317</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3318"><a href="#Select-3318"><span class="linenos">3318</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3319"><a href="#Select-3319"><span class="linenos">3319</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3320"><a href="#Select-3320"><span class="linenos">3320</span></a>
+</span><span id="Select-3321"><a href="#Select-3321"><span class="linenos">3321</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3322"><a href="#Select-3322"><span class="linenos">3322</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3323"><a href="#Select-3323"><span class="linenos">3323</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3324"><a href="#Select-3324"><span class="linenos">3324</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3325"><a href="#Select-3325"><span class="linenos">3325</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3326"><a href="#Select-3326"><span class="linenos">3326</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3327"><a href="#Select-3327"><span class="linenos">3327</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
+</span><span id="Select-3328"><a href="#Select-3328"><span class="linenos">3328</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3329"><a href="#Select-3329"><span class="linenos">3329</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="Select-3330"><a href="#Select-3330"><span class="linenos">3330</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
+</span><span id="Select-3331"><a href="#Select-3331"><span class="linenos">3331</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3332"><a href="#Select-3332"><span class="linenos">3332</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3333"><a href="#Select-3333"><span class="linenos">3333</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3334"><a href="#Select-3334"><span class="linenos">3334</span></a> <span class="p">)</span>
+</span><span id="Select-3335"><a href="#Select-3335"><span class="linenos">3335</span></a>
+</span><span id="Select-3336"><a href="#Select-3336"><span class="linenos">3336</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select-3337"><a href="#Select-3337"><span class="linenos">3337</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3338"><a href="#Select-3338"><span class="linenos">3338</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select-3339"><a href="#Select-3339"><span class="linenos">3339</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3340"><a href="#Select-3340"><span class="linenos">3340</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3341"><a href="#Select-3341"><span class="linenos">3341</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3342"><a href="#Select-3342"><span class="linenos">3342</span></a> <span class="n">join_type</span><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="Select-3343"><a href="#Select-3343"><span class="linenos">3343</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3344"><a href="#Select-3344"><span class="linenos">3344</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="Select-3345"><a href="#Select-3345"><span class="linenos">3345</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3346"><a href="#Select-3346"><span class="linenos">3346</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3347"><a href="#Select-3347"><span class="linenos">3347</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3348"><a href="#Select-3348"><span class="linenos">3348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3349"><a href="#Select-3349"><span class="linenos">3349</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select-3350"><a href="#Select-3350"><span class="linenos">3350</span></a>
+</span><span id="Select-3351"><a href="#Select-3351"><span class="linenos">3351</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3352"><a href="#Select-3352"><span class="linenos">3352</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
+</span><span id="Select-3353"><a href="#Select-3353"><span class="linenos">3353</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select-3354"><a href="#Select-3354"><span class="linenos">3354</span></a>
+</span><span id="Select-3355"><a href="#Select-3355"><span class="linenos">3355</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
+</span><span id="Select-3356"><a href="#Select-3356"><span class="linenos">3356</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</span><span id="Select-3357"><a href="#Select-3357"><span class="linenos">3357</span></a>
-</span><span id="Select-3358"><a href="#Select-3358"><span class="linenos">3358</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select-3359"><a href="#Select-3359"><span class="linenos">3359</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">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
-</span><span id="Select-3360"><a href="#Select-3360"><span class="linenos">3360</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select-3361"><a href="#Select-3361"><span class="linenos">3361</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">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="Select-3358"><a href="#Select-3358"><span class="linenos">3358</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select-3359"><a href="#Select-3359"><span class="linenos">3359</span></a>
+</span><span id="Select-3360"><a href="#Select-3360"><span class="linenos">3360</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
+</span><span id="Select-3361"><a href="#Select-3361"><span class="linenos">3361</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="Select-3362"><a href="#Select-3362"><span class="linenos">3362</span></a>
-</span><span id="Select-3363"><a href="#Select-3363"><span class="linenos">3363</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</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="Select-3364"><a href="#Select-3364"><span class="linenos">3364</span></a>
-</span><span id="Select-3365"><a href="#Select-3365"><span class="linenos">3365</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
-</span><span id="Select-3366"><a href="#Select-3366"><span class="linenos">3366</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
-</span><span id="Select-3367"><a href="#Select-3367"><span class="linenos">3367</span></a>
-</span><span id="Select-3368"><a href="#Select-3368"><span class="linenos">3368</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select-3369"><a href="#Select-3369"><span class="linenos">3369</span></a> <span class="n">method</span><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">Token</span><span class="p">]</span>
-</span><span id="Select-3370"><a href="#Select-3370"><span class="linenos">3370</span></a> <span class="n">side</span><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">Token</span><span class="p">]</span>
-</span><span id="Select-3371"><a href="#Select-3371"><span class="linenos">3371</span></a> <span class="n">kind</span><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">Token</span><span class="p">]</span>
-</span><span id="Select-3372"><a href="#Select-3372"><span class="linenos">3372</span></a>
-</span><span id="Select-3373"><a href="#Select-3373"><span class="linenos">3373</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Select-3374"><a href="#Select-3374"><span class="linenos">3374</span></a>
-</span><span id="Select-3375"><a href="#Select-3375"><span class="linenos">3375</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
-</span><span id="Select-3376"><a href="#Select-3376"><span class="linenos">3376</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select-3377"><a href="#Select-3377"><span class="linenos">3377</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select-3378"><a href="#Select-3378"><span class="linenos">3378</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select-3379"><a href="#Select-3379"><span class="linenos">3379</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select-3380"><a href="#Select-3380"><span class="linenos">3380</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select-3381"><a href="#Select-3381"><span class="linenos">3381</span></a>
-</span><span id="Select-3382"><a href="#Select-3382"><span class="linenos">3382</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select-3383"><a href="#Select-3383"><span class="linenos">3383</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Select-3384"><a href="#Select-3384"><span class="linenos">3384</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
-</span><span id="Select-3385"><a href="#Select-3385"><span class="linenos">3385</span></a>
-</span><span id="Select-3386"><a href="#Select-3386"><span class="linenos">3386</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select-3387"><a href="#Select-3387"><span class="linenos">3387</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3388"><a href="#Select-3388"><span class="linenos">3388</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select-3389"><a href="#Select-3389"><span class="linenos">3389</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="Select-3390"><a href="#Select-3390"><span class="linenos">3390</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
-</span><span id="Select-3391"><a href="#Select-3391"><span class="linenos">3391</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3392"><a href="#Select-3392"><span class="linenos">3392</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3393"><a href="#Select-3393"><span class="linenos">3393</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="Select-3394"><a href="#Select-3394"><span class="linenos">3394</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3395"><a href="#Select-3395"><span class="linenos">3395</span></a> <span class="p">)</span>
-</span><span id="Select-3396"><a href="#Select-3396"><span class="linenos">3396</span></a>
-</span><span id="Select-3397"><a href="#Select-3397"><span class="linenos">3397</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select-3398"><a href="#Select-3398"><span class="linenos">3398</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
+</span><span id="Select-3363"><a href="#Select-3363"><span class="linenos">3363</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3364"><a href="#Select-3364"><span class="linenos">3364</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select-3365"><a href="#Select-3365"><span class="linenos">3365</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3366"><a href="#Select-3366"><span class="linenos">3366</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select-3367"><a href="#Select-3367"><span class="linenos">3367</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3368"><a href="#Select-3368"><span class="linenos">3368</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select-3369"><a href="#Select-3369"><span class="linenos">3369</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3370"><a href="#Select-3370"><span class="linenos">3370</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select-3371"><a href="#Select-3371"><span class="linenos">3371</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select-3372"><a href="#Select-3372"><span class="linenos">3372</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="Select-3373"><a href="#Select-3373"><span class="linenos">3373</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="Select-3374"><a href="#Select-3374"><span class="linenos">3374</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3375"><a href="#Select-3375"><span class="linenos">3375</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3376"><a href="#Select-3376"><span class="linenos">3376</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3377"><a href="#Select-3377"><span class="linenos">3377</span></a>
+</span><span id="Select-3378"><a href="#Select-3378"><span class="linenos">3378</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3379"><a href="#Select-3379"><span class="linenos">3379</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-3380"><a href="#Select-3380"><span class="linenos">3380</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3381"><a href="#Select-3381"><span class="linenos">3381</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</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="Select-3382"><a href="#Select-3382"><span class="linenos">3382</span></a>
+</span><span id="Select-3383"><a href="#Select-3383"><span class="linenos">3383</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select-3384"><a href="#Select-3384"><span class="linenos">3384</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">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="Select-3385"><a href="#Select-3385"><span class="linenos">3385</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select-3386"><a href="#Select-3386"><span class="linenos">3386</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">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="Select-3387"><a href="#Select-3387"><span class="linenos">3387</span></a>
+</span><span id="Select-3388"><a href="#Select-3388"><span class="linenos">3388</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</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="Select-3389"><a href="#Select-3389"><span class="linenos">3389</span></a>
+</span><span id="Select-3390"><a href="#Select-3390"><span class="linenos">3390</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
+</span><span id="Select-3391"><a href="#Select-3391"><span class="linenos">3391</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
+</span><span id="Select-3392"><a href="#Select-3392"><span class="linenos">3392</span></a>
+</span><span id="Select-3393"><a href="#Select-3393"><span class="linenos">3393</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select-3394"><a href="#Select-3394"><span class="linenos">3394</span></a> <span class="n">method</span><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">Token</span><span class="p">]</span>
+</span><span id="Select-3395"><a href="#Select-3395"><span class="linenos">3395</span></a> <span class="n">side</span><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">Token</span><span class="p">]</span>
+</span><span id="Select-3396"><a href="#Select-3396"><span class="linenos">3396</span></a> <span class="n">kind</span><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">Token</span><span class="p">]</span>
+</span><span id="Select-3397"><a href="#Select-3397"><span class="linenos">3397</span></a>
+</span><span id="Select-3398"><a href="#Select-3398"><span class="linenos">3398</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select-3399"><a href="#Select-3399"><span class="linenos">3399</span></a>
-</span><span id="Select-3400"><a href="#Select-3400"><span class="linenos">3400</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3401"><a href="#Select-3401"><span class="linenos">3401</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select-3402"><a href="#Select-3402"><span class="linenos">3402</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3403"><a href="#Select-3403"><span class="linenos">3403</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
-</span><span id="Select-3404"><a href="#Select-3404"><span class="linenos">3404</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3405"><a href="#Select-3405"><span class="linenos">3405</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3406"><a href="#Select-3406"><span class="linenos">3406</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3407"><a href="#Select-3407"><span class="linenos">3407</span></a> <span class="p">)</span>
-</span><span id="Select-3408"><a href="#Select-3408"><span class="linenos">3408</span></a>
-</span><span id="Select-3409"><a href="#Select-3409"><span class="linenos">3409</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Select-3410"><a href="#Select-3410"><span class="linenos">3410</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3411"><a href="#Select-3411"><span class="linenos">3411</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3412"><a href="#Select-3412"><span class="linenos">3412</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3413"><a href="#Select-3413"><span class="linenos">3413</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="Select-3414"><a href="#Select-3414"><span class="linenos">3414</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3415"><a href="#Select-3415"><span class="linenos">3415</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3416"><a href="#Select-3416"><span class="linenos">3416</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3417"><a href="#Select-3417"><span class="linenos">3417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3418"><a href="#Select-3418"><span class="linenos">3418</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select-3419"><a href="#Select-3419"><span class="linenos">3419</span></a>
-</span><span id="Select-3420"><a href="#Select-3420"><span class="linenos">3420</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3421"><a href="#Select-3421"><span class="linenos">3421</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
-</span><span id="Select-3422"><a href="#Select-3422"><span class="linenos">3422</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
-</span><span id="Select-3423"><a href="#Select-3423"><span class="linenos">3423</span></a>
-</span><span id="Select-3424"><a href="#Select-3424"><span class="linenos">3424</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3425"><a href="#Select-3425"><span class="linenos">3425</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3426"><a href="#Select-3426"><span class="linenos">3426</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3427"><a href="#Select-3427"><span class="linenos">3427</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-3428"><a href="#Select-3428"><span class="linenos">3428</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-3429"><a href="#Select-3429"><span class="linenos">3429</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-3430"><a href="#Select-3430"><span class="linenos">3430</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3431"><a href="#Select-3431"><span class="linenos">3431</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3432"><a href="#Select-3432"><span class="linenos">3432</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3400"><a href="#Select-3400"><span class="linenos">3400</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
+</span><span id="Select-3401"><a href="#Select-3401"><span class="linenos">3401</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select-3402"><a href="#Select-3402"><span class="linenos">3402</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select-3403"><a href="#Select-3403"><span class="linenos">3403</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select-3404"><a href="#Select-3404"><span class="linenos">3404</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select-3405"><a href="#Select-3405"><span class="linenos">3405</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select-3406"><a href="#Select-3406"><span class="linenos">3406</span></a>
+</span><span id="Select-3407"><a href="#Select-3407"><span class="linenos">3407</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select-3408"><a href="#Select-3408"><span class="linenos">3408</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Select-3409"><a href="#Select-3409"><span class="linenos">3409</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
+</span><span id="Select-3410"><a href="#Select-3410"><span class="linenos">3410</span></a>
+</span><span id="Select-3411"><a href="#Select-3411"><span class="linenos">3411</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select-3412"><a href="#Select-3412"><span class="linenos">3412</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3413"><a href="#Select-3413"><span class="linenos">3413</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="Select-3414"><a href="#Select-3414"><span class="linenos">3414</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="Select-3415"><a href="#Select-3415"><span class="linenos">3415</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
+</span><span id="Select-3416"><a href="#Select-3416"><span class="linenos">3416</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3417"><a href="#Select-3417"><span class="linenos">3417</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3418"><a href="#Select-3418"><span class="linenos">3418</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="Select-3419"><a href="#Select-3419"><span class="linenos">3419</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3420"><a href="#Select-3420"><span class="linenos">3420</span></a> <span class="p">)</span>
+</span><span id="Select-3421"><a href="#Select-3421"><span class="linenos">3421</span></a>
+</span><span id="Select-3422"><a href="#Select-3422"><span class="linenos">3422</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select-3423"><a href="#Select-3423"><span class="linenos">3423</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
+</span><span id="Select-3424"><a href="#Select-3424"><span class="linenos">3424</span></a>
+</span><span id="Select-3425"><a href="#Select-3425"><span class="linenos">3425</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3426"><a href="#Select-3426"><span class="linenos">3426</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select-3427"><a href="#Select-3427"><span class="linenos">3427</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3428"><a href="#Select-3428"><span class="linenos">3428</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
+</span><span id="Select-3429"><a href="#Select-3429"><span class="linenos">3429</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3430"><a href="#Select-3430"><span class="linenos">3430</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3431"><a href="#Select-3431"><span class="linenos">3431</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3432"><a href="#Select-3432"><span class="linenos">3432</span></a> <span class="p">)</span>
</span><span id="Select-3433"><a href="#Select-3433"><span class="linenos">3433</span></a>
-</span><span id="Select-3434"><a href="#Select-3434"><span class="linenos">3434</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3435"><a href="#Select-3435"><span class="linenos">3435</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-3436"><a href="#Select-3436"><span class="linenos">3436</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3437"><a href="#Select-3437"><span class="linenos">3437</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-3438"><a href="#Select-3438"><span class="linenos">3438</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3439"><a href="#Select-3439"><span class="linenos">3439</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3440"><a href="#Select-3440"><span class="linenos">3440</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="Select-3441"><a href="#Select-3441"><span class="linenos">3441</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3442"><a href="#Select-3442"><span class="linenos">3442</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Select-3443"><a href="#Select-3443"><span class="linenos">3443</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3444"><a href="#Select-3444"><span class="linenos">3444</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3445"><a href="#Select-3445"><span class="linenos">3445</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3446"><a href="#Select-3446"><span class="linenos">3446</span></a> <span class="p">)</span>
-</span><span id="Select-3447"><a href="#Select-3447"><span class="linenos">3447</span></a>
-</span><span id="Select-3448"><a href="#Select-3448"><span class="linenos">3448</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
-</span><span id="Select-3449"><a href="#Select-3449"><span class="linenos">3449</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3450"><a href="#Select-3450"><span class="linenos">3450</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3451"><a href="#Select-3451"><span class="linenos">3451</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3452"><a href="#Select-3452"><span class="linenos">3452</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="Select-3453"><a href="#Select-3453"><span class="linenos">3453</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3454"><a href="#Select-3454"><span class="linenos">3454</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3455"><a href="#Select-3455"><span class="linenos">3455</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3456"><a href="#Select-3456"><span class="linenos">3456</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3457"><a href="#Select-3457"><span class="linenos">3457</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select-3434"><a href="#Select-3434"><span class="linenos">3434</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Select-3435"><a href="#Select-3435"><span class="linenos">3435</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3436"><a href="#Select-3436"><span class="linenos">3436</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3437"><a href="#Select-3437"><span class="linenos">3437</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3438"><a href="#Select-3438"><span class="linenos">3438</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="Select-3439"><a href="#Select-3439"><span class="linenos">3439</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3440"><a href="#Select-3440"><span class="linenos">3440</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3441"><a href="#Select-3441"><span class="linenos">3441</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3442"><a href="#Select-3442"><span class="linenos">3442</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3443"><a href="#Select-3443"><span class="linenos">3443</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select-3444"><a href="#Select-3444"><span class="linenos">3444</span></a>
+</span><span id="Select-3445"><a href="#Select-3445"><span class="linenos">3445</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3446"><a href="#Select-3446"><span class="linenos">3446</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
+</span><span id="Select-3447"><a href="#Select-3447"><span class="linenos">3447</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="Select-3448"><a href="#Select-3448"><span class="linenos">3448</span></a>
+</span><span id="Select-3449"><a href="#Select-3449"><span class="linenos">3449</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3450"><a href="#Select-3450"><span class="linenos">3450</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3451"><a href="#Select-3451"><span class="linenos">3451</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3452"><a href="#Select-3452"><span class="linenos">3452</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-3453"><a href="#Select-3453"><span class="linenos">3453</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-3454"><a href="#Select-3454"><span class="linenos">3454</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-3455"><a href="#Select-3455"><span class="linenos">3455</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3456"><a href="#Select-3456"><span class="linenos">3456</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3457"><a href="#Select-3457"><span class="linenos">3457</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-3458"><a href="#Select-3458"><span class="linenos">3458</span></a>
-</span><span id="Select-3459"><a href="#Select-3459"><span class="linenos">3459</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3460"><a href="#Select-3460"><span class="linenos">3460</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
-</span><span id="Select-3461"><a href="#Select-3461"><span class="linenos">3461</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
-</span><span id="Select-3462"><a href="#Select-3462"><span class="linenos">3462</span></a>
-</span><span id="Select-3463"><a href="#Select-3463"><span class="linenos">3463</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3464"><a href="#Select-3464"><span class="linenos">3464</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select-3465"><a href="#Select-3465"><span class="linenos">3465</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3466"><a href="#Select-3466"><span class="linenos">3466</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select-3467"><a href="#Select-3467"><span class="linenos">3467</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select-3468"><a href="#Select-3468"><span class="linenos">3468</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select-3469"><a href="#Select-3469"><span class="linenos">3469</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select-3470"><a href="#Select-3470"><span class="linenos">3470</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3471"><a href="#Select-3471"><span class="linenos">3471</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3459"><a href="#Select-3459"><span class="linenos">3459</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3460"><a href="#Select-3460"><span class="linenos">3460</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-3461"><a href="#Select-3461"><span class="linenos">3461</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3462"><a href="#Select-3462"><span class="linenos">3462</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-3463"><a href="#Select-3463"><span class="linenos">3463</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3464"><a href="#Select-3464"><span class="linenos">3464</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3465"><a href="#Select-3465"><span class="linenos">3465</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="Select-3466"><a href="#Select-3466"><span class="linenos">3466</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3467"><a href="#Select-3467"><span class="linenos">3467</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Select-3468"><a href="#Select-3468"><span class="linenos">3468</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3469"><a href="#Select-3469"><span class="linenos">3469</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3470"><a href="#Select-3470"><span class="linenos">3470</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3471"><a href="#Select-3471"><span class="linenos">3471</span></a> <span class="p">)</span>
</span><span id="Select-3472"><a href="#Select-3472"><span class="linenos">3472</span></a>
-</span><span id="Select-3473"><a href="#Select-3473"><span class="linenos">3473</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3474"><a href="#Select-3474"><span class="linenos">3474</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select-3475"><a href="#Select-3475"><span class="linenos">3475</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3476"><a href="#Select-3476"><span class="linenos">3476</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-3477"><a href="#Select-3477"><span class="linenos">3477</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3478"><a href="#Select-3478"><span class="linenos">3478</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3479"><a href="#Select-3479"><span class="linenos">3479</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
-</span><span id="Select-3480"><a href="#Select-3480"><span class="linenos">3480</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3481"><a href="#Select-3481"><span class="linenos">3481</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="Select-3482"><a href="#Select-3482"><span class="linenos">3482</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3483"><a href="#Select-3483"><span class="linenos">3483</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3484"><a href="#Select-3484"><span class="linenos">3484</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3485"><a href="#Select-3485"><span class="linenos">3485</span></a> <span class="p">)</span>
-</span><span id="Select-3486"><a href="#Select-3486"><span class="linenos">3486</span></a>
-</span><span id="Select-3487"><a href="#Select-3487"><span class="linenos">3487</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
-</span><span id="Select-3488"><a href="#Select-3488"><span class="linenos">3488</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3489"><a href="#Select-3489"><span class="linenos">3489</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3490"><a href="#Select-3490"><span class="linenos">3490</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3491"><a href="#Select-3491"><span class="linenos">3491</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="Select-3492"><a href="#Select-3492"><span class="linenos">3492</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3493"><a href="#Select-3493"><span class="linenos">3493</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3494"><a href="#Select-3494"><span class="linenos">3494</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3495"><a href="#Select-3495"><span class="linenos">3495</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select-3496"><a href="#Select-3496"><span class="linenos">3496</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3497"><a href="#Select-3497"><span class="linenos">3497</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3498"><a href="#Select-3498"><span class="linenos">3498</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
-</span><span id="Select-3499"><a href="#Select-3499"><span class="linenos">3499</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3500"><a href="#Select-3500"><span class="linenos">3500</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="Select-3501"><a href="#Select-3501"><span class="linenos">3501</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3502"><a href="#Select-3502"><span class="linenos">3502</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3503"><a href="#Select-3503"><span class="linenos">3503</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3504"><a href="#Select-3504"><span class="linenos">3504</span></a> <span class="p">)</span>
-</span><span id="Select-3505"><a href="#Select-3505"><span class="linenos">3505</span></a>
-</span><span id="Select-3506"><a href="#Select-3506"><span class="linenos">3506</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
-</span><span id="Select-3507"><a href="#Select-3507"><span class="linenos">3507</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3508"><a href="#Select-3508"><span class="linenos">3508</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select-3509"><a href="#Select-3509"><span class="linenos">3509</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3510"><a href="#Select-3510"><span class="linenos">3510</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="Select-3511"><a href="#Select-3511"><span class="linenos">3511</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3512"><a href="#Select-3512"><span class="linenos">3512</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3513"><a href="#Select-3513"><span class="linenos">3513</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3514"><a href="#Select-3514"><span class="linenos">3514</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select-3515"><a href="#Select-3515"><span class="linenos">3515</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select-3516"><a href="#Select-3516"><span class="linenos">3516</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3517"><a href="#Select-3517"><span class="linenos">3517</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
-</span><span id="Select-3518"><a href="#Select-3518"><span class="linenos">3518</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select-3519"><a href="#Select-3519"><span class="linenos">3519</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="Select-3520"><a href="#Select-3520"><span class="linenos">3520</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select-3521"><a href="#Select-3521"><span class="linenos">3521</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select-3522"><a href="#Select-3522"><span class="linenos">3522</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3523"><a href="#Select-3523"><span class="linenos">3523</span></a> <span class="p">)</span>
-</span><span id="Select-3524"><a href="#Select-3524"><span class="linenos">3524</span></a>
-</span><span id="Select-3525"><a href="#Select-3525"><span class="linenos">3525</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
-</span><span id="Select-3526"><a href="#Select-3526"><span class="linenos">3526</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Select-3527"><a href="#Select-3527"><span class="linenos">3527</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3528"><a href="#Select-3528"><span class="linenos">3528</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3529"><a href="#Select-3529"><span class="linenos">3529</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-3473"><a href="#Select-3473"><span class="linenos">3473</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="Select-3474"><a href="#Select-3474"><span class="linenos">3474</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3475"><a href="#Select-3475"><span class="linenos">3475</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3476"><a href="#Select-3476"><span class="linenos">3476</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3477"><a href="#Select-3477"><span class="linenos">3477</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="Select-3478"><a href="#Select-3478"><span class="linenos">3478</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3479"><a href="#Select-3479"><span class="linenos">3479</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3480"><a href="#Select-3480"><span class="linenos">3480</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3481"><a href="#Select-3481"><span class="linenos">3481</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3482"><a href="#Select-3482"><span class="linenos">3482</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select-3483"><a href="#Select-3483"><span class="linenos">3483</span></a>
+</span><span id="Select-3484"><a href="#Select-3484"><span class="linenos">3484</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3485"><a href="#Select-3485"><span class="linenos">3485</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
+</span><span id="Select-3486"><a href="#Select-3486"><span class="linenos">3486</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
+</span><span id="Select-3487"><a href="#Select-3487"><span class="linenos">3487</span></a>
+</span><span id="Select-3488"><a href="#Select-3488"><span class="linenos">3488</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3489"><a href="#Select-3489"><span class="linenos">3489</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select-3490"><a href="#Select-3490"><span class="linenos">3490</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3491"><a href="#Select-3491"><span class="linenos">3491</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select-3492"><a href="#Select-3492"><span class="linenos">3492</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select-3493"><a href="#Select-3493"><span class="linenos">3493</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select-3494"><a href="#Select-3494"><span class="linenos">3494</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select-3495"><a href="#Select-3495"><span class="linenos">3495</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3496"><a href="#Select-3496"><span class="linenos">3496</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select-3497"><a href="#Select-3497"><span class="linenos">3497</span></a>
+</span><span id="Select-3498"><a href="#Select-3498"><span class="linenos">3498</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3499"><a href="#Select-3499"><span class="linenos">3499</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select-3500"><a href="#Select-3500"><span class="linenos">3500</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3501"><a href="#Select-3501"><span class="linenos">3501</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-3502"><a href="#Select-3502"><span class="linenos">3502</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3503"><a href="#Select-3503"><span class="linenos">3503</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3504"><a href="#Select-3504"><span class="linenos">3504</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
+</span><span id="Select-3505"><a href="#Select-3505"><span class="linenos">3505</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3506"><a href="#Select-3506"><span class="linenos">3506</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="Select-3507"><a href="#Select-3507"><span class="linenos">3507</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3508"><a href="#Select-3508"><span class="linenos">3508</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3509"><a href="#Select-3509"><span class="linenos">3509</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3510"><a href="#Select-3510"><span class="linenos">3510</span></a> <span class="p">)</span>
+</span><span id="Select-3511"><a href="#Select-3511"><span class="linenos">3511</span></a>
+</span><span id="Select-3512"><a href="#Select-3512"><span class="linenos">3512</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="Select-3513"><a href="#Select-3513"><span class="linenos">3513</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3514"><a href="#Select-3514"><span class="linenos">3514</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3515"><a href="#Select-3515"><span class="linenos">3515</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3516"><a href="#Select-3516"><span class="linenos">3516</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="Select-3517"><a href="#Select-3517"><span class="linenos">3517</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3518"><a href="#Select-3518"><span class="linenos">3518</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3519"><a href="#Select-3519"><span class="linenos">3519</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3520"><a href="#Select-3520"><span class="linenos">3520</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select-3521"><a href="#Select-3521"><span class="linenos">3521</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3522"><a href="#Select-3522"><span class="linenos">3522</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3523"><a href="#Select-3523"><span class="linenos">3523</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
+</span><span id="Select-3524"><a href="#Select-3524"><span class="linenos">3524</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3525"><a href="#Select-3525"><span class="linenos">3525</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="Select-3526"><a href="#Select-3526"><span class="linenos">3526</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3527"><a href="#Select-3527"><span class="linenos">3527</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3528"><a href="#Select-3528"><span class="linenos">3528</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3529"><a href="#Select-3529"><span class="linenos">3529</span></a> <span class="p">)</span>
</span><span id="Select-3530"><a href="#Select-3530"><span class="linenos">3530</span></a>
-</span><span id="Select-3531"><a href="#Select-3531"><span class="linenos">3531</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3532"><a href="#Select-3532"><span class="linenos">3532</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="Select-3533"><a href="#Select-3533"><span class="linenos">3533</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select-3534"><a href="#Select-3534"><span class="linenos">3534</span></a>
-</span><span id="Select-3535"><a href="#Select-3535"><span class="linenos">3535</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3536"><a href="#Select-3536"><span class="linenos">3536</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="Select-3537"><a href="#Select-3537"><span class="linenos">3537</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="Select-3538"><a href="#Select-3538"><span class="linenos">3538</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3539"><a href="#Select-3539"><span class="linenos">3539</span></a>
-</span><span id="Select-3540"><a href="#Select-3540"><span class="linenos">3540</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3541"><a href="#Select-3541"><span class="linenos">3541</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select-3542"><a href="#Select-3542"><span class="linenos">3542</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3543"><a href="#Select-3543"><span class="linenos">3543</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select-3544"><a href="#Select-3544"><span class="linenos">3544</span></a> <span class="n">on</span> <span class="o">=</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">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="Select-3545"><a href="#Select-3545"><span class="linenos">3545</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Select-3546"><a href="#Select-3546"><span class="linenos">3546</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Select-3547"><a href="#Select-3547"><span class="linenos">3547</span></a>
-</span><span id="Select-3548"><a href="#Select-3548"><span class="linenos">3548</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
-</span><span id="Select-3549"><a href="#Select-3549"><span class="linenos">3549</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select-3550"><a href="#Select-3550"><span class="linenos">3550</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select-3551"><a href="#Select-3551"><span class="linenos">3551</span></a> <span class="n">properties</span><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">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select-3552"><a href="#Select-3552"><span class="linenos">3552</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="Select-3553"><a href="#Select-3553"><span class="linenos">3553</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select-3554"><a href="#Select-3554"><span class="linenos">3554</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select-3555"><a href="#Select-3555"><span class="linenos">3555</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="Select-3556"><a href="#Select-3556"><span class="linenos">3556</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3557"><a href="#Select-3557"><span class="linenos">3557</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select-3558"><a href="#Select-3558"><span class="linenos">3558</span></a>
-</span><span id="Select-3559"><a href="#Select-3559"><span class="linenos">3559</span></a><span class="sd"> Example:</span>
-</span><span id="Select-3560"><a href="#Select-3560"><span class="linenos">3560</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
-</span><span id="Select-3561"><a href="#Select-3561"><span class="linenos">3561</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select-3562"><a href="#Select-3562"><span class="linenos">3562</span></a>
-</span><span id="Select-3563"><a href="#Select-3563"><span class="linenos">3563</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3564"><a href="#Select-3564"><span class="linenos">3564</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
-</span><span id="Select-3565"><a href="#Select-3565"><span class="linenos">3565</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3566"><a href="#Select-3566"><span class="linenos">3566</span></a><span class="sd"> properties: an optional mapping of table properties</span>
-</span><span id="Select-3567"><a href="#Select-3567"><span class="linenos">3567</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
-</span><span id="Select-3568"><a href="#Select-3568"><span class="linenos">3568</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3569"><a href="#Select-3569"><span class="linenos">3569</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
-</span><span id="Select-3570"><a href="#Select-3570"><span class="linenos">3570</span></a>
-</span><span id="Select-3571"><a href="#Select-3571"><span class="linenos">3571</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3572"><a href="#Select-3572"><span class="linenos">3572</span></a><span class="sd"> The new Create expression.</span>
-</span><span id="Select-3573"><a href="#Select-3573"><span class="linenos">3573</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3574"><a href="#Select-3574"><span class="linenos">3574</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select-3575"><a href="#Select-3575"><span class="linenos">3575</span></a> <span class="n">table_expression</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="Select-3576"><a href="#Select-3576"><span class="linenos">3576</span></a>
-</span><span id="Select-3577"><a href="#Select-3577"><span class="linenos">3577</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select-3578"><a href="#Select-3578"><span class="linenos">3578</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select-3579"><a href="#Select-3579"><span class="linenos">3579</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
-</span><span id="Select-3580"><a href="#Select-3580"><span class="linenos">3580</span></a>
-</span><span id="Select-3581"><a href="#Select-3581"><span class="linenos">3581</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select-3582"><a href="#Select-3582"><span class="linenos">3582</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
-</span><span id="Select-3583"><a href="#Select-3583"><span class="linenos">3583</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;TABLE&quot;</span><span class="p">,</span>
-</span><span id="Select-3584"><a href="#Select-3584"><span class="linenos">3584</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Select-3585"><a href="#Select-3585"><span class="linenos">3585</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
-</span><span id="Select-3586"><a href="#Select-3586"><span class="linenos">3586</span></a> <span class="p">)</span>
+</span><span id="Select-3531"><a href="#Select-3531"><span class="linenos">3531</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="Select-3532"><a href="#Select-3532"><span class="linenos">3532</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3533"><a href="#Select-3533"><span class="linenos">3533</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select-3534"><a href="#Select-3534"><span class="linenos">3534</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3535"><a href="#Select-3535"><span class="linenos">3535</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="Select-3536"><a href="#Select-3536"><span class="linenos">3536</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3537"><a href="#Select-3537"><span class="linenos">3537</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3538"><a href="#Select-3538"><span class="linenos">3538</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3539"><a href="#Select-3539"><span class="linenos">3539</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select-3540"><a href="#Select-3540"><span class="linenos">3540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select-3541"><a href="#Select-3541"><span class="linenos">3541</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3542"><a href="#Select-3542"><span class="linenos">3542</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
+</span><span id="Select-3543"><a href="#Select-3543"><span class="linenos">3543</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select-3544"><a href="#Select-3544"><span class="linenos">3544</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="Select-3545"><a href="#Select-3545"><span class="linenos">3545</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select-3546"><a href="#Select-3546"><span class="linenos">3546</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select-3547"><a href="#Select-3547"><span class="linenos">3547</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3548"><a href="#Select-3548"><span class="linenos">3548</span></a> <span class="p">)</span>
+</span><span id="Select-3549"><a href="#Select-3549"><span class="linenos">3549</span></a>
+</span><span id="Select-3550"><a href="#Select-3550"><span class="linenos">3550</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="Select-3551"><a href="#Select-3551"><span class="linenos">3551</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Select-3552"><a href="#Select-3552"><span class="linenos">3552</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3553"><a href="#Select-3553"><span class="linenos">3553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3554"><a href="#Select-3554"><span class="linenos">3554</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select-3555"><a href="#Select-3555"><span class="linenos">3555</span></a>
+</span><span id="Select-3556"><a href="#Select-3556"><span class="linenos">3556</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3557"><a href="#Select-3557"><span class="linenos">3557</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="Select-3558"><a href="#Select-3558"><span class="linenos">3558</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select-3559"><a href="#Select-3559"><span class="linenos">3559</span></a>
+</span><span id="Select-3560"><a href="#Select-3560"><span class="linenos">3560</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3561"><a href="#Select-3561"><span class="linenos">3561</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="Select-3562"><a href="#Select-3562"><span class="linenos">3562</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="Select-3563"><a href="#Select-3563"><span class="linenos">3563</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3564"><a href="#Select-3564"><span class="linenos">3564</span></a>
+</span><span id="Select-3565"><a href="#Select-3565"><span class="linenos">3565</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3566"><a href="#Select-3566"><span class="linenos">3566</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select-3567"><a href="#Select-3567"><span class="linenos">3567</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3568"><a href="#Select-3568"><span class="linenos">3568</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select-3569"><a href="#Select-3569"><span class="linenos">3569</span></a> <span class="n">on</span> <span class="o">=</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">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="Select-3570"><a href="#Select-3570"><span class="linenos">3570</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Select-3571"><a href="#Select-3571"><span class="linenos">3571</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="Select-3572"><a href="#Select-3572"><span class="linenos">3572</span></a>
+</span><span id="Select-3573"><a href="#Select-3573"><span class="linenos">3573</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="Select-3574"><a href="#Select-3574"><span class="linenos">3574</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select-3575"><a href="#Select-3575"><span class="linenos">3575</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select-3576"><a href="#Select-3576"><span class="linenos">3576</span></a> <span class="n">properties</span><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">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select-3577"><a href="#Select-3577"><span class="linenos">3577</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="Select-3578"><a href="#Select-3578"><span class="linenos">3578</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select-3579"><a href="#Select-3579"><span class="linenos">3579</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select-3580"><a href="#Select-3580"><span class="linenos">3580</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
+</span><span id="Select-3581"><a href="#Select-3581"><span class="linenos">3581</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3582"><a href="#Select-3582"><span class="linenos">3582</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select-3583"><a href="#Select-3583"><span class="linenos">3583</span></a>
+</span><span id="Select-3584"><a href="#Select-3584"><span class="linenos">3584</span></a><span class="sd"> Example:</span>
+</span><span id="Select-3585"><a href="#Select-3585"><span class="linenos">3585</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="Select-3586"><a href="#Select-3586"><span class="linenos">3586</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</span><span id="Select-3587"><a href="#Select-3587"><span class="linenos">3587</span></a>
-</span><span id="Select-3588"><a href="#Select-3588"><span class="linenos">3588</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3589"><a href="#Select-3589"><span class="linenos">3589</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3590"><a href="#Select-3590"><span class="linenos">3590</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select-3591"><a href="#Select-3591"><span class="linenos">3591</span></a>
-</span><span id="Select-3592"><a href="#Select-3592"><span class="linenos">3592</span></a><span class="sd"> Examples:</span>
-</span><span id="Select-3593"><a href="#Select-3593"><span class="linenos">3593</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
-</span><span id="Select-3594"><a href="#Select-3594"><span class="linenos">3594</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select-3588"><a href="#Select-3588"><span class="linenos">3588</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3589"><a href="#Select-3589"><span class="linenos">3589</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="Select-3590"><a href="#Select-3590"><span class="linenos">3590</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3591"><a href="#Select-3591"><span class="linenos">3591</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="Select-3592"><a href="#Select-3592"><span class="linenos">3592</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="Select-3593"><a href="#Select-3593"><span class="linenos">3593</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3594"><a href="#Select-3594"><span class="linenos">3594</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
</span><span id="Select-3595"><a href="#Select-3595"><span class="linenos">3595</span></a>
-</span><span id="Select-3596"><a href="#Select-3596"><span class="linenos">3596</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
-</span><span id="Select-3597"><a href="#Select-3597"><span class="linenos">3597</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select-3598"><a href="#Select-3598"><span class="linenos">3598</span></a>
-</span><span id="Select-3599"><a href="#Select-3599"><span class="linenos">3599</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3600"><a href="#Select-3600"><span class="linenos">3600</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
-</span><span id="Select-3601"><a href="#Select-3601"><span class="linenos">3601</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3602"><a href="#Select-3602"><span class="linenos">3602</span></a>
-</span><span id="Select-3603"><a href="#Select-3603"><span class="linenos">3603</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3604"><a href="#Select-3604"><span class="linenos">3604</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select-3605"><a href="#Select-3605"><span class="linenos">3605</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3606"><a href="#Select-3606"><span class="linenos">3606</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select-3607"><a href="#Select-3607"><span class="linenos">3607</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
-</span><span id="Select-3608"><a href="#Select-3608"><span class="linenos">3608</span></a>
-</span><span id="Select-3609"><a href="#Select-3609"><span class="linenos">3609</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="Select-3610"><a href="#Select-3610"><span class="linenos">3610</span></a>
-</span><span id="Select-3611"><a href="#Select-3611"><span class="linenos">3611</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select-3612"><a href="#Select-3612"><span class="linenos">3612</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select-3613"><a href="#Select-3613"><span class="linenos">3613</span></a><span class="sd"> Set hints for this expression.</span>
-</span><span id="Select-3614"><a href="#Select-3614"><span class="linenos">3614</span></a>
-</span><span id="Select-3615"><a href="#Select-3615"><span class="linenos">3615</span></a><span class="sd"> Examples:</span>
-</span><span id="Select-3616"><a href="#Select-3616"><span class="linenos">3616</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
-</span><span id="Select-3617"><a href="#Select-3617"><span class="linenos">3617</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
-</span><span id="Select-3618"><a href="#Select-3618"><span class="linenos">3618</span></a>
-</span><span id="Select-3619"><a href="#Select-3619"><span class="linenos">3619</span></a><span class="sd"> Args:</span>
-</span><span id="Select-3620"><a href="#Select-3620"><span class="linenos">3620</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
-</span><span id="Select-3621"><a href="#Select-3621"><span class="linenos">3621</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select-3622"><a href="#Select-3622"><span class="linenos">3622</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
-</span><span id="Select-3623"><a href="#Select-3623"><span class="linenos">3623</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
-</span><span id="Select-3624"><a href="#Select-3624"><span class="linenos">3624</span></a>
-</span><span id="Select-3625"><a href="#Select-3625"><span class="linenos">3625</span></a><span class="sd"> Returns:</span>
-</span><span id="Select-3626"><a href="#Select-3626"><span class="linenos">3626</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select-3627"><a href="#Select-3627"><span class="linenos">3627</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select-3628"><a href="#Select-3628"><span class="linenos">3628</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select-3629"><a href="#Select-3629"><span class="linenos">3629</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="Select-3630"><a href="#Select-3630"><span class="linenos">3630</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
-</span><span id="Select-3631"><a href="#Select-3631"><span class="linenos">3631</span></a> <span class="p">)</span>
-</span><span id="Select-3632"><a href="#Select-3632"><span class="linenos">3632</span></a>
-</span><span id="Select-3633"><a href="#Select-3633"><span class="linenos">3633</span></a> <span class="k">return</span> <span class="n">inst</span>
-</span><span id="Select-3634"><a href="#Select-3634"><span class="linenos">3634</span></a>
-</span><span id="Select-3635"><a href="#Select-3635"><span class="linenos">3635</span></a> <span class="nd">@property</span>
-</span><span id="Select-3636"><a href="#Select-3636"><span class="linenos">3636</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Select-3637"><a href="#Select-3637"><span class="linenos">3637</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
-</span><span id="Select-3638"><a href="#Select-3638"><span class="linenos">3638</span></a>
-</span><span id="Select-3639"><a href="#Select-3639"><span class="linenos">3639</span></a> <span class="nd">@property</span>
-</span><span id="Select-3640"><a href="#Select-3640"><span class="linenos">3640</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Select-3641"><a href="#Select-3641"><span class="linenos">3641</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
-</span><span id="Select-3642"><a href="#Select-3642"><span class="linenos">3642</span></a>
-</span><span id="Select-3643"><a href="#Select-3643"><span class="linenos">3643</span></a> <span class="nd">@property</span>
-</span><span id="Select-3644"><a href="#Select-3644"><span class="linenos">3644</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Select-3645"><a href="#Select-3645"><span class="linenos">3645</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="Select-3596"><a href="#Select-3596"><span class="linenos">3596</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3597"><a href="#Select-3597"><span class="linenos">3597</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="Select-3598"><a href="#Select-3598"><span class="linenos">3598</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3599"><a href="#Select-3599"><span class="linenos">3599</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select-3600"><a href="#Select-3600"><span class="linenos">3600</span></a> <span class="n">table_expression</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="Select-3601"><a href="#Select-3601"><span class="linenos">3601</span></a>
+</span><span id="Select-3602"><a href="#Select-3602"><span class="linenos">3602</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select-3603"><a href="#Select-3603"><span class="linenos">3603</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select-3604"><a href="#Select-3604"><span class="linenos">3604</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
+</span><span id="Select-3605"><a href="#Select-3605"><span class="linenos">3605</span></a>
+</span><span id="Select-3606"><a href="#Select-3606"><span class="linenos">3606</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select-3607"><a href="#Select-3607"><span class="linenos">3607</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
+</span><span id="Select-3608"><a href="#Select-3608"><span class="linenos">3608</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;TABLE&quot;</span><span class="p">,</span>
+</span><span id="Select-3609"><a href="#Select-3609"><span class="linenos">3609</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Select-3610"><a href="#Select-3610"><span class="linenos">3610</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
+</span><span id="Select-3611"><a href="#Select-3611"><span class="linenos">3611</span></a> <span class="p">)</span>
+</span><span id="Select-3612"><a href="#Select-3612"><span class="linenos">3612</span></a>
+</span><span id="Select-3613"><a href="#Select-3613"><span class="linenos">3613</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3614"><a href="#Select-3614"><span class="linenos">3614</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3615"><a href="#Select-3615"><span class="linenos">3615</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select-3616"><a href="#Select-3616"><span class="linenos">3616</span></a>
+</span><span id="Select-3617"><a href="#Select-3617"><span class="linenos">3617</span></a><span class="sd"> Examples:</span>
+</span><span id="Select-3618"><a href="#Select-3618"><span class="linenos">3618</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
+</span><span id="Select-3619"><a href="#Select-3619"><span class="linenos">3619</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select-3620"><a href="#Select-3620"><span class="linenos">3620</span></a>
+</span><span id="Select-3621"><a href="#Select-3621"><span class="linenos">3621</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
+</span><span id="Select-3622"><a href="#Select-3622"><span class="linenos">3622</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select-3623"><a href="#Select-3623"><span class="linenos">3623</span></a>
+</span><span id="Select-3624"><a href="#Select-3624"><span class="linenos">3624</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3625"><a href="#Select-3625"><span class="linenos">3625</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
+</span><span id="Select-3626"><a href="#Select-3626"><span class="linenos">3626</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3627"><a href="#Select-3627"><span class="linenos">3627</span></a>
+</span><span id="Select-3628"><a href="#Select-3628"><span class="linenos">3628</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3629"><a href="#Select-3629"><span class="linenos">3629</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select-3630"><a href="#Select-3630"><span class="linenos">3630</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3631"><a href="#Select-3631"><span class="linenos">3631</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select-3632"><a href="#Select-3632"><span class="linenos">3632</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
+</span><span id="Select-3633"><a href="#Select-3633"><span class="linenos">3633</span></a>
+</span><span id="Select-3634"><a href="#Select-3634"><span class="linenos">3634</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="Select-3635"><a href="#Select-3635"><span class="linenos">3635</span></a>
+</span><span id="Select-3636"><a href="#Select-3636"><span class="linenos">3636</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select-3637"><a href="#Select-3637"><span class="linenos">3637</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select-3638"><a href="#Select-3638"><span class="linenos">3638</span></a><span class="sd"> Set hints for this expression.</span>
+</span><span id="Select-3639"><a href="#Select-3639"><span class="linenos">3639</span></a>
+</span><span id="Select-3640"><a href="#Select-3640"><span class="linenos">3640</span></a><span class="sd"> Examples:</span>
+</span><span id="Select-3641"><a href="#Select-3641"><span class="linenos">3641</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
+</span><span id="Select-3642"><a href="#Select-3642"><span class="linenos">3642</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
+</span><span id="Select-3643"><a href="#Select-3643"><span class="linenos">3643</span></a>
+</span><span id="Select-3644"><a href="#Select-3644"><span class="linenos">3644</span></a><span class="sd"> Args:</span>
+</span><span id="Select-3645"><a href="#Select-3645"><span class="linenos">3645</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
+</span><span id="Select-3646"><a href="#Select-3646"><span class="linenos">3646</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select-3647"><a href="#Select-3647"><span class="linenos">3647</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
+</span><span id="Select-3648"><a href="#Select-3648"><span class="linenos">3648</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
+</span><span id="Select-3649"><a href="#Select-3649"><span class="linenos">3649</span></a>
+</span><span id="Select-3650"><a href="#Select-3650"><span class="linenos">3650</span></a><span class="sd"> Returns:</span>
+</span><span id="Select-3651"><a href="#Select-3651"><span class="linenos">3651</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select-3652"><a href="#Select-3652"><span class="linenos">3652</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select-3653"><a href="#Select-3653"><span class="linenos">3653</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select-3654"><a href="#Select-3654"><span class="linenos">3654</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="Select-3655"><a href="#Select-3655"><span class="linenos">3655</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
+</span><span id="Select-3656"><a href="#Select-3656"><span class="linenos">3656</span></a> <span class="p">)</span>
+</span><span id="Select-3657"><a href="#Select-3657"><span class="linenos">3657</span></a>
+</span><span id="Select-3658"><a href="#Select-3658"><span class="linenos">3658</span></a> <span class="k">return</span> <span class="n">inst</span>
+</span><span id="Select-3659"><a href="#Select-3659"><span class="linenos">3659</span></a>
+</span><span id="Select-3660"><a href="#Select-3660"><span class="linenos">3660</span></a> <span class="nd">@property</span>
+</span><span id="Select-3661"><a href="#Select-3661"><span class="linenos">3661</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Select-3662"><a href="#Select-3662"><span class="linenos">3662</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
+</span><span id="Select-3663"><a href="#Select-3663"><span class="linenos">3663</span></a>
+</span><span id="Select-3664"><a href="#Select-3664"><span class="linenos">3664</span></a> <span class="nd">@property</span>
+</span><span id="Select-3665"><a href="#Select-3665"><span class="linenos">3665</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Select-3666"><a href="#Select-3666"><span class="linenos">3666</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
+</span><span id="Select-3667"><a href="#Select-3667"><span class="linenos">3667</span></a>
+</span><span id="Select-3668"><a href="#Select-3668"><span class="linenos">3668</span></a> <span class="nd">@property</span>
+</span><span id="Select-3669"><a href="#Select-3669"><span class="linenos">3669</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Select-3670"><a href="#Select-3670"><span class="linenos">3670</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -47964,37 +48445,37 @@ kind is ("AS OF", "BETWEEN")</p>
</div>
<a class="headerlink" href="#Select.from_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-3097"><a href="#Select.from_-3097"><span class="linenos">3097</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
-</span><span id="Select.from_-3098"><a href="#Select.from_-3098"><span class="linenos">3098</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="Select.from_-3099"><a href="#Select.from_-3099"><span class="linenos">3099</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.from_-3100"><a href="#Select.from_-3100"><span class="linenos">3100</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.from_-3101"><a href="#Select.from_-3101"><span class="linenos">3101</span></a><span class="sd"> Set the FROM expression.</span>
-</span><span id="Select.from_-3102"><a href="#Select.from_-3102"><span class="linenos">3102</span></a>
-</span><span id="Select.from_-3103"><a href="#Select.from_-3103"><span class="linenos">3103</span></a><span class="sd"> Example:</span>
-</span><span id="Select.from_-3104"><a href="#Select.from_-3104"><span class="linenos">3104</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
-</span><span id="Select.from_-3105"><a href="#Select.from_-3105"><span class="linenos">3105</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
-</span><span id="Select.from_-3106"><a href="#Select.from_-3106"><span class="linenos">3106</span></a>
-</span><span id="Select.from_-3107"><a href="#Select.from_-3107"><span class="linenos">3107</span></a><span class="sd"> Args:</span>
-</span><span id="Select.from_-3108"><a href="#Select.from_-3108"><span class="linenos">3108</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
-</span><span id="Select.from_-3109"><a href="#Select.from_-3109"><span class="linenos">3109</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
-</span><span id="Select.from_-3110"><a href="#Select.from_-3110"><span class="linenos">3110</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
-</span><span id="Select.from_-3111"><a href="#Select.from_-3111"><span class="linenos">3111</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.from_-3112"><a href="#Select.from_-3112"><span class="linenos">3112</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.from_-3113"><a href="#Select.from_-3113"><span class="linenos">3113</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.from_-3114"><a href="#Select.from_-3114"><span class="linenos">3114</span></a>
-</span><span id="Select.from_-3115"><a href="#Select.from_-3115"><span class="linenos">3115</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.from_-3116"><a href="#Select.from_-3116"><span class="linenos">3116</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.from_-3117"><a href="#Select.from_-3117"><span class="linenos">3117</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.from_-3118"><a href="#Select.from_-3118"><span class="linenos">3118</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
-</span><span id="Select.from_-3119"><a href="#Select.from_-3119"><span class="linenos">3119</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
-</span><span id="Select.from_-3120"><a href="#Select.from_-3120"><span class="linenos">3120</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.from_-3121"><a href="#Select.from_-3121"><span class="linenos">3121</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="Select.from_-3122"><a href="#Select.from_-3122"><span class="linenos">3122</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
-</span><span id="Select.from_-3123"><a href="#Select.from_-3123"><span class="linenos">3123</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
-</span><span id="Select.from_-3124"><a href="#Select.from_-3124"><span class="linenos">3124</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.from_-3125"><a href="#Select.from_-3125"><span class="linenos">3125</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.from_-3126"><a href="#Select.from_-3126"><span class="linenos">3126</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.from_-3127"><a href="#Select.from_-3127"><span class="linenos">3127</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-3122"><a href="#Select.from_-3122"><span class="linenos">3122</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
+</span><span id="Select.from_-3123"><a href="#Select.from_-3123"><span class="linenos">3123</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="Select.from_-3124"><a href="#Select.from_-3124"><span class="linenos">3124</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.from_-3125"><a href="#Select.from_-3125"><span class="linenos">3125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.from_-3126"><a href="#Select.from_-3126"><span class="linenos">3126</span></a><span class="sd"> Set the FROM expression.</span>
+</span><span id="Select.from_-3127"><a href="#Select.from_-3127"><span class="linenos">3127</span></a>
+</span><span id="Select.from_-3128"><a href="#Select.from_-3128"><span class="linenos">3128</span></a><span class="sd"> Example:</span>
+</span><span id="Select.from_-3129"><a href="#Select.from_-3129"><span class="linenos">3129</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
+</span><span id="Select.from_-3130"><a href="#Select.from_-3130"><span class="linenos">3130</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
+</span><span id="Select.from_-3131"><a href="#Select.from_-3131"><span class="linenos">3131</span></a>
+</span><span id="Select.from_-3132"><a href="#Select.from_-3132"><span class="linenos">3132</span></a><span class="sd"> Args:</span>
+</span><span id="Select.from_-3133"><a href="#Select.from_-3133"><span class="linenos">3133</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
+</span><span id="Select.from_-3134"><a href="#Select.from_-3134"><span class="linenos">3134</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
+</span><span id="Select.from_-3135"><a href="#Select.from_-3135"><span class="linenos">3135</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
+</span><span id="Select.from_-3136"><a href="#Select.from_-3136"><span class="linenos">3136</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.from_-3137"><a href="#Select.from_-3137"><span class="linenos">3137</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.from_-3138"><a href="#Select.from_-3138"><span class="linenos">3138</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.from_-3139"><a href="#Select.from_-3139"><span class="linenos">3139</span></a>
+</span><span id="Select.from_-3140"><a href="#Select.from_-3140"><span class="linenos">3140</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.from_-3141"><a href="#Select.from_-3141"><span class="linenos">3141</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.from_-3142"><a href="#Select.from_-3142"><span class="linenos">3142</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.from_-3143"><a href="#Select.from_-3143"><span class="linenos">3143</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
+</span><span id="Select.from_-3144"><a href="#Select.from_-3144"><span class="linenos">3144</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
+</span><span id="Select.from_-3145"><a href="#Select.from_-3145"><span class="linenos">3145</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.from_-3146"><a href="#Select.from_-3146"><span class="linenos">3146</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="Select.from_-3147"><a href="#Select.from_-3147"><span class="linenos">3147</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
+</span><span id="Select.from_-3148"><a href="#Select.from_-3148"><span class="linenos">3148</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
+</span><span id="Select.from_-3149"><a href="#Select.from_-3149"><span class="linenos">3149</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.from_-3150"><a href="#Select.from_-3150"><span class="linenos">3150</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.from_-3151"><a href="#Select.from_-3151"><span class="linenos">3151</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.from_-3152"><a href="#Select.from_-3152"><span class="linenos">3152</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48041,49 +48522,49 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.group_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-3129"><a href="#Select.group_by-3129"><span class="linenos">3129</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
-</span><span id="Select.group_by-3130"><a href="#Select.group_by-3130"><span class="linenos">3130</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.group_by-3131"><a href="#Select.group_by-3131"><span class="linenos">3131</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.group_by-3132"><a href="#Select.group_by-3132"><span class="linenos">3132</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.group_by-3133"><a href="#Select.group_by-3133"><span class="linenos">3133</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="Select.group_by-3134"><a href="#Select.group_by-3134"><span class="linenos">3134</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.group_by-3135"><a href="#Select.group_by-3135"><span class="linenos">3135</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.group_by-3136"><a href="#Select.group_by-3136"><span class="linenos">3136</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.group_by-3137"><a href="#Select.group_by-3137"><span class="linenos">3137</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.group_by-3138"><a href="#Select.group_by-3138"><span class="linenos">3138</span></a><span class="sd"> Set the GROUP BY expression.</span>
-</span><span id="Select.group_by-3139"><a href="#Select.group_by-3139"><span class="linenos">3139</span></a>
-</span><span id="Select.group_by-3140"><a href="#Select.group_by-3140"><span class="linenos">3140</span></a><span class="sd"> Example:</span>
-</span><span id="Select.group_by-3141"><a href="#Select.group_by-3141"><span class="linenos">3141</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
-</span><span id="Select.group_by-3142"><a href="#Select.group_by-3142"><span class="linenos">3142</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
-</span><span id="Select.group_by-3143"><a href="#Select.group_by-3143"><span class="linenos">3143</span></a>
-</span><span id="Select.group_by-3144"><a href="#Select.group_by-3144"><span class="linenos">3144</span></a><span class="sd"> Args:</span>
-</span><span id="Select.group_by-3145"><a href="#Select.group_by-3145"><span class="linenos">3145</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.group_by-3146"><a href="#Select.group_by-3146"><span class="linenos">3146</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.group_by-3147"><a href="#Select.group_by-3147"><span class="linenos">3147</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
-</span><span id="Select.group_by-3148"><a href="#Select.group_by-3148"><span class="linenos">3148</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
-</span><span id="Select.group_by-3149"><a href="#Select.group_by-3149"><span class="linenos">3149</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.group_by-3150"><a href="#Select.group_by-3150"><span class="linenos">3150</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
-</span><span id="Select.group_by-3151"><a href="#Select.group_by-3151"><span class="linenos">3151</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.group_by-3152"><a href="#Select.group_by-3152"><span class="linenos">3152</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.group_by-3153"><a href="#Select.group_by-3153"><span class="linenos">3153</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.group_by-3154"><a href="#Select.group_by-3154"><span class="linenos">3154</span></a>
-</span><span id="Select.group_by-3155"><a href="#Select.group_by-3155"><span class="linenos">3155</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.group_by-3156"><a href="#Select.group_by-3156"><span class="linenos">3156</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.group_by-3157"><a href="#Select.group_by-3157"><span class="linenos">3157</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.group_by-3158"><a href="#Select.group_by-3158"><span class="linenos">3158</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
-</span><span id="Select.group_by-3159"><a href="#Select.group_by-3159"><span class="linenos">3159</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
-</span><span id="Select.group_by-3160"><a href="#Select.group_by-3160"><span class="linenos">3160</span></a>
-</span><span id="Select.group_by-3161"><a href="#Select.group_by-3161"><span class="linenos">3161</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select.group_by-3162"><a href="#Select.group_by-3162"><span class="linenos">3162</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.group_by-3163"><a href="#Select.group_by-3163"><span class="linenos">3163</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.group_by-3164"><a href="#Select.group_by-3164"><span class="linenos">3164</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
-</span><span id="Select.group_by-3165"><a href="#Select.group_by-3165"><span class="linenos">3165</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.group_by-3166"><a href="#Select.group_by-3166"><span class="linenos">3166</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.group_by-3167"><a href="#Select.group_by-3167"><span class="linenos">3167</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
-</span><span id="Select.group_by-3168"><a href="#Select.group_by-3168"><span class="linenos">3168</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
-</span><span id="Select.group_by-3169"><a href="#Select.group_by-3169"><span class="linenos">3169</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.group_by-3170"><a href="#Select.group_by-3170"><span class="linenos">3170</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.group_by-3171"><a href="#Select.group_by-3171"><span class="linenos">3171</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-3154"><a href="#Select.group_by-3154"><span class="linenos">3154</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
+</span><span id="Select.group_by-3155"><a href="#Select.group_by-3155"><span class="linenos">3155</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.group_by-3156"><a href="#Select.group_by-3156"><span class="linenos">3156</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.group_by-3157"><a href="#Select.group_by-3157"><span class="linenos">3157</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.group_by-3158"><a href="#Select.group_by-3158"><span class="linenos">3158</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="Select.group_by-3159"><a href="#Select.group_by-3159"><span class="linenos">3159</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.group_by-3160"><a href="#Select.group_by-3160"><span class="linenos">3160</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-3161"><a href="#Select.group_by-3161"><span class="linenos">3161</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.group_by-3162"><a href="#Select.group_by-3162"><span class="linenos">3162</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.group_by-3163"><a href="#Select.group_by-3163"><span class="linenos">3163</span></a><span class="sd"> Set the GROUP BY expression.</span>
+</span><span id="Select.group_by-3164"><a href="#Select.group_by-3164"><span class="linenos">3164</span></a>
+</span><span id="Select.group_by-3165"><a href="#Select.group_by-3165"><span class="linenos">3165</span></a><span class="sd"> Example:</span>
+</span><span id="Select.group_by-3166"><a href="#Select.group_by-3166"><span class="linenos">3166</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
+</span><span id="Select.group_by-3167"><a href="#Select.group_by-3167"><span class="linenos">3167</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
+</span><span id="Select.group_by-3168"><a href="#Select.group_by-3168"><span class="linenos">3168</span></a>
+</span><span id="Select.group_by-3169"><a href="#Select.group_by-3169"><span class="linenos">3169</span></a><span class="sd"> Args:</span>
+</span><span id="Select.group_by-3170"><a href="#Select.group_by-3170"><span class="linenos">3170</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.group_by-3171"><a href="#Select.group_by-3171"><span class="linenos">3171</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.group_by-3172"><a href="#Select.group_by-3172"><span class="linenos">3172</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
+</span><span id="Select.group_by-3173"><a href="#Select.group_by-3173"><span class="linenos">3173</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
+</span><span id="Select.group_by-3174"><a href="#Select.group_by-3174"><span class="linenos">3174</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.group_by-3175"><a href="#Select.group_by-3175"><span class="linenos">3175</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
+</span><span id="Select.group_by-3176"><a href="#Select.group_by-3176"><span class="linenos">3176</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.group_by-3177"><a href="#Select.group_by-3177"><span class="linenos">3177</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.group_by-3178"><a href="#Select.group_by-3178"><span class="linenos">3178</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.group_by-3179"><a href="#Select.group_by-3179"><span class="linenos">3179</span></a>
+</span><span id="Select.group_by-3180"><a href="#Select.group_by-3180"><span class="linenos">3180</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.group_by-3181"><a href="#Select.group_by-3181"><span class="linenos">3181</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.group_by-3182"><a href="#Select.group_by-3182"><span class="linenos">3182</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.group_by-3183"><a href="#Select.group_by-3183"><span class="linenos">3183</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
+</span><span id="Select.group_by-3184"><a href="#Select.group_by-3184"><span class="linenos">3184</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+</span><span id="Select.group_by-3185"><a href="#Select.group_by-3185"><span class="linenos">3185</span></a>
+</span><span id="Select.group_by-3186"><a href="#Select.group_by-3186"><span class="linenos">3186</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select.group_by-3187"><a href="#Select.group_by-3187"><span class="linenos">3187</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.group_by-3188"><a href="#Select.group_by-3188"><span class="linenos">3188</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.group_by-3189"><a href="#Select.group_by-3189"><span class="linenos">3189</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
+</span><span id="Select.group_by-3190"><a href="#Select.group_by-3190"><span class="linenos">3190</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.group_by-3191"><a href="#Select.group_by-3191"><span class="linenos">3191</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.group_by-3192"><a href="#Select.group_by-3192"><span class="linenos">3192</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
+</span><span id="Select.group_by-3193"><a href="#Select.group_by-3193"><span class="linenos">3193</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
+</span><span id="Select.group_by-3194"><a href="#Select.group_by-3194"><span class="linenos">3194</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.group_by-3195"><a href="#Select.group_by-3195"><span class="linenos">3195</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.group_by-3196"><a href="#Select.group_by-3196"><span class="linenos">3196</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48133,45 +48614,45 @@ Otherwise, this flattens all the <code><a href="#Group">Group</a></code> express
</div>
<a class="headerlink" href="#Select.sort_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-3173"><a href="#Select.sort_by-3173"><span class="linenos">3173</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
-</span><span id="Select.sort_by-3174"><a href="#Select.sort_by-3174"><span class="linenos">3174</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.sort_by-3175"><a href="#Select.sort_by-3175"><span class="linenos">3175</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.sort_by-3176"><a href="#Select.sort_by-3176"><span class="linenos">3176</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.sort_by-3177"><a href="#Select.sort_by-3177"><span class="linenos">3177</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="Select.sort_by-3178"><a href="#Select.sort_by-3178"><span class="linenos">3178</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.sort_by-3179"><a href="#Select.sort_by-3179"><span class="linenos">3179</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.sort_by-3180"><a href="#Select.sort_by-3180"><span class="linenos">3180</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.sort_by-3181"><a href="#Select.sort_by-3181"><span class="linenos">3181</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-3182"><a href="#Select.sort_by-3182"><span class="linenos">3182</span></a><span class="sd"> Set the SORT BY expression.</span>
-</span><span id="Select.sort_by-3183"><a href="#Select.sort_by-3183"><span class="linenos">3183</span></a>
-</span><span id="Select.sort_by-3184"><a href="#Select.sort_by-3184"><span class="linenos">3184</span></a><span class="sd"> Example:</span>
-</span><span id="Select.sort_by-3185"><a href="#Select.sort_by-3185"><span class="linenos">3185</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select.sort_by-3186"><a href="#Select.sort_by-3186"><span class="linenos">3186</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
-</span><span id="Select.sort_by-3187"><a href="#Select.sort_by-3187"><span class="linenos">3187</span></a>
-</span><span id="Select.sort_by-3188"><a href="#Select.sort_by-3188"><span class="linenos">3188</span></a><span class="sd"> Args:</span>
-</span><span id="Select.sort_by-3189"><a href="#Select.sort_by-3189"><span class="linenos">3189</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.sort_by-3190"><a href="#Select.sort_by-3190"><span class="linenos">3190</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.sort_by-3191"><a href="#Select.sort_by-3191"><span class="linenos">3191</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
-</span><span id="Select.sort_by-3192"><a href="#Select.sort_by-3192"><span class="linenos">3192</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.sort_by-3193"><a href="#Select.sort_by-3193"><span class="linenos">3193</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.sort_by-3194"><a href="#Select.sort_by-3194"><span class="linenos">3194</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.sort_by-3195"><a href="#Select.sort_by-3195"><span class="linenos">3195</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.sort_by-3196"><a href="#Select.sort_by-3196"><span class="linenos">3196</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.sort_by-3197"><a href="#Select.sort_by-3197"><span class="linenos">3197</span></a>
-</span><span id="Select.sort_by-3198"><a href="#Select.sort_by-3198"><span class="linenos">3198</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.sort_by-3199"><a href="#Select.sort_by-3199"><span class="linenos">3199</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.sort_by-3200"><a href="#Select.sort_by-3200"><span class="linenos">3200</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.sort_by-3201"><a href="#Select.sort_by-3201"><span class="linenos">3201</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select.sort_by-3202"><a href="#Select.sort_by-3202"><span class="linenos">3202</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.sort_by-3203"><a href="#Select.sort_by-3203"><span class="linenos">3203</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.sort_by-3204"><a href="#Select.sort_by-3204"><span class="linenos">3204</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
-</span><span id="Select.sort_by-3205"><a href="#Select.sort_by-3205"><span class="linenos">3205</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.sort_by-3206"><a href="#Select.sort_by-3206"><span class="linenos">3206</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.sort_by-3207"><a href="#Select.sort_by-3207"><span class="linenos">3207</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
-</span><span id="Select.sort_by-3208"><a href="#Select.sort_by-3208"><span class="linenos">3208</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
-</span><span id="Select.sort_by-3209"><a href="#Select.sort_by-3209"><span class="linenos">3209</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.sort_by-3210"><a href="#Select.sort_by-3210"><span class="linenos">3210</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.sort_by-3211"><a href="#Select.sort_by-3211"><span class="linenos">3211</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-3198"><a href="#Select.sort_by-3198"><span class="linenos">3198</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
+</span><span id="Select.sort_by-3199"><a href="#Select.sort_by-3199"><span class="linenos">3199</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.sort_by-3200"><a href="#Select.sort_by-3200"><span class="linenos">3200</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.sort_by-3201"><a href="#Select.sort_by-3201"><span class="linenos">3201</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.sort_by-3202"><a href="#Select.sort_by-3202"><span class="linenos">3202</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="Select.sort_by-3203"><a href="#Select.sort_by-3203"><span class="linenos">3203</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.sort_by-3204"><a href="#Select.sort_by-3204"><span class="linenos">3204</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-3205"><a href="#Select.sort_by-3205"><span class="linenos">3205</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.sort_by-3206"><a href="#Select.sort_by-3206"><span class="linenos">3206</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-3207"><a href="#Select.sort_by-3207"><span class="linenos">3207</span></a><span class="sd"> Set the SORT BY expression.</span>
+</span><span id="Select.sort_by-3208"><a href="#Select.sort_by-3208"><span class="linenos">3208</span></a>
+</span><span id="Select.sort_by-3209"><a href="#Select.sort_by-3209"><span class="linenos">3209</span></a><span class="sd"> Example:</span>
+</span><span id="Select.sort_by-3210"><a href="#Select.sort_by-3210"><span class="linenos">3210</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select.sort_by-3211"><a href="#Select.sort_by-3211"><span class="linenos">3211</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
+</span><span id="Select.sort_by-3212"><a href="#Select.sort_by-3212"><span class="linenos">3212</span></a>
+</span><span id="Select.sort_by-3213"><a href="#Select.sort_by-3213"><span class="linenos">3213</span></a><span class="sd"> Args:</span>
+</span><span id="Select.sort_by-3214"><a href="#Select.sort_by-3214"><span class="linenos">3214</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.sort_by-3215"><a href="#Select.sort_by-3215"><span class="linenos">3215</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.sort_by-3216"><a href="#Select.sort_by-3216"><span class="linenos">3216</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
+</span><span id="Select.sort_by-3217"><a href="#Select.sort_by-3217"><span class="linenos">3217</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.sort_by-3218"><a href="#Select.sort_by-3218"><span class="linenos">3218</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.sort_by-3219"><a href="#Select.sort_by-3219"><span class="linenos">3219</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.sort_by-3220"><a href="#Select.sort_by-3220"><span class="linenos">3220</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.sort_by-3221"><a href="#Select.sort_by-3221"><span class="linenos">3221</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.sort_by-3222"><a href="#Select.sort_by-3222"><span class="linenos">3222</span></a>
+</span><span id="Select.sort_by-3223"><a href="#Select.sort_by-3223"><span class="linenos">3223</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.sort_by-3224"><a href="#Select.sort_by-3224"><span class="linenos">3224</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.sort_by-3225"><a href="#Select.sort_by-3225"><span class="linenos">3225</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.sort_by-3226"><a href="#Select.sort_by-3226"><span class="linenos">3226</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select.sort_by-3227"><a href="#Select.sort_by-3227"><span class="linenos">3227</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.sort_by-3228"><a href="#Select.sort_by-3228"><span class="linenos">3228</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.sort_by-3229"><a href="#Select.sort_by-3229"><span class="linenos">3229</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
+</span><span id="Select.sort_by-3230"><a href="#Select.sort_by-3230"><span class="linenos">3230</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.sort_by-3231"><a href="#Select.sort_by-3231"><span class="linenos">3231</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.sort_by-3232"><a href="#Select.sort_by-3232"><span class="linenos">3232</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
+</span><span id="Select.sort_by-3233"><a href="#Select.sort_by-3233"><span class="linenos">3233</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
+</span><span id="Select.sort_by-3234"><a href="#Select.sort_by-3234"><span class="linenos">3234</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.sort_by-3235"><a href="#Select.sort_by-3235"><span class="linenos">3235</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.sort_by-3236"><a href="#Select.sort_by-3236"><span class="linenos">3236</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48220,45 +48701,45 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
</div>
<a class="headerlink" href="#Select.cluster_by"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-3213"><a href="#Select.cluster_by-3213"><span class="linenos">3213</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
-</span><span id="Select.cluster_by-3214"><a href="#Select.cluster_by-3214"><span class="linenos">3214</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3215"><a href="#Select.cluster_by-3215"><span class="linenos">3215</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.cluster_by-3216"><a href="#Select.cluster_by-3216"><span class="linenos">3216</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3217"><a href="#Select.cluster_by-3217"><span class="linenos">3217</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="Select.cluster_by-3218"><a href="#Select.cluster_by-3218"><span class="linenos">3218</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3219"><a href="#Select.cluster_by-3219"><span class="linenos">3219</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3220"><a href="#Select.cluster_by-3220"><span class="linenos">3220</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.cluster_by-3221"><a href="#Select.cluster_by-3221"><span class="linenos">3221</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-3222"><a href="#Select.cluster_by-3222"><span class="linenos">3222</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
-</span><span id="Select.cluster_by-3223"><a href="#Select.cluster_by-3223"><span class="linenos">3223</span></a>
-</span><span id="Select.cluster_by-3224"><a href="#Select.cluster_by-3224"><span class="linenos">3224</span></a><span class="sd"> Example:</span>
-</span><span id="Select.cluster_by-3225"><a href="#Select.cluster_by-3225"><span class="linenos">3225</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
-</span><span id="Select.cluster_by-3226"><a href="#Select.cluster_by-3226"><span class="linenos">3226</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
-</span><span id="Select.cluster_by-3227"><a href="#Select.cluster_by-3227"><span class="linenos">3227</span></a>
-</span><span id="Select.cluster_by-3228"><a href="#Select.cluster_by-3228"><span class="linenos">3228</span></a><span class="sd"> Args:</span>
-</span><span id="Select.cluster_by-3229"><a href="#Select.cluster_by-3229"><span class="linenos">3229</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.cluster_by-3230"><a href="#Select.cluster_by-3230"><span class="linenos">3230</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
-</span><span id="Select.cluster_by-3231"><a href="#Select.cluster_by-3231"><span class="linenos">3231</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
-</span><span id="Select.cluster_by-3232"><a href="#Select.cluster_by-3232"><span class="linenos">3232</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.cluster_by-3233"><a href="#Select.cluster_by-3233"><span class="linenos">3233</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
-</span><span id="Select.cluster_by-3234"><a href="#Select.cluster_by-3234"><span class="linenos">3234</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="Select.cluster_by-3235"><a href="#Select.cluster_by-3235"><span class="linenos">3235</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.cluster_by-3236"><a href="#Select.cluster_by-3236"><span class="linenos">3236</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.cluster_by-3237"><a href="#Select.cluster_by-3237"><span class="linenos">3237</span></a>
-</span><span id="Select.cluster_by-3238"><a href="#Select.cluster_by-3238"><span class="linenos">3238</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.cluster_by-3239"><a href="#Select.cluster_by-3239"><span class="linenos">3239</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.cluster_by-3240"><a href="#Select.cluster_by-3240"><span class="linenos">3240</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.cluster_by-3241"><a href="#Select.cluster_by-3241"><span class="linenos">3241</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
-</span><span id="Select.cluster_by-3242"><a href="#Select.cluster_by-3242"><span class="linenos">3242</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3243"><a href="#Select.cluster_by-3243"><span class="linenos">3243</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3244"><a href="#Select.cluster_by-3244"><span class="linenos">3244</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3245"><a href="#Select.cluster_by-3245"><span class="linenos">3245</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3246"><a href="#Select.cluster_by-3246"><span class="linenos">3246</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3247"><a href="#Select.cluster_by-3247"><span class="linenos">3247</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3248"><a href="#Select.cluster_by-3248"><span class="linenos">3248</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3249"><a href="#Select.cluster_by-3249"><span class="linenos">3249</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3250"><a href="#Select.cluster_by-3250"><span class="linenos">3250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.cluster_by-3251"><a href="#Select.cluster_by-3251"><span class="linenos">3251</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-3238"><a href="#Select.cluster_by-3238"><span class="linenos">3238</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
+</span><span id="Select.cluster_by-3239"><a href="#Select.cluster_by-3239"><span class="linenos">3239</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3240"><a href="#Select.cluster_by-3240"><span class="linenos">3240</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.cluster_by-3241"><a href="#Select.cluster_by-3241"><span class="linenos">3241</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3242"><a href="#Select.cluster_by-3242"><span class="linenos">3242</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="Select.cluster_by-3243"><a href="#Select.cluster_by-3243"><span class="linenos">3243</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3244"><a href="#Select.cluster_by-3244"><span class="linenos">3244</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3245"><a href="#Select.cluster_by-3245"><span class="linenos">3245</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.cluster_by-3246"><a href="#Select.cluster_by-3246"><span class="linenos">3246</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-3247"><a href="#Select.cluster_by-3247"><span class="linenos">3247</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
+</span><span id="Select.cluster_by-3248"><a href="#Select.cluster_by-3248"><span class="linenos">3248</span></a>
+</span><span id="Select.cluster_by-3249"><a href="#Select.cluster_by-3249"><span class="linenos">3249</span></a><span class="sd"> Example:</span>
+</span><span id="Select.cluster_by-3250"><a href="#Select.cluster_by-3250"><span class="linenos">3250</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
+</span><span id="Select.cluster_by-3251"><a href="#Select.cluster_by-3251"><span class="linenos">3251</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
+</span><span id="Select.cluster_by-3252"><a href="#Select.cluster_by-3252"><span class="linenos">3252</span></a>
+</span><span id="Select.cluster_by-3253"><a href="#Select.cluster_by-3253"><span class="linenos">3253</span></a><span class="sd"> Args:</span>
+</span><span id="Select.cluster_by-3254"><a href="#Select.cluster_by-3254"><span class="linenos">3254</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.cluster_by-3255"><a href="#Select.cluster_by-3255"><span class="linenos">3255</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
+</span><span id="Select.cluster_by-3256"><a href="#Select.cluster_by-3256"><span class="linenos">3256</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
+</span><span id="Select.cluster_by-3257"><a href="#Select.cluster_by-3257"><span class="linenos">3257</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.cluster_by-3258"><a href="#Select.cluster_by-3258"><span class="linenos">3258</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
+</span><span id="Select.cluster_by-3259"><a href="#Select.cluster_by-3259"><span class="linenos">3259</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="Select.cluster_by-3260"><a href="#Select.cluster_by-3260"><span class="linenos">3260</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.cluster_by-3261"><a href="#Select.cluster_by-3261"><span class="linenos">3261</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.cluster_by-3262"><a href="#Select.cluster_by-3262"><span class="linenos">3262</span></a>
+</span><span id="Select.cluster_by-3263"><a href="#Select.cluster_by-3263"><span class="linenos">3263</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.cluster_by-3264"><a href="#Select.cluster_by-3264"><span class="linenos">3264</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.cluster_by-3265"><a href="#Select.cluster_by-3265"><span class="linenos">3265</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.cluster_by-3266"><a href="#Select.cluster_by-3266"><span class="linenos">3266</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
+</span><span id="Select.cluster_by-3267"><a href="#Select.cluster_by-3267"><span class="linenos">3267</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3268"><a href="#Select.cluster_by-3268"><span class="linenos">3268</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3269"><a href="#Select.cluster_by-3269"><span class="linenos">3269</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3270"><a href="#Select.cluster_by-3270"><span class="linenos">3270</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3271"><a href="#Select.cluster_by-3271"><span class="linenos">3271</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3272"><a href="#Select.cluster_by-3272"><span class="linenos">3272</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3273"><a href="#Select.cluster_by-3273"><span class="linenos">3273</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3274"><a href="#Select.cluster_by-3274"><span class="linenos">3274</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3275"><a href="#Select.cluster_by-3275"><span class="linenos">3275</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.cluster_by-3276"><a href="#Select.cluster_by-3276"><span class="linenos">3276</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48307,24 +48788,24 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express
</div>
<a class="headerlink" href="#Select.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-3253"><a href="#Select.select-3253"><span class="linenos">3253</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Select.select-3254"><a href="#Select.select-3254"><span class="linenos">3254</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.select-3255"><a href="#Select.select-3255"><span class="linenos">3255</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.select-3256"><a href="#Select.select-3256"><span class="linenos">3256</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.select-3257"><a href="#Select.select-3257"><span class="linenos">3257</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="Select.select-3258"><a href="#Select.select-3258"><span class="linenos">3258</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.select-3259"><a href="#Select.select-3259"><span class="linenos">3259</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-3260"><a href="#Select.select-3260"><span class="linenos">3260</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.select-3261"><a href="#Select.select-3261"><span class="linenos">3261</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.select-3262"><a href="#Select.select-3262"><span class="linenos">3262</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.select-3263"><a href="#Select.select-3263"><span class="linenos">3263</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.select-3264"><a href="#Select.select-3264"><span class="linenos">3264</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="Select.select-3265"><a href="#Select.select-3265"><span class="linenos">3265</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.select-3266"><a href="#Select.select-3266"><span class="linenos">3266</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.select-3267"><a href="#Select.select-3267"><span class="linenos">3267</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Expression</span><span class="p">,</span>
-</span><span id="Select.select-3268"><a href="#Select.select-3268"><span class="linenos">3268</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.select-3269"><a href="#Select.select-3269"><span class="linenos">3269</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.select-3270"><a href="#Select.select-3270"><span class="linenos">3270</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-3278"><a href="#Select.select-3278"><span class="linenos">3278</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Select.select-3279"><a href="#Select.select-3279"><span class="linenos">3279</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.select-3280"><a href="#Select.select-3280"><span class="linenos">3280</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.select-3281"><a href="#Select.select-3281"><span class="linenos">3281</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.select-3282"><a href="#Select.select-3282"><span class="linenos">3282</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="Select.select-3283"><a href="#Select.select-3283"><span class="linenos">3283</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.select-3284"><a href="#Select.select-3284"><span class="linenos">3284</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-3285"><a href="#Select.select-3285"><span class="linenos">3285</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.select-3286"><a href="#Select.select-3286"><span class="linenos">3286</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.select-3287"><a href="#Select.select-3287"><span class="linenos">3287</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.select-3288"><a href="#Select.select-3288"><span class="linenos">3288</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.select-3289"><a href="#Select.select-3289"><span class="linenos">3289</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="Select.select-3290"><a href="#Select.select-3290"><span class="linenos">3290</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.select-3291"><a href="#Select.select-3291"><span class="linenos">3291</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.select-3292"><a href="#Select.select-3292"><span class="linenos">3292</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Expression</span><span class="p">,</span>
+</span><span id="Select.select-3293"><a href="#Select.select-3293"><span class="linenos">3293</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.select-3294"><a href="#Select.select-3294"><span class="linenos">3294</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.select-3295"><a href="#Select.select-3295"><span class="linenos">3295</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48372,44 +48853,44 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.lateral"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-3272"><a href="#Select.lateral-3272"><span class="linenos">3272</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
-</span><span id="Select.lateral-3273"><a href="#Select.lateral-3273"><span class="linenos">3273</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.lateral-3274"><a href="#Select.lateral-3274"><span class="linenos">3274</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.lateral-3275"><a href="#Select.lateral-3275"><span class="linenos">3275</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.lateral-3276"><a href="#Select.lateral-3276"><span class="linenos">3276</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="Select.lateral-3277"><a href="#Select.lateral-3277"><span class="linenos">3277</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.lateral-3278"><a href="#Select.lateral-3278"><span class="linenos">3278</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.lateral-3279"><a href="#Select.lateral-3279"><span class="linenos">3279</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.lateral-3280"><a href="#Select.lateral-3280"><span class="linenos">3280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lateral-3281"><a href="#Select.lateral-3281"><span class="linenos">3281</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
-</span><span id="Select.lateral-3282"><a href="#Select.lateral-3282"><span class="linenos">3282</span></a>
-</span><span id="Select.lateral-3283"><a href="#Select.lateral-3283"><span class="linenos">3283</span></a><span class="sd"> Example:</span>
-</span><span id="Select.lateral-3284"><a href="#Select.lateral-3284"><span class="linenos">3284</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
-</span><span id="Select.lateral-3285"><a href="#Select.lateral-3285"><span class="linenos">3285</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
-</span><span id="Select.lateral-3286"><a href="#Select.lateral-3286"><span class="linenos">3286</span></a>
-</span><span id="Select.lateral-3287"><a href="#Select.lateral-3287"><span class="linenos">3287</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lateral-3288"><a href="#Select.lateral-3288"><span class="linenos">3288</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.lateral-3289"><a href="#Select.lateral-3289"><span class="linenos">3289</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.lateral-3290"><a href="#Select.lateral-3290"><span class="linenos">3290</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.lateral-3291"><a href="#Select.lateral-3291"><span class="linenos">3291</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.lateral-3292"><a href="#Select.lateral-3292"><span class="linenos">3292</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.lateral-3293"><a href="#Select.lateral-3293"><span class="linenos">3293</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lateral-3294"><a href="#Select.lateral-3294"><span class="linenos">3294</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.lateral-3295"><a href="#Select.lateral-3295"><span class="linenos">3295</span></a>
-</span><span id="Select.lateral-3296"><a href="#Select.lateral-3296"><span class="linenos">3296</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lateral-3297"><a href="#Select.lateral-3297"><span class="linenos">3297</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.lateral-3298"><a href="#Select.lateral-3298"><span class="linenos">3298</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lateral-3299"><a href="#Select.lateral-3299"><span class="linenos">3299</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.lateral-3300"><a href="#Select.lateral-3300"><span class="linenos">3300</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.lateral-3301"><a href="#Select.lateral-3301"><span class="linenos">3301</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.lateral-3302"><a href="#Select.lateral-3302"><span class="linenos">3302</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
-</span><span id="Select.lateral-3303"><a href="#Select.lateral-3303"><span class="linenos">3303</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.lateral-3304"><a href="#Select.lateral-3304"><span class="linenos">3304</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
-</span><span id="Select.lateral-3305"><a href="#Select.lateral-3305"><span class="linenos">3305</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
-</span><span id="Select.lateral-3306"><a href="#Select.lateral-3306"><span class="linenos">3306</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.lateral-3307"><a href="#Select.lateral-3307"><span class="linenos">3307</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.lateral-3308"><a href="#Select.lateral-3308"><span class="linenos">3308</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.lateral-3309"><a href="#Select.lateral-3309"><span class="linenos">3309</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-3297"><a href="#Select.lateral-3297"><span class="linenos">3297</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
+</span><span id="Select.lateral-3298"><a href="#Select.lateral-3298"><span class="linenos">3298</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.lateral-3299"><a href="#Select.lateral-3299"><span class="linenos">3299</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.lateral-3300"><a href="#Select.lateral-3300"><span class="linenos">3300</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.lateral-3301"><a href="#Select.lateral-3301"><span class="linenos">3301</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="Select.lateral-3302"><a href="#Select.lateral-3302"><span class="linenos">3302</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.lateral-3303"><a href="#Select.lateral-3303"><span class="linenos">3303</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-3304"><a href="#Select.lateral-3304"><span class="linenos">3304</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.lateral-3305"><a href="#Select.lateral-3305"><span class="linenos">3305</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lateral-3306"><a href="#Select.lateral-3306"><span class="linenos">3306</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
+</span><span id="Select.lateral-3307"><a href="#Select.lateral-3307"><span class="linenos">3307</span></a>
+</span><span id="Select.lateral-3308"><a href="#Select.lateral-3308"><span class="linenos">3308</span></a><span class="sd"> Example:</span>
+</span><span id="Select.lateral-3309"><a href="#Select.lateral-3309"><span class="linenos">3309</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
+</span><span id="Select.lateral-3310"><a href="#Select.lateral-3310"><span class="linenos">3310</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
+</span><span id="Select.lateral-3311"><a href="#Select.lateral-3311"><span class="linenos">3311</span></a>
+</span><span id="Select.lateral-3312"><a href="#Select.lateral-3312"><span class="linenos">3312</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lateral-3313"><a href="#Select.lateral-3313"><span class="linenos">3313</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.lateral-3314"><a href="#Select.lateral-3314"><span class="linenos">3314</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.lateral-3315"><a href="#Select.lateral-3315"><span class="linenos">3315</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.lateral-3316"><a href="#Select.lateral-3316"><span class="linenos">3316</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.lateral-3317"><a href="#Select.lateral-3317"><span class="linenos">3317</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.lateral-3318"><a href="#Select.lateral-3318"><span class="linenos">3318</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lateral-3319"><a href="#Select.lateral-3319"><span class="linenos">3319</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.lateral-3320"><a href="#Select.lateral-3320"><span class="linenos">3320</span></a>
+</span><span id="Select.lateral-3321"><a href="#Select.lateral-3321"><span class="linenos">3321</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lateral-3322"><a href="#Select.lateral-3322"><span class="linenos">3322</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.lateral-3323"><a href="#Select.lateral-3323"><span class="linenos">3323</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lateral-3324"><a href="#Select.lateral-3324"><span class="linenos">3324</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.lateral-3325"><a href="#Select.lateral-3325"><span class="linenos">3325</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.lateral-3326"><a href="#Select.lateral-3326"><span class="linenos">3326</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.lateral-3327"><a href="#Select.lateral-3327"><span class="linenos">3327</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
+</span><span id="Select.lateral-3328"><a href="#Select.lateral-3328"><span class="linenos">3328</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.lateral-3329"><a href="#Select.lateral-3329"><span class="linenos">3329</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
+</span><span id="Select.lateral-3330"><a href="#Select.lateral-3330"><span class="linenos">3330</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
+</span><span id="Select.lateral-3331"><a href="#Select.lateral-3331"><span class="linenos">3331</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.lateral-3332"><a href="#Select.lateral-3332"><span class="linenos">3332</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.lateral-3333"><a href="#Select.lateral-3333"><span class="linenos">3333</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.lateral-3334"><a href="#Select.lateral-3334"><span class="linenos">3334</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48457,103 +48938,103 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.join"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-3311"><a href="#Select.join-3311"><span class="linenos">3311</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
-</span><span id="Select.join-3312"><a href="#Select.join-3312"><span class="linenos">3312</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.join-3313"><a href="#Select.join-3313"><span class="linenos">3313</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select.join-3314"><a href="#Select.join-3314"><span class="linenos">3314</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3315"><a href="#Select.join-3315"><span class="linenos">3315</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3316"><a href="#Select.join-3316"><span class="linenos">3316</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-3317"><a href="#Select.join-3317"><span class="linenos">3317</span></a> <span class="n">join_type</span><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="Select.join-3318"><a href="#Select.join-3318"><span class="linenos">3318</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.join-3319"><a href="#Select.join-3319"><span class="linenos">3319</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="Select.join-3320"><a href="#Select.join-3320"><span class="linenos">3320</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.join-3321"><a href="#Select.join-3321"><span class="linenos">3321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-3322"><a href="#Select.join-3322"><span class="linenos">3322</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.join-3323"><a href="#Select.join-3323"><span class="linenos">3323</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.join-3324"><a href="#Select.join-3324"><span class="linenos">3324</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
-</span><span id="Select.join-3325"><a href="#Select.join-3325"><span class="linenos">3325</span></a>
-</span><span id="Select.join-3326"><a href="#Select.join-3326"><span class="linenos">3326</span></a><span class="sd"> Example:</span>
-</span><span id="Select.join-3327"><a href="#Select.join-3327"><span class="linenos">3327</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
-</span><span id="Select.join-3328"><a href="#Select.join-3328"><span class="linenos">3328</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select.join-3329"><a href="#Select.join-3329"><span class="linenos">3329</span></a>
-</span><span id="Select.join-3330"><a href="#Select.join-3330"><span class="linenos">3330</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
-</span><span id="Select.join-3331"><a href="#Select.join-3331"><span class="linenos">3331</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
-</span><span id="Select.join-3332"><a href="#Select.join-3332"><span class="linenos">3332</span></a>
-</span><span id="Select.join-3333"><a href="#Select.join-3333"><span class="linenos">3333</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
-</span><span id="Select.join-3334"><a href="#Select.join-3334"><span class="linenos">3334</span></a>
-</span><span id="Select.join-3335"><a href="#Select.join-3335"><span class="linenos">3335</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
-</span><span id="Select.join-3336"><a href="#Select.join-3336"><span class="linenos">3336</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
-</span><span id="Select.join-3337"><a href="#Select.join-3337"><span class="linenos">3337</span></a>
-</span><span id="Select.join-3338"><a href="#Select.join-3338"><span class="linenos">3338</span></a><span class="sd"> Args:</span>
-</span><span id="Select.join-3339"><a href="#Select.join-3339"><span class="linenos">3339</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="Select.join-3340"><a href="#Select.join-3340"><span class="linenos">3340</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-3341"><a href="#Select.join-3341"><span class="linenos">3341</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-3342"><a href="#Select.join-3342"><span class="linenos">3342</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-3343"><a href="#Select.join-3343"><span class="linenos">3343</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
-</span><span id="Select.join-3344"><a href="#Select.join-3344"><span class="linenos">3344</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.join-3345"><a href="#Select.join-3345"><span class="linenos">3345</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
-</span><span id="Select.join-3346"><a href="#Select.join-3346"><span class="linenos">3346</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
-</span><span id="Select.join-3347"><a href="#Select.join-3347"><span class="linenos">3347</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
-</span><span id="Select.join-3348"><a href="#Select.join-3348"><span class="linenos">3348</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
-</span><span id="Select.join-3349"><a href="#Select.join-3349"><span class="linenos">3349</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.join-3350"><a href="#Select.join-3350"><span class="linenos">3350</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.join-3351"><a href="#Select.join-3351"><span class="linenos">3351</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.join-3352"><a href="#Select.join-3352"><span class="linenos">3352</span></a>
-</span><span id="Select.join-3353"><a href="#Select.join-3353"><span class="linenos">3353</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.join-3354"><a href="#Select.join-3354"><span class="linenos">3354</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.join-3355"><a href="#Select.join-3355"><span class="linenos">3355</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.join-3356"><a href="#Select.join-3356"><span class="linenos">3356</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</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="Select.join-3336"><a href="#Select.join-3336"><span class="linenos">3336</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
+</span><span id="Select.join-3337"><a href="#Select.join-3337"><span class="linenos">3337</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.join-3338"><a href="#Select.join-3338"><span class="linenos">3338</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select.join-3339"><a href="#Select.join-3339"><span class="linenos">3339</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3340"><a href="#Select.join-3340"><span class="linenos">3340</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3341"><a href="#Select.join-3341"><span class="linenos">3341</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.join-3342"><a href="#Select.join-3342"><span class="linenos">3342</span></a> <span class="n">join_type</span><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="Select.join-3343"><a href="#Select.join-3343"><span class="linenos">3343</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.join-3344"><a href="#Select.join-3344"><span class="linenos">3344</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="Select.join-3345"><a href="#Select.join-3345"><span class="linenos">3345</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.join-3346"><a href="#Select.join-3346"><span class="linenos">3346</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-3347"><a href="#Select.join-3347"><span class="linenos">3347</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.join-3348"><a href="#Select.join-3348"><span class="linenos">3348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.join-3349"><a href="#Select.join-3349"><span class="linenos">3349</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
+</span><span id="Select.join-3350"><a href="#Select.join-3350"><span class="linenos">3350</span></a>
+</span><span id="Select.join-3351"><a href="#Select.join-3351"><span class="linenos">3351</span></a><span class="sd"> Example:</span>
+</span><span id="Select.join-3352"><a href="#Select.join-3352"><span class="linenos">3352</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
+</span><span id="Select.join-3353"><a href="#Select.join-3353"><span class="linenos">3353</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
+</span><span id="Select.join-3354"><a href="#Select.join-3354"><span class="linenos">3354</span></a>
+</span><span id="Select.join-3355"><a href="#Select.join-3355"><span class="linenos">3355</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
+</span><span id="Select.join-3356"><a href="#Select.join-3356"><span class="linenos">3356</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</span><span id="Select.join-3357"><a href="#Select.join-3357"><span class="linenos">3357</span></a>
-</span><span id="Select.join-3358"><a href="#Select.join-3358"><span class="linenos">3358</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="Select.join-3359"><a href="#Select.join-3359"><span class="linenos">3359</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">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
-</span><span id="Select.join-3360"><a href="#Select.join-3360"><span class="linenos">3360</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="Select.join-3361"><a href="#Select.join-3361"><span class="linenos">3361</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">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="Select.join-3358"><a href="#Select.join-3358"><span class="linenos">3358</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
+</span><span id="Select.join-3359"><a href="#Select.join-3359"><span class="linenos">3359</span></a>
+</span><span id="Select.join-3360"><a href="#Select.join-3360"><span class="linenos">3360</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
+</span><span id="Select.join-3361"><a href="#Select.join-3361"><span class="linenos">3361</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="Select.join-3362"><a href="#Select.join-3362"><span class="linenos">3362</span></a>
-</span><span id="Select.join-3363"><a href="#Select.join-3363"><span class="linenos">3363</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</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="Select.join-3364"><a href="#Select.join-3364"><span class="linenos">3364</span></a>
-</span><span id="Select.join-3365"><a href="#Select.join-3365"><span class="linenos">3365</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
-</span><span id="Select.join-3366"><a href="#Select.join-3366"><span class="linenos">3366</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
-</span><span id="Select.join-3367"><a href="#Select.join-3367"><span class="linenos">3367</span></a>
-</span><span id="Select.join-3368"><a href="#Select.join-3368"><span class="linenos">3368</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
-</span><span id="Select.join-3369"><a href="#Select.join-3369"><span class="linenos">3369</span></a> <span class="n">method</span><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">Token</span><span class="p">]</span>
-</span><span id="Select.join-3370"><a href="#Select.join-3370"><span class="linenos">3370</span></a> <span class="n">side</span><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">Token</span><span class="p">]</span>
-</span><span id="Select.join-3371"><a href="#Select.join-3371"><span class="linenos">3371</span></a> <span class="n">kind</span><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">Token</span><span class="p">]</span>
-</span><span id="Select.join-3372"><a href="#Select.join-3372"><span class="linenos">3372</span></a>
-</span><span id="Select.join-3373"><a href="#Select.join-3373"><span class="linenos">3373</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
-</span><span id="Select.join-3374"><a href="#Select.join-3374"><span class="linenos">3374</span></a>
-</span><span id="Select.join-3375"><a href="#Select.join-3375"><span class="linenos">3375</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
-</span><span id="Select.join-3376"><a href="#Select.join-3376"><span class="linenos">3376</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select.join-3377"><a href="#Select.join-3377"><span class="linenos">3377</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
-</span><span id="Select.join-3378"><a href="#Select.join-3378"><span class="linenos">3378</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select.join-3379"><a href="#Select.join-3379"><span class="linenos">3379</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
-</span><span id="Select.join-3380"><a href="#Select.join-3380"><span class="linenos">3380</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
-</span><span id="Select.join-3381"><a href="#Select.join-3381"><span class="linenos">3381</span></a>
-</span><span id="Select.join-3382"><a href="#Select.join-3382"><span class="linenos">3382</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
-</span><span id="Select.join-3383"><a href="#Select.join-3383"><span class="linenos">3383</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Select.join-3384"><a href="#Select.join-3384"><span class="linenos">3384</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
-</span><span id="Select.join-3385"><a href="#Select.join-3385"><span class="linenos">3385</span></a>
-</span><span id="Select.join-3386"><a href="#Select.join-3386"><span class="linenos">3386</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
-</span><span id="Select.join-3387"><a href="#Select.join-3387"><span class="linenos">3387</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.join-3388"><a href="#Select.join-3388"><span class="linenos">3388</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
-</span><span id="Select.join-3389"><a href="#Select.join-3389"><span class="linenos">3389</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
-</span><span id="Select.join-3390"><a href="#Select.join-3390"><span class="linenos">3390</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
-</span><span id="Select.join-3391"><a href="#Select.join-3391"><span class="linenos">3391</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.join-3392"><a href="#Select.join-3392"><span class="linenos">3392</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.join-3393"><a href="#Select.join-3393"><span class="linenos">3393</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
-</span><span id="Select.join-3394"><a href="#Select.join-3394"><span class="linenos">3394</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-3395"><a href="#Select.join-3395"><span class="linenos">3395</span></a> <span class="p">)</span>
-</span><span id="Select.join-3396"><a href="#Select.join-3396"><span class="linenos">3396</span></a>
-</span><span id="Select.join-3397"><a href="#Select.join-3397"><span class="linenos">3397</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
-</span><span id="Select.join-3398"><a href="#Select.join-3398"><span class="linenos">3398</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
+</span><span id="Select.join-3363"><a href="#Select.join-3363"><span class="linenos">3363</span></a><span class="sd"> Args:</span>
+</span><span id="Select.join-3364"><a href="#Select.join-3364"><span class="linenos">3364</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="Select.join-3365"><a href="#Select.join-3365"><span class="linenos">3365</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-3366"><a href="#Select.join-3366"><span class="linenos">3366</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-3367"><a href="#Select.join-3367"><span class="linenos">3367</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-3368"><a href="#Select.join-3368"><span class="linenos">3368</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
+</span><span id="Select.join-3369"><a href="#Select.join-3369"><span class="linenos">3369</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.join-3370"><a href="#Select.join-3370"><span class="linenos">3370</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
+</span><span id="Select.join-3371"><a href="#Select.join-3371"><span class="linenos">3371</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
+</span><span id="Select.join-3372"><a href="#Select.join-3372"><span class="linenos">3372</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
+</span><span id="Select.join-3373"><a href="#Select.join-3373"><span class="linenos">3373</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
+</span><span id="Select.join-3374"><a href="#Select.join-3374"><span class="linenos">3374</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.join-3375"><a href="#Select.join-3375"><span class="linenos">3375</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.join-3376"><a href="#Select.join-3376"><span class="linenos">3376</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.join-3377"><a href="#Select.join-3377"><span class="linenos">3377</span></a>
+</span><span id="Select.join-3378"><a href="#Select.join-3378"><span class="linenos">3378</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.join-3379"><a href="#Select.join-3379"><span class="linenos">3379</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.join-3380"><a href="#Select.join-3380"><span class="linenos">3380</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.join-3381"><a href="#Select.join-3381"><span class="linenos">3381</span></a> <span class="n">parse_args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</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="Select.join-3382"><a href="#Select.join-3382"><span class="linenos">3382</span></a>
+</span><span id="Select.join-3383"><a href="#Select.join-3383"><span class="linenos">3383</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="Select.join-3384"><a href="#Select.join-3384"><span class="linenos">3384</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">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="Select.join-3385"><a href="#Select.join-3385"><span class="linenos">3385</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="Select.join-3386"><a href="#Select.join-3386"><span class="linenos">3386</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">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span>
+</span><span id="Select.join-3387"><a href="#Select.join-3387"><span class="linenos">3387</span></a>
+</span><span id="Select.join-3388"><a href="#Select.join-3388"><span class="linenos">3388</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</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="Select.join-3389"><a href="#Select.join-3389"><span class="linenos">3389</span></a>
+</span><span id="Select.join-3390"><a href="#Select.join-3390"><span class="linenos">3390</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
+</span><span id="Select.join-3391"><a href="#Select.join-3391"><span class="linenos">3391</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
+</span><span id="Select.join-3392"><a href="#Select.join-3392"><span class="linenos">3392</span></a>
+</span><span id="Select.join-3393"><a href="#Select.join-3393"><span class="linenos">3393</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
+</span><span id="Select.join-3394"><a href="#Select.join-3394"><span class="linenos">3394</span></a> <span class="n">method</span><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">Token</span><span class="p">]</span>
+</span><span id="Select.join-3395"><a href="#Select.join-3395"><span class="linenos">3395</span></a> <span class="n">side</span><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">Token</span><span class="p">]</span>
+</span><span id="Select.join-3396"><a href="#Select.join-3396"><span class="linenos">3396</span></a> <span class="n">kind</span><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">Token</span><span class="p">]</span>
+</span><span id="Select.join-3397"><a href="#Select.join-3397"><span class="linenos">3397</span></a>
+</span><span id="Select.join-3398"><a href="#Select.join-3398"><span class="linenos">3398</span></a> <span class="n">method</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select.join-3399"><a href="#Select.join-3399"><span class="linenos">3399</span></a>
-</span><span id="Select.join-3400"><a href="#Select.join-3400"><span class="linenos">3400</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.join-3401"><a href="#Select.join-3401"><span class="linenos">3401</span></a> <span class="n">join</span><span class="p">,</span>
-</span><span id="Select.join-3402"><a href="#Select.join-3402"><span class="linenos">3402</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.join-3403"><a href="#Select.join-3403"><span class="linenos">3403</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
-</span><span id="Select.join-3404"><a href="#Select.join-3404"><span class="linenos">3404</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.join-3405"><a href="#Select.join-3405"><span class="linenos">3405</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.join-3406"><a href="#Select.join-3406"><span class="linenos">3406</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.join-3407"><a href="#Select.join-3407"><span class="linenos">3407</span></a> <span class="p">)</span>
+</span><span id="Select.join-3400"><a href="#Select.join-3400"><span class="linenos">3400</span></a> <span class="k">if</span> <span class="n">method</span><span class="p">:</span>
+</span><span id="Select.join-3401"><a href="#Select.join-3401"><span class="linenos">3401</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;method&quot;</span><span class="p">,</span> <span class="n">method</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select.join-3402"><a href="#Select.join-3402"><span class="linenos">3402</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
+</span><span id="Select.join-3403"><a href="#Select.join-3403"><span class="linenos">3403</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select.join-3404"><a href="#Select.join-3404"><span class="linenos">3404</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
+</span><span id="Select.join-3405"><a href="#Select.join-3405"><span class="linenos">3405</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
+</span><span id="Select.join-3406"><a href="#Select.join-3406"><span class="linenos">3406</span></a>
+</span><span id="Select.join-3407"><a href="#Select.join-3407"><span class="linenos">3407</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
+</span><span id="Select.join-3408"><a href="#Select.join-3408"><span class="linenos">3408</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Select.join-3409"><a href="#Select.join-3409"><span class="linenos">3409</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
+</span><span id="Select.join-3410"><a href="#Select.join-3410"><span class="linenos">3410</span></a>
+</span><span id="Select.join-3411"><a href="#Select.join-3411"><span class="linenos">3411</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
+</span><span id="Select.join-3412"><a href="#Select.join-3412"><span class="linenos">3412</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.join-3413"><a href="#Select.join-3413"><span class="linenos">3413</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
+</span><span id="Select.join-3414"><a href="#Select.join-3414"><span class="linenos">3414</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
+</span><span id="Select.join-3415"><a href="#Select.join-3415"><span class="linenos">3415</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
+</span><span id="Select.join-3416"><a href="#Select.join-3416"><span class="linenos">3416</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.join-3417"><a href="#Select.join-3417"><span class="linenos">3417</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.join-3418"><a href="#Select.join-3418"><span class="linenos">3418</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
+</span><span id="Select.join-3419"><a href="#Select.join-3419"><span class="linenos">3419</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-3420"><a href="#Select.join-3420"><span class="linenos">3420</span></a> <span class="p">)</span>
+</span><span id="Select.join-3421"><a href="#Select.join-3421"><span class="linenos">3421</span></a>
+</span><span id="Select.join-3422"><a href="#Select.join-3422"><span class="linenos">3422</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
+</span><span id="Select.join-3423"><a href="#Select.join-3423"><span class="linenos">3423</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
+</span><span id="Select.join-3424"><a href="#Select.join-3424"><span class="linenos">3424</span></a>
+</span><span id="Select.join-3425"><a href="#Select.join-3425"><span class="linenos">3425</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.join-3426"><a href="#Select.join-3426"><span class="linenos">3426</span></a> <span class="n">join</span><span class="p">,</span>
+</span><span id="Select.join-3427"><a href="#Select.join-3427"><span class="linenos">3427</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.join-3428"><a href="#Select.join-3428"><span class="linenos">3428</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
+</span><span id="Select.join-3429"><a href="#Select.join-3429"><span class="linenos">3429</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.join-3430"><a href="#Select.join-3430"><span class="linenos">3430</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.join-3431"><a href="#Select.join-3431"><span class="linenos">3431</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.join-3432"><a href="#Select.join-3432"><span class="linenos">3432</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48621,44 +49102,44 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Select.where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-3409"><a href="#Select.where-3409"><span class="linenos">3409</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
-</span><span id="Select.where-3410"><a href="#Select.where-3410"><span class="linenos">3410</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.where-3411"><a href="#Select.where-3411"><span class="linenos">3411</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.where-3412"><a href="#Select.where-3412"><span class="linenos">3412</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.where-3413"><a href="#Select.where-3413"><span class="linenos">3413</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="Select.where-3414"><a href="#Select.where-3414"><span class="linenos">3414</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.where-3415"><a href="#Select.where-3415"><span class="linenos">3415</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.where-3416"><a href="#Select.where-3416"><span class="linenos">3416</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.where-3417"><a href="#Select.where-3417"><span class="linenos">3417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.where-3418"><a href="#Select.where-3418"><span class="linenos">3418</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
-</span><span id="Select.where-3419"><a href="#Select.where-3419"><span class="linenos">3419</span></a>
-</span><span id="Select.where-3420"><a href="#Select.where-3420"><span class="linenos">3420</span></a><span class="sd"> Example:</span>
-</span><span id="Select.where-3421"><a href="#Select.where-3421"><span class="linenos">3421</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
-</span><span id="Select.where-3422"><a href="#Select.where-3422"><span class="linenos">3422</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
-</span><span id="Select.where-3423"><a href="#Select.where-3423"><span class="linenos">3423</span></a>
-</span><span id="Select.where-3424"><a href="#Select.where-3424"><span class="linenos">3424</span></a><span class="sd"> Args:</span>
-</span><span id="Select.where-3425"><a href="#Select.where-3425"><span class="linenos">3425</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.where-3426"><a href="#Select.where-3426"><span class="linenos">3426</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.where-3427"><a href="#Select.where-3427"><span class="linenos">3427</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.where-3428"><a href="#Select.where-3428"><span class="linenos">3428</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.where-3429"><a href="#Select.where-3429"><span class="linenos">3429</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.where-3430"><a href="#Select.where-3430"><span class="linenos">3430</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.where-3431"><a href="#Select.where-3431"><span class="linenos">3431</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.where-3432"><a href="#Select.where-3432"><span class="linenos">3432</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.where-3433"><a href="#Select.where-3433"><span class="linenos">3433</span></a>
-</span><span id="Select.where-3434"><a href="#Select.where-3434"><span class="linenos">3434</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.where-3435"><a href="#Select.where-3435"><span class="linenos">3435</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.where-3436"><a href="#Select.where-3436"><span class="linenos">3436</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.where-3437"><a href="#Select.where-3437"><span class="linenos">3437</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.where-3438"><a href="#Select.where-3438"><span class="linenos">3438</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.where-3439"><a href="#Select.where-3439"><span class="linenos">3439</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.where-3440"><a href="#Select.where-3440"><span class="linenos">3440</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="Select.where-3441"><a href="#Select.where-3441"><span class="linenos">3441</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.where-3442"><a href="#Select.where-3442"><span class="linenos">3442</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
-</span><span id="Select.where-3443"><a href="#Select.where-3443"><span class="linenos">3443</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.where-3444"><a href="#Select.where-3444"><span class="linenos">3444</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.where-3445"><a href="#Select.where-3445"><span class="linenos">3445</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.where-3446"><a href="#Select.where-3446"><span class="linenos">3446</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-3434"><a href="#Select.where-3434"><span class="linenos">3434</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
+</span><span id="Select.where-3435"><a href="#Select.where-3435"><span class="linenos">3435</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.where-3436"><a href="#Select.where-3436"><span class="linenos">3436</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.where-3437"><a href="#Select.where-3437"><span class="linenos">3437</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.where-3438"><a href="#Select.where-3438"><span class="linenos">3438</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="Select.where-3439"><a href="#Select.where-3439"><span class="linenos">3439</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.where-3440"><a href="#Select.where-3440"><span class="linenos">3440</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-3441"><a href="#Select.where-3441"><span class="linenos">3441</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.where-3442"><a href="#Select.where-3442"><span class="linenos">3442</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.where-3443"><a href="#Select.where-3443"><span class="linenos">3443</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
+</span><span id="Select.where-3444"><a href="#Select.where-3444"><span class="linenos">3444</span></a>
+</span><span id="Select.where-3445"><a href="#Select.where-3445"><span class="linenos">3445</span></a><span class="sd"> Example:</span>
+</span><span id="Select.where-3446"><a href="#Select.where-3446"><span class="linenos">3446</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
+</span><span id="Select.where-3447"><a href="#Select.where-3447"><span class="linenos">3447</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
+</span><span id="Select.where-3448"><a href="#Select.where-3448"><span class="linenos">3448</span></a>
+</span><span id="Select.where-3449"><a href="#Select.where-3449"><span class="linenos">3449</span></a><span class="sd"> Args:</span>
+</span><span id="Select.where-3450"><a href="#Select.where-3450"><span class="linenos">3450</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.where-3451"><a href="#Select.where-3451"><span class="linenos">3451</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.where-3452"><a href="#Select.where-3452"><span class="linenos">3452</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.where-3453"><a href="#Select.where-3453"><span class="linenos">3453</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.where-3454"><a href="#Select.where-3454"><span class="linenos">3454</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.where-3455"><a href="#Select.where-3455"><span class="linenos">3455</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.where-3456"><a href="#Select.where-3456"><span class="linenos">3456</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.where-3457"><a href="#Select.where-3457"><span class="linenos">3457</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.where-3458"><a href="#Select.where-3458"><span class="linenos">3458</span></a>
+</span><span id="Select.where-3459"><a href="#Select.where-3459"><span class="linenos">3459</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.where-3460"><a href="#Select.where-3460"><span class="linenos">3460</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.where-3461"><a href="#Select.where-3461"><span class="linenos">3461</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.where-3462"><a href="#Select.where-3462"><span class="linenos">3462</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.where-3463"><a href="#Select.where-3463"><span class="linenos">3463</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.where-3464"><a href="#Select.where-3464"><span class="linenos">3464</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.where-3465"><a href="#Select.where-3465"><span class="linenos">3465</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="Select.where-3466"><a href="#Select.where-3466"><span class="linenos">3466</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.where-3467"><a href="#Select.where-3467"><span class="linenos">3467</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
+</span><span id="Select.where-3468"><a href="#Select.where-3468"><span class="linenos">3468</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.where-3469"><a href="#Select.where-3469"><span class="linenos">3469</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.where-3470"><a href="#Select.where-3470"><span class="linenos">3470</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.where-3471"><a href="#Select.where-3471"><span class="linenos">3471</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48707,44 +49188,44 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.having"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-3448"><a href="#Select.having-3448"><span class="linenos">3448</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
-</span><span id="Select.having-3449"><a href="#Select.having-3449"><span class="linenos">3449</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.having-3450"><a href="#Select.having-3450"><span class="linenos">3450</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.having-3451"><a href="#Select.having-3451"><span class="linenos">3451</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.having-3452"><a href="#Select.having-3452"><span class="linenos">3452</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="Select.having-3453"><a href="#Select.having-3453"><span class="linenos">3453</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.having-3454"><a href="#Select.having-3454"><span class="linenos">3454</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.having-3455"><a href="#Select.having-3455"><span class="linenos">3455</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.having-3456"><a href="#Select.having-3456"><span class="linenos">3456</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.having-3457"><a href="#Select.having-3457"><span class="linenos">3457</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
-</span><span id="Select.having-3458"><a href="#Select.having-3458"><span class="linenos">3458</span></a>
-</span><span id="Select.having-3459"><a href="#Select.having-3459"><span class="linenos">3459</span></a><span class="sd"> Example:</span>
-</span><span id="Select.having-3460"><a href="#Select.having-3460"><span class="linenos">3460</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
-</span><span id="Select.having-3461"><a href="#Select.having-3461"><span class="linenos">3461</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
-</span><span id="Select.having-3462"><a href="#Select.having-3462"><span class="linenos">3462</span></a>
-</span><span id="Select.having-3463"><a href="#Select.having-3463"><span class="linenos">3463</span></a><span class="sd"> Args:</span>
-</span><span id="Select.having-3464"><a href="#Select.having-3464"><span class="linenos">3464</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="Select.having-3465"><a href="#Select.having-3465"><span class="linenos">3465</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.having-3466"><a href="#Select.having-3466"><span class="linenos">3466</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
-</span><span id="Select.having-3467"><a href="#Select.having-3467"><span class="linenos">3467</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
-</span><span id="Select.having-3468"><a href="#Select.having-3468"><span class="linenos">3468</span></a><span class="sd"> Otherwise, this resets the expression.</span>
-</span><span id="Select.having-3469"><a href="#Select.having-3469"><span class="linenos">3469</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="Select.having-3470"><a href="#Select.having-3470"><span class="linenos">3470</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.having-3471"><a href="#Select.having-3471"><span class="linenos">3471</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="Select.having-3472"><a href="#Select.having-3472"><span class="linenos">3472</span></a>
-</span><span id="Select.having-3473"><a href="#Select.having-3473"><span class="linenos">3473</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.having-3474"><a href="#Select.having-3474"><span class="linenos">3474</span></a><span class="sd"> The modified Select expression.</span>
-</span><span id="Select.having-3475"><a href="#Select.having-3475"><span class="linenos">3475</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.having-3476"><a href="#Select.having-3476"><span class="linenos">3476</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.having-3477"><a href="#Select.having-3477"><span class="linenos">3477</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.having-3478"><a href="#Select.having-3478"><span class="linenos">3478</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.having-3479"><a href="#Select.having-3479"><span class="linenos">3479</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
-</span><span id="Select.having-3480"><a href="#Select.having-3480"><span class="linenos">3480</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.having-3481"><a href="#Select.having-3481"><span class="linenos">3481</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
-</span><span id="Select.having-3482"><a href="#Select.having-3482"><span class="linenos">3482</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.having-3483"><a href="#Select.having-3483"><span class="linenos">3483</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.having-3484"><a href="#Select.having-3484"><span class="linenos">3484</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.having-3485"><a href="#Select.having-3485"><span class="linenos">3485</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-3473"><a href="#Select.having-3473"><span class="linenos">3473</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
+</span><span id="Select.having-3474"><a href="#Select.having-3474"><span class="linenos">3474</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.having-3475"><a href="#Select.having-3475"><span class="linenos">3475</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.having-3476"><a href="#Select.having-3476"><span class="linenos">3476</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.having-3477"><a href="#Select.having-3477"><span class="linenos">3477</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="Select.having-3478"><a href="#Select.having-3478"><span class="linenos">3478</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.having-3479"><a href="#Select.having-3479"><span class="linenos">3479</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-3480"><a href="#Select.having-3480"><span class="linenos">3480</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.having-3481"><a href="#Select.having-3481"><span class="linenos">3481</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.having-3482"><a href="#Select.having-3482"><span class="linenos">3482</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
+</span><span id="Select.having-3483"><a href="#Select.having-3483"><span class="linenos">3483</span></a>
+</span><span id="Select.having-3484"><a href="#Select.having-3484"><span class="linenos">3484</span></a><span class="sd"> Example:</span>
+</span><span id="Select.having-3485"><a href="#Select.having-3485"><span class="linenos">3485</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
+</span><span id="Select.having-3486"><a href="#Select.having-3486"><span class="linenos">3486</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
+</span><span id="Select.having-3487"><a href="#Select.having-3487"><span class="linenos">3487</span></a>
+</span><span id="Select.having-3488"><a href="#Select.having-3488"><span class="linenos">3488</span></a><span class="sd"> Args:</span>
+</span><span id="Select.having-3489"><a href="#Select.having-3489"><span class="linenos">3489</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="Select.having-3490"><a href="#Select.having-3490"><span class="linenos">3490</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.having-3491"><a href="#Select.having-3491"><span class="linenos">3491</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
+</span><span id="Select.having-3492"><a href="#Select.having-3492"><span class="linenos">3492</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
+</span><span id="Select.having-3493"><a href="#Select.having-3493"><span class="linenos">3493</span></a><span class="sd"> Otherwise, this resets the expression.</span>
+</span><span id="Select.having-3494"><a href="#Select.having-3494"><span class="linenos">3494</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="Select.having-3495"><a href="#Select.having-3495"><span class="linenos">3495</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.having-3496"><a href="#Select.having-3496"><span class="linenos">3496</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="Select.having-3497"><a href="#Select.having-3497"><span class="linenos">3497</span></a>
+</span><span id="Select.having-3498"><a href="#Select.having-3498"><span class="linenos">3498</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.having-3499"><a href="#Select.having-3499"><span class="linenos">3499</span></a><span class="sd"> The modified Select expression.</span>
+</span><span id="Select.having-3500"><a href="#Select.having-3500"><span class="linenos">3500</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.having-3501"><a href="#Select.having-3501"><span class="linenos">3501</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.having-3502"><a href="#Select.having-3502"><span class="linenos">3502</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.having-3503"><a href="#Select.having-3503"><span class="linenos">3503</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.having-3504"><a href="#Select.having-3504"><span class="linenos">3504</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
+</span><span id="Select.having-3505"><a href="#Select.having-3505"><span class="linenos">3505</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.having-3506"><a href="#Select.having-3506"><span class="linenos">3506</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
+</span><span id="Select.having-3507"><a href="#Select.having-3507"><span class="linenos">3507</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.having-3508"><a href="#Select.having-3508"><span class="linenos">3508</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.having-3509"><a href="#Select.having-3509"><span class="linenos">3509</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.having-3510"><a href="#Select.having-3510"><span class="linenos">3510</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48793,24 +49274,24 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-3487"><a href="#Select.window-3487"><span class="linenos">3487</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
-</span><span id="Select.window-3488"><a href="#Select.window-3488"><span class="linenos">3488</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.window-3489"><a href="#Select.window-3489"><span class="linenos">3489</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.window-3490"><a href="#Select.window-3490"><span class="linenos">3490</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.window-3491"><a href="#Select.window-3491"><span class="linenos">3491</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="Select.window-3492"><a href="#Select.window-3492"><span class="linenos">3492</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.window-3493"><a href="#Select.window-3493"><span class="linenos">3493</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.window-3494"><a href="#Select.window-3494"><span class="linenos">3494</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.window-3495"><a href="#Select.window-3495"><span class="linenos">3495</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
-</span><span id="Select.window-3496"><a href="#Select.window-3496"><span class="linenos">3496</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.window-3497"><a href="#Select.window-3497"><span class="linenos">3497</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.window-3498"><a href="#Select.window-3498"><span class="linenos">3498</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
-</span><span id="Select.window-3499"><a href="#Select.window-3499"><span class="linenos">3499</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.window-3500"><a href="#Select.window-3500"><span class="linenos">3500</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
-</span><span id="Select.window-3501"><a href="#Select.window-3501"><span class="linenos">3501</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.window-3502"><a href="#Select.window-3502"><span class="linenos">3502</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.window-3503"><a href="#Select.window-3503"><span class="linenos">3503</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.window-3504"><a href="#Select.window-3504"><span class="linenos">3504</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-3512"><a href="#Select.window-3512"><span class="linenos">3512</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
+</span><span id="Select.window-3513"><a href="#Select.window-3513"><span class="linenos">3513</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.window-3514"><a href="#Select.window-3514"><span class="linenos">3514</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.window-3515"><a href="#Select.window-3515"><span class="linenos">3515</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.window-3516"><a href="#Select.window-3516"><span class="linenos">3516</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="Select.window-3517"><a href="#Select.window-3517"><span class="linenos">3517</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.window-3518"><a href="#Select.window-3518"><span class="linenos">3518</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-3519"><a href="#Select.window-3519"><span class="linenos">3519</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.window-3520"><a href="#Select.window-3520"><span class="linenos">3520</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
+</span><span id="Select.window-3521"><a href="#Select.window-3521"><span class="linenos">3521</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.window-3522"><a href="#Select.window-3522"><span class="linenos">3522</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.window-3523"><a href="#Select.window-3523"><span class="linenos">3523</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
+</span><span id="Select.window-3524"><a href="#Select.window-3524"><span class="linenos">3524</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.window-3525"><a href="#Select.window-3525"><span class="linenos">3525</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
+</span><span id="Select.window-3526"><a href="#Select.window-3526"><span class="linenos">3526</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.window-3527"><a href="#Select.window-3527"><span class="linenos">3527</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.window-3528"><a href="#Select.window-3528"><span class="linenos">3528</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.window-3529"><a href="#Select.window-3529"><span class="linenos">3529</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48828,24 +49309,24 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.qualify"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-3506"><a href="#Select.qualify-3506"><span class="linenos">3506</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
-</span><span id="Select.qualify-3507"><a href="#Select.qualify-3507"><span class="linenos">3507</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.qualify-3508"><a href="#Select.qualify-3508"><span class="linenos">3508</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Select.qualify-3509"><a href="#Select.qualify-3509"><span class="linenos">3509</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.qualify-3510"><a href="#Select.qualify-3510"><span class="linenos">3510</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="Select.qualify-3511"><a href="#Select.qualify-3511"><span class="linenos">3511</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.qualify-3512"><a href="#Select.qualify-3512"><span class="linenos">3512</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.qualify-3513"><a href="#Select.qualify-3513"><span class="linenos">3513</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.qualify-3514"><a href="#Select.qualify-3514"><span class="linenos">3514</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
-</span><span id="Select.qualify-3515"><a href="#Select.qualify-3515"><span class="linenos">3515</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
-</span><span id="Select.qualify-3516"><a href="#Select.qualify-3516"><span class="linenos">3516</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.qualify-3517"><a href="#Select.qualify-3517"><span class="linenos">3517</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
-</span><span id="Select.qualify-3518"><a href="#Select.qualify-3518"><span class="linenos">3518</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
-</span><span id="Select.qualify-3519"><a href="#Select.qualify-3519"><span class="linenos">3519</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
-</span><span id="Select.qualify-3520"><a href="#Select.qualify-3520"><span class="linenos">3520</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="Select.qualify-3521"><a href="#Select.qualify-3521"><span class="linenos">3521</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="Select.qualify-3522"><a href="#Select.qualify-3522"><span class="linenos">3522</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.qualify-3523"><a href="#Select.qualify-3523"><span class="linenos">3523</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-3531"><a href="#Select.qualify-3531"><span class="linenos">3531</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
+</span><span id="Select.qualify-3532"><a href="#Select.qualify-3532"><span class="linenos">3532</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.qualify-3533"><a href="#Select.qualify-3533"><span class="linenos">3533</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Select.qualify-3534"><a href="#Select.qualify-3534"><span class="linenos">3534</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.qualify-3535"><a href="#Select.qualify-3535"><span class="linenos">3535</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="Select.qualify-3536"><a href="#Select.qualify-3536"><span class="linenos">3536</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.qualify-3537"><a href="#Select.qualify-3537"><span class="linenos">3537</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-3538"><a href="#Select.qualify-3538"><span class="linenos">3538</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.qualify-3539"><a href="#Select.qualify-3539"><span class="linenos">3539</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
+</span><span id="Select.qualify-3540"><a href="#Select.qualify-3540"><span class="linenos">3540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
+</span><span id="Select.qualify-3541"><a href="#Select.qualify-3541"><span class="linenos">3541</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.qualify-3542"><a href="#Select.qualify-3542"><span class="linenos">3542</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
+</span><span id="Select.qualify-3543"><a href="#Select.qualify-3543"><span class="linenos">3543</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
+</span><span id="Select.qualify-3544"><a href="#Select.qualify-3544"><span class="linenos">3544</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
+</span><span id="Select.qualify-3545"><a href="#Select.qualify-3545"><span class="linenos">3545</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="Select.qualify-3546"><a href="#Select.qualify-3546"><span class="linenos">3546</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="Select.qualify-3547"><a href="#Select.qualify-3547"><span class="linenos">3547</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.qualify-3548"><a href="#Select.qualify-3548"><span class="linenos">3548</span></a> <span class="p">)</span>
</span></pre></div>
@@ -48863,28 +49344,28 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-3525"><a href="#Select.distinct-3525"><span class="linenos">3525</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
-</span><span id="Select.distinct-3526"><a href="#Select.distinct-3526"><span class="linenos">3526</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Select.distinct-3527"><a href="#Select.distinct-3527"><span class="linenos">3527</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.distinct-3528"><a href="#Select.distinct-3528"><span class="linenos">3528</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.distinct-3529"><a href="#Select.distinct-3529"><span class="linenos">3529</span></a><span class="sd"> Set the OFFSET expression.</span>
-</span><span id="Select.distinct-3530"><a href="#Select.distinct-3530"><span class="linenos">3530</span></a>
-</span><span id="Select.distinct-3531"><a href="#Select.distinct-3531"><span class="linenos">3531</span></a><span class="sd"> Example:</span>
-</span><span id="Select.distinct-3532"><a href="#Select.distinct-3532"><span class="linenos">3532</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
-</span><span id="Select.distinct-3533"><a href="#Select.distinct-3533"><span class="linenos">3533</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
-</span><span id="Select.distinct-3534"><a href="#Select.distinct-3534"><span class="linenos">3534</span></a>
-</span><span id="Select.distinct-3535"><a href="#Select.distinct-3535"><span class="linenos">3535</span></a><span class="sd"> Args:</span>
-</span><span id="Select.distinct-3536"><a href="#Select.distinct-3536"><span class="linenos">3536</span></a><span class="sd"> ons: the expressions to distinct on</span>
-</span><span id="Select.distinct-3537"><a href="#Select.distinct-3537"><span class="linenos">3537</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
-</span><span id="Select.distinct-3538"><a href="#Select.distinct-3538"><span class="linenos">3538</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.distinct-3539"><a href="#Select.distinct-3539"><span class="linenos">3539</span></a>
-</span><span id="Select.distinct-3540"><a href="#Select.distinct-3540"><span class="linenos">3540</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.distinct-3541"><a href="#Select.distinct-3541"><span class="linenos">3541</span></a><span class="sd"> Select: the modified expression.</span>
-</span><span id="Select.distinct-3542"><a href="#Select.distinct-3542"><span class="linenos">3542</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.distinct-3543"><a href="#Select.distinct-3543"><span class="linenos">3543</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select.distinct-3544"><a href="#Select.distinct-3544"><span class="linenos">3544</span></a> <span class="n">on</span> <span class="o">=</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">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
-</span><span id="Select.distinct-3545"><a href="#Select.distinct-3545"><span class="linenos">3545</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="Select.distinct-3546"><a href="#Select.distinct-3546"><span class="linenos">3546</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-3550"><a href="#Select.distinct-3550"><span class="linenos">3550</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
+</span><span id="Select.distinct-3551"><a href="#Select.distinct-3551"><span class="linenos">3551</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Select.distinct-3552"><a href="#Select.distinct-3552"><span class="linenos">3552</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.distinct-3553"><a href="#Select.distinct-3553"><span class="linenos">3553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.distinct-3554"><a href="#Select.distinct-3554"><span class="linenos">3554</span></a><span class="sd"> Set the OFFSET expression.</span>
+</span><span id="Select.distinct-3555"><a href="#Select.distinct-3555"><span class="linenos">3555</span></a>
+</span><span id="Select.distinct-3556"><a href="#Select.distinct-3556"><span class="linenos">3556</span></a><span class="sd"> Example:</span>
+</span><span id="Select.distinct-3557"><a href="#Select.distinct-3557"><span class="linenos">3557</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
+</span><span id="Select.distinct-3558"><a href="#Select.distinct-3558"><span class="linenos">3558</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
+</span><span id="Select.distinct-3559"><a href="#Select.distinct-3559"><span class="linenos">3559</span></a>
+</span><span id="Select.distinct-3560"><a href="#Select.distinct-3560"><span class="linenos">3560</span></a><span class="sd"> Args:</span>
+</span><span id="Select.distinct-3561"><a href="#Select.distinct-3561"><span class="linenos">3561</span></a><span class="sd"> ons: the expressions to distinct on</span>
+</span><span id="Select.distinct-3562"><a href="#Select.distinct-3562"><span class="linenos">3562</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
+</span><span id="Select.distinct-3563"><a href="#Select.distinct-3563"><span class="linenos">3563</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.distinct-3564"><a href="#Select.distinct-3564"><span class="linenos">3564</span></a>
+</span><span id="Select.distinct-3565"><a href="#Select.distinct-3565"><span class="linenos">3565</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.distinct-3566"><a href="#Select.distinct-3566"><span class="linenos">3566</span></a><span class="sd"> Select: the modified expression.</span>
+</span><span id="Select.distinct-3567"><a href="#Select.distinct-3567"><span class="linenos">3567</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.distinct-3568"><a href="#Select.distinct-3568"><span class="linenos">3568</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select.distinct-3569"><a href="#Select.distinct-3569"><span class="linenos">3569</span></a> <span class="n">on</span> <span class="o">=</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">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
+</span><span id="Select.distinct-3570"><a href="#Select.distinct-3570"><span class="linenos">3570</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="Select.distinct-3571"><a href="#Select.distinct-3571"><span class="linenos">3571</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -48928,45 +49409,45 @@ Otherwise, this resets the expression.</li>
</div>
<a class="headerlink" href="#Select.ctas"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-3548"><a href="#Select.ctas-3548"><span class="linenos">3548</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
-</span><span id="Select.ctas-3549"><a href="#Select.ctas-3549"><span class="linenos">3549</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Select.ctas-3550"><a href="#Select.ctas-3550"><span class="linenos">3550</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="Select.ctas-3551"><a href="#Select.ctas-3551"><span class="linenos">3551</span></a> <span class="n">properties</span><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">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Select.ctas-3552"><a href="#Select.ctas-3552"><span class="linenos">3552</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="Select.ctas-3553"><a href="#Select.ctas-3553"><span class="linenos">3553</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Select.ctas-3554"><a href="#Select.ctas-3554"><span class="linenos">3554</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Select.ctas-3555"><a href="#Select.ctas-3555"><span class="linenos">3555</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
-</span><span id="Select.ctas-3556"><a href="#Select.ctas-3556"><span class="linenos">3556</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.ctas-3557"><a href="#Select.ctas-3557"><span class="linenos">3557</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
-</span><span id="Select.ctas-3558"><a href="#Select.ctas-3558"><span class="linenos">3558</span></a>
-</span><span id="Select.ctas-3559"><a href="#Select.ctas-3559"><span class="linenos">3559</span></a><span class="sd"> Example:</span>
-</span><span id="Select.ctas-3560"><a href="#Select.ctas-3560"><span class="linenos">3560</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
-</span><span id="Select.ctas-3561"><a href="#Select.ctas-3561"><span class="linenos">3561</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
-</span><span id="Select.ctas-3562"><a href="#Select.ctas-3562"><span class="linenos">3562</span></a>
-</span><span id="Select.ctas-3563"><a href="#Select.ctas-3563"><span class="linenos">3563</span></a><span class="sd"> Args:</span>
-</span><span id="Select.ctas-3564"><a href="#Select.ctas-3564"><span class="linenos">3564</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
-</span><span id="Select.ctas-3565"><a href="#Select.ctas-3565"><span class="linenos">3565</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.ctas-3566"><a href="#Select.ctas-3566"><span class="linenos">3566</span></a><span class="sd"> properties: an optional mapping of table properties</span>
-</span><span id="Select.ctas-3567"><a href="#Select.ctas-3567"><span class="linenos">3567</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
-</span><span id="Select.ctas-3568"><a href="#Select.ctas-3568"><span class="linenos">3568</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.ctas-3569"><a href="#Select.ctas-3569"><span class="linenos">3569</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
-</span><span id="Select.ctas-3570"><a href="#Select.ctas-3570"><span class="linenos">3570</span></a>
-</span><span id="Select.ctas-3571"><a href="#Select.ctas-3571"><span class="linenos">3571</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.ctas-3572"><a href="#Select.ctas-3572"><span class="linenos">3572</span></a><span class="sd"> The new Create expression.</span>
-</span><span id="Select.ctas-3573"><a href="#Select.ctas-3573"><span class="linenos">3573</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.ctas-3574"><a href="#Select.ctas-3574"><span class="linenos">3574</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select.ctas-3575"><a href="#Select.ctas-3575"><span class="linenos">3575</span></a> <span class="n">table_expression</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="Select.ctas-3576"><a href="#Select.ctas-3576"><span class="linenos">3576</span></a>
-</span><span id="Select.ctas-3577"><a href="#Select.ctas-3577"><span class="linenos">3577</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="Select.ctas-3578"><a href="#Select.ctas-3578"><span class="linenos">3578</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
-</span><span id="Select.ctas-3579"><a href="#Select.ctas-3579"><span class="linenos">3579</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
-</span><span id="Select.ctas-3580"><a href="#Select.ctas-3580"><span class="linenos">3580</span></a>
-</span><span id="Select.ctas-3581"><a href="#Select.ctas-3581"><span class="linenos">3581</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
-</span><span id="Select.ctas-3582"><a href="#Select.ctas-3582"><span class="linenos">3582</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
-</span><span id="Select.ctas-3583"><a href="#Select.ctas-3583"><span class="linenos">3583</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;TABLE&quot;</span><span class="p">,</span>
-</span><span id="Select.ctas-3584"><a href="#Select.ctas-3584"><span class="linenos">3584</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
-</span><span id="Select.ctas-3585"><a href="#Select.ctas-3585"><span class="linenos">3585</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
-</span><span id="Select.ctas-3586"><a href="#Select.ctas-3586"><span class="linenos">3586</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-3573"><a href="#Select.ctas-3573"><span class="linenos">3573</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
+</span><span id="Select.ctas-3574"><a href="#Select.ctas-3574"><span class="linenos">3574</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Select.ctas-3575"><a href="#Select.ctas-3575"><span class="linenos">3575</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="Select.ctas-3576"><a href="#Select.ctas-3576"><span class="linenos">3576</span></a> <span class="n">properties</span><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">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Select.ctas-3577"><a href="#Select.ctas-3577"><span class="linenos">3577</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="Select.ctas-3578"><a href="#Select.ctas-3578"><span class="linenos">3578</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Select.ctas-3579"><a href="#Select.ctas-3579"><span class="linenos">3579</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Select.ctas-3580"><a href="#Select.ctas-3580"><span class="linenos">3580</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
+</span><span id="Select.ctas-3581"><a href="#Select.ctas-3581"><span class="linenos">3581</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.ctas-3582"><a href="#Select.ctas-3582"><span class="linenos">3582</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
+</span><span id="Select.ctas-3583"><a href="#Select.ctas-3583"><span class="linenos">3583</span></a>
+</span><span id="Select.ctas-3584"><a href="#Select.ctas-3584"><span class="linenos">3584</span></a><span class="sd"> Example:</span>
+</span><span id="Select.ctas-3585"><a href="#Select.ctas-3585"><span class="linenos">3585</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
+</span><span id="Select.ctas-3586"><a href="#Select.ctas-3586"><span class="linenos">3586</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
+</span><span id="Select.ctas-3587"><a href="#Select.ctas-3587"><span class="linenos">3587</span></a>
+</span><span id="Select.ctas-3588"><a href="#Select.ctas-3588"><span class="linenos">3588</span></a><span class="sd"> Args:</span>
+</span><span id="Select.ctas-3589"><a href="#Select.ctas-3589"><span class="linenos">3589</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
+</span><span id="Select.ctas-3590"><a href="#Select.ctas-3590"><span class="linenos">3590</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.ctas-3591"><a href="#Select.ctas-3591"><span class="linenos">3591</span></a><span class="sd"> properties: an optional mapping of table properties</span>
+</span><span id="Select.ctas-3592"><a href="#Select.ctas-3592"><span class="linenos">3592</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
+</span><span id="Select.ctas-3593"><a href="#Select.ctas-3593"><span class="linenos">3593</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.ctas-3594"><a href="#Select.ctas-3594"><span class="linenos">3594</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
+</span><span id="Select.ctas-3595"><a href="#Select.ctas-3595"><span class="linenos">3595</span></a>
+</span><span id="Select.ctas-3596"><a href="#Select.ctas-3596"><span class="linenos">3596</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.ctas-3597"><a href="#Select.ctas-3597"><span class="linenos">3597</span></a><span class="sd"> The new Create expression.</span>
+</span><span id="Select.ctas-3598"><a href="#Select.ctas-3598"><span class="linenos">3598</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.ctas-3599"><a href="#Select.ctas-3599"><span class="linenos">3599</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select.ctas-3600"><a href="#Select.ctas-3600"><span class="linenos">3600</span></a> <span class="n">table_expression</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="Select.ctas-3601"><a href="#Select.ctas-3601"><span class="linenos">3601</span></a>
+</span><span id="Select.ctas-3602"><a href="#Select.ctas-3602"><span class="linenos">3602</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="Select.ctas-3603"><a href="#Select.ctas-3603"><span class="linenos">3603</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
+</span><span id="Select.ctas-3604"><a href="#Select.ctas-3604"><span class="linenos">3604</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
+</span><span id="Select.ctas-3605"><a href="#Select.ctas-3605"><span class="linenos">3605</span></a>
+</span><span id="Select.ctas-3606"><a href="#Select.ctas-3606"><span class="linenos">3606</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
+</span><span id="Select.ctas-3607"><a href="#Select.ctas-3607"><span class="linenos">3607</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
+</span><span id="Select.ctas-3608"><a href="#Select.ctas-3608"><span class="linenos">3608</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;TABLE&quot;</span><span class="p">,</span>
+</span><span id="Select.ctas-3609"><a href="#Select.ctas-3609"><span class="linenos">3609</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
+</span><span id="Select.ctas-3610"><a href="#Select.ctas-3610"><span class="linenos">3610</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
+</span><span id="Select.ctas-3611"><a href="#Select.ctas-3611"><span class="linenos">3611</span></a> <span class="p">)</span>
</span></pre></div>
@@ -49013,28 +49494,28 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.lock"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-3588"><a href="#Select.lock-3588"><span class="linenos">3588</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.lock-3589"><a href="#Select.lock-3589"><span class="linenos">3589</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.lock-3590"><a href="#Select.lock-3590"><span class="linenos">3590</span></a><span class="sd"> Set the locking read mode for this expression.</span>
-</span><span id="Select.lock-3591"><a href="#Select.lock-3591"><span class="linenos">3591</span></a>
-</span><span id="Select.lock-3592"><a href="#Select.lock-3592"><span class="linenos">3592</span></a><span class="sd"> Examples:</span>
-</span><span id="Select.lock-3593"><a href="#Select.lock-3593"><span class="linenos">3593</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
-</span><span id="Select.lock-3594"><a href="#Select.lock-3594"><span class="linenos">3594</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
-</span><span id="Select.lock-3595"><a href="#Select.lock-3595"><span class="linenos">3595</span></a>
-</span><span id="Select.lock-3596"><a href="#Select.lock-3596"><span class="linenos">3596</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
-</span><span id="Select.lock-3597"><a href="#Select.lock-3597"><span class="linenos">3597</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
-</span><span id="Select.lock-3598"><a href="#Select.lock-3598"><span class="linenos">3598</span></a>
-</span><span id="Select.lock-3599"><a href="#Select.lock-3599"><span class="linenos">3599</span></a><span class="sd"> Args:</span>
-</span><span id="Select.lock-3600"><a href="#Select.lock-3600"><span class="linenos">3600</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
-</span><span id="Select.lock-3601"><a href="#Select.lock-3601"><span class="linenos">3601</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
-</span><span id="Select.lock-3602"><a href="#Select.lock-3602"><span class="linenos">3602</span></a>
-</span><span id="Select.lock-3603"><a href="#Select.lock-3603"><span class="linenos">3603</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.lock-3604"><a href="#Select.lock-3604"><span class="linenos">3604</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select.lock-3605"><a href="#Select.lock-3605"><span class="linenos">3605</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.lock-3606"><a href="#Select.lock-3606"><span class="linenos">3606</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select.lock-3607"><a href="#Select.lock-3607"><span class="linenos">3607</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
-</span><span id="Select.lock-3608"><a href="#Select.lock-3608"><span class="linenos">3608</span></a>
-</span><span id="Select.lock-3609"><a href="#Select.lock-3609"><span class="linenos">3609</span></a> <span class="k">return</span> <span class="n">inst</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-3613"><a href="#Select.lock-3613"><span class="linenos">3613</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.lock-3614"><a href="#Select.lock-3614"><span class="linenos">3614</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.lock-3615"><a href="#Select.lock-3615"><span class="linenos">3615</span></a><span class="sd"> Set the locking read mode for this expression.</span>
+</span><span id="Select.lock-3616"><a href="#Select.lock-3616"><span class="linenos">3616</span></a>
+</span><span id="Select.lock-3617"><a href="#Select.lock-3617"><span class="linenos">3617</span></a><span class="sd"> Examples:</span>
+</span><span id="Select.lock-3618"><a href="#Select.lock-3618"><span class="linenos">3618</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
+</span><span id="Select.lock-3619"><a href="#Select.lock-3619"><span class="linenos">3619</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
+</span><span id="Select.lock-3620"><a href="#Select.lock-3620"><span class="linenos">3620</span></a>
+</span><span id="Select.lock-3621"><a href="#Select.lock-3621"><span class="linenos">3621</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
+</span><span id="Select.lock-3622"><a href="#Select.lock-3622"><span class="linenos">3622</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
+</span><span id="Select.lock-3623"><a href="#Select.lock-3623"><span class="linenos">3623</span></a>
+</span><span id="Select.lock-3624"><a href="#Select.lock-3624"><span class="linenos">3624</span></a><span class="sd"> Args:</span>
+</span><span id="Select.lock-3625"><a href="#Select.lock-3625"><span class="linenos">3625</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
+</span><span id="Select.lock-3626"><a href="#Select.lock-3626"><span class="linenos">3626</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
+</span><span id="Select.lock-3627"><a href="#Select.lock-3627"><span class="linenos">3627</span></a>
+</span><span id="Select.lock-3628"><a href="#Select.lock-3628"><span class="linenos">3628</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.lock-3629"><a href="#Select.lock-3629"><span class="linenos">3629</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select.lock-3630"><a href="#Select.lock-3630"><span class="linenos">3630</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.lock-3631"><a href="#Select.lock-3631"><span class="linenos">3631</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select.lock-3632"><a href="#Select.lock-3632"><span class="linenos">3632</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
+</span><span id="Select.lock-3633"><a href="#Select.lock-3633"><span class="linenos">3633</span></a>
+</span><span id="Select.lock-3634"><a href="#Select.lock-3634"><span class="linenos">3634</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
@@ -49083,29 +49564,29 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed,
</div>
<a class="headerlink" href="#Select.hint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.hint-3611"><a href="#Select.hint-3611"><span class="linenos">3611</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="Select.hint-3612"><a href="#Select.hint-3612"><span class="linenos">3612</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Select.hint-3613"><a href="#Select.hint-3613"><span class="linenos">3613</span></a><span class="sd"> Set hints for this expression.</span>
-</span><span id="Select.hint-3614"><a href="#Select.hint-3614"><span class="linenos">3614</span></a>
-</span><span id="Select.hint-3615"><a href="#Select.hint-3615"><span class="linenos">3615</span></a><span class="sd"> Examples:</span>
-</span><span id="Select.hint-3616"><a href="#Select.hint-3616"><span class="linenos">3616</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
-</span><span id="Select.hint-3617"><a href="#Select.hint-3617"><span class="linenos">3617</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
-</span><span id="Select.hint-3618"><a href="#Select.hint-3618"><span class="linenos">3618</span></a>
-</span><span id="Select.hint-3619"><a href="#Select.hint-3619"><span class="linenos">3619</span></a><span class="sd"> Args:</span>
-</span><span id="Select.hint-3620"><a href="#Select.hint-3620"><span class="linenos">3620</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
-</span><span id="Select.hint-3621"><a href="#Select.hint-3621"><span class="linenos">3621</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="Select.hint-3622"><a href="#Select.hint-3622"><span class="linenos">3622</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
-</span><span id="Select.hint-3623"><a href="#Select.hint-3623"><span class="linenos">3623</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
-</span><span id="Select.hint-3624"><a href="#Select.hint-3624"><span class="linenos">3624</span></a>
-</span><span id="Select.hint-3625"><a href="#Select.hint-3625"><span class="linenos">3625</span></a><span class="sd"> Returns:</span>
-</span><span id="Select.hint-3626"><a href="#Select.hint-3626"><span class="linenos">3626</span></a><span class="sd"> The modified expression.</span>
-</span><span id="Select.hint-3627"><a href="#Select.hint-3627"><span class="linenos">3627</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Select.hint-3628"><a href="#Select.hint-3628"><span class="linenos">3628</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Select.hint-3629"><a href="#Select.hint-3629"><span class="linenos">3629</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="Select.hint-3630"><a href="#Select.hint-3630"><span class="linenos">3630</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
-</span><span id="Select.hint-3631"><a href="#Select.hint-3631"><span class="linenos">3631</span></a> <span class="p">)</span>
-</span><span id="Select.hint-3632"><a href="#Select.hint-3632"><span class="linenos">3632</span></a>
-</span><span id="Select.hint-3633"><a href="#Select.hint-3633"><span class="linenos">3633</span></a> <span class="k">return</span> <span class="n">inst</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.hint-3636"><a href="#Select.hint-3636"><span class="linenos">3636</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">hints</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="Select.hint-3637"><a href="#Select.hint-3637"><span class="linenos">3637</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Select.hint-3638"><a href="#Select.hint-3638"><span class="linenos">3638</span></a><span class="sd"> Set hints for this expression.</span>
+</span><span id="Select.hint-3639"><a href="#Select.hint-3639"><span class="linenos">3639</span></a>
+</span><span id="Select.hint-3640"><a href="#Select.hint-3640"><span class="linenos">3640</span></a><span class="sd"> Examples:</span>
+</span><span id="Select.hint-3641"><a href="#Select.hint-3641"><span class="linenos">3641</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).hint(&quot;BROADCAST(y)&quot;).sql(dialect=&quot;spark&quot;)</span>
+</span><span id="Select.hint-3642"><a href="#Select.hint-3642"><span class="linenos">3642</span></a><span class="sd"> &#39;SELECT /*+ BROADCAST(y) */ x FROM tbl&#39;</span>
+</span><span id="Select.hint-3643"><a href="#Select.hint-3643"><span class="linenos">3643</span></a>
+</span><span id="Select.hint-3644"><a href="#Select.hint-3644"><span class="linenos">3644</span></a><span class="sd"> Args:</span>
+</span><span id="Select.hint-3645"><a href="#Select.hint-3645"><span class="linenos">3645</span></a><span class="sd"> hints: The SQL code strings to parse as the hints.</span>
+</span><span id="Select.hint-3646"><a href="#Select.hint-3646"><span class="linenos">3646</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="Select.hint-3647"><a href="#Select.hint-3647"><span class="linenos">3647</span></a><span class="sd"> dialect: The dialect used to parse the hints.</span>
+</span><span id="Select.hint-3648"><a href="#Select.hint-3648"><span class="linenos">3648</span></a><span class="sd"> copy: If `False`, modify this expression instance in-place.</span>
+</span><span id="Select.hint-3649"><a href="#Select.hint-3649"><span class="linenos">3649</span></a>
+</span><span id="Select.hint-3650"><a href="#Select.hint-3650"><span class="linenos">3650</span></a><span class="sd"> Returns:</span>
+</span><span id="Select.hint-3651"><a href="#Select.hint-3651"><span class="linenos">3651</span></a><span class="sd"> The modified expression.</span>
+</span><span id="Select.hint-3652"><a href="#Select.hint-3652"><span class="linenos">3652</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Select.hint-3653"><a href="#Select.hint-3653"><span class="linenos">3653</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Select.hint-3654"><a href="#Select.hint-3654"><span class="linenos">3654</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="Select.hint-3655"><a href="#Select.hint-3655"><span class="linenos">3655</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">,</span> <span class="n">Hint</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">hints</span><span class="p">])</span>
+</span><span id="Select.hint-3656"><a href="#Select.hint-3656"><span class="linenos">3656</span></a> <span class="p">)</span>
+</span><span id="Select.hint-3657"><a href="#Select.hint-3657"><span class="linenos">3657</span></a>
+</span><span id="Select.hint-3658"><a href="#Select.hint-3658"><span class="linenos">3658</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
@@ -49148,9 +49629,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Select.named_selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.named_selects-3635"><a href="#Select.named_selects-3635"><span class="linenos">3635</span></a> <span class="nd">@property</span>
-</span><span id="Select.named_selects-3636"><a href="#Select.named_selects-3636"><span class="linenos">3636</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="Select.named_selects-3637"><a href="#Select.named_selects-3637"><span class="linenos">3637</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.named_selects-3660"><a href="#Select.named_selects-3660"><span class="linenos">3660</span></a> <span class="nd">@property</span>
+</span><span id="Select.named_selects-3661"><a href="#Select.named_selects-3661"><span class="linenos">3661</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="Select.named_selects-3662"><a href="#Select.named_selects-3662"><span class="linenos">3662</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
</span></pre></div>
@@ -49168,9 +49649,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Select.is_star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.is_star-3639"><a href="#Select.is_star-3639"><span class="linenos">3639</span></a> <span class="nd">@property</span>
-</span><span id="Select.is_star-3640"><a href="#Select.is_star-3640"><span class="linenos">3640</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Select.is_star-3641"><a href="#Select.is_star-3641"><span class="linenos">3641</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Select.is_star-3664"><a href="#Select.is_star-3664"><span class="linenos">3664</span></a> <span class="nd">@property</span>
+</span><span id="Select.is_star-3665"><a href="#Select.is_star-3665"><span class="linenos">3665</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Select.is_star-3666"><a href="#Select.is_star-3666"><span class="linenos">3666</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
</span></pre></div>
@@ -49188,9 +49669,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Select.selects"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Select.selects-3643"><a href="#Select.selects-3643"><span class="linenos">3643</span></a> <span class="nd">@property</span>
-</span><span id="Select.selects-3644"><a href="#Select.selects-3644"><span class="linenos">3644</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Select.selects-3645"><a href="#Select.selects-3645"><span class="linenos">3645</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="Select.selects-3668"><a href="#Select.selects-3668"><span class="linenos">3668</span></a> <span class="nd">@property</span>
+</span><span id="Select.selects-3669"><a href="#Select.selects-3669"><span class="linenos">3669</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Select.selects-3670"><a href="#Select.selects-3670"><span class="linenos">3670</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -49323,57 +49804,57 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-3651"><a href="#Subquery-3651"><span class="linenos">3651</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Query</span><span class="p">):</span>
-</span><span id="Subquery-3652"><a href="#Subquery-3652"><span class="linenos">3652</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Subquery-3653"><a href="#Subquery-3653"><span class="linenos">3653</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="Subquery-3654"><a href="#Subquery-3654"><span class="linenos">3654</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Subquery-3655"><a href="#Subquery-3655"><span class="linenos">3655</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Subquery-3656"><a href="#Subquery-3656"><span class="linenos">3656</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
-</span><span id="Subquery-3657"><a href="#Subquery-3657"><span class="linenos">3657</span></a> <span class="p">}</span>
-</span><span id="Subquery-3658"><a href="#Subquery-3658"><span class="linenos">3658</span></a>
-</span><span id="Subquery-3659"><a href="#Subquery-3659"><span class="linenos">3659</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subquery-3660"><a href="#Subquery-3660"><span class="linenos">3660</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the first non subquery.&quot;&quot;&quot;</span>
-</span><span id="Subquery-3661"><a href="#Subquery-3661"><span class="linenos">3661</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery-3662"><a href="#Subquery-3662"><span class="linenos">3662</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
-</span><span id="Subquery-3663"><a href="#Subquery-3663"><span class="linenos">3663</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Subquery-3664"><a href="#Subquery-3664"><span class="linenos">3664</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Subquery-3665"><a href="#Subquery-3665"><span class="linenos">3665</span></a>
-</span><span id="Subquery-3666"><a href="#Subquery-3666"><span class="linenos">3666</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subquery-3667"><a href="#Subquery-3667"><span class="linenos">3667</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery-3668"><a href="#Subquery-3668"><span class="linenos">3668</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
-</span><span id="Subquery-3669"><a href="#Subquery-3669"><span class="linenos">3669</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
-</span><span id="Subquery-3670"><a href="#Subquery-3670"><span class="linenos">3670</span></a> <span class="k">return</span> <span class="n">expression</span>
-</span><span id="Subquery-3671"><a href="#Subquery-3671"><span class="linenos">3671</span></a>
-</span><span id="Subquery-3672"><a href="#Subquery-3672"><span class="linenos">3672</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Subquery-3673"><a href="#Subquery-3673"><span class="linenos">3673</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subquery-3674"><a href="#Subquery-3674"><span class="linenos">3674</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Subquery-3675"><a href="#Subquery-3675"><span class="linenos">3675</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Subquery-3676"><a href="#Subquery-3676"><span class="linenos">3676</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subquery-3677"><a href="#Subquery-3677"><span class="linenos">3677</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Subquery-3678"><a href="#Subquery-3678"><span class="linenos">3678</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subquery-3679"><a href="#Subquery-3679"><span class="linenos">3679</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subquery-3680"><a href="#Subquery-3680"><span class="linenos">3680</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Subquery-3681"><a href="#Subquery-3681"><span class="linenos">3681</span></a> <span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Subquery-3682"><a href="#Subquery-3682"><span class="linenos">3682</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-3676"><a href="#Subquery-3676"><span class="linenos">3676</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Query</span><span class="p">):</span>
+</span><span id="Subquery-3677"><a href="#Subquery-3677"><span class="linenos">3677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Subquery-3678"><a href="#Subquery-3678"><span class="linenos">3678</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="Subquery-3679"><a href="#Subquery-3679"><span class="linenos">3679</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Subquery-3680"><a href="#Subquery-3680"><span class="linenos">3680</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Subquery-3681"><a href="#Subquery-3681"><span class="linenos">3681</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
+</span><span id="Subquery-3682"><a href="#Subquery-3682"><span class="linenos">3682</span></a> <span class="p">}</span>
</span><span id="Subquery-3683"><a href="#Subquery-3683"><span class="linenos">3683</span></a>
-</span><span id="Subquery-3684"><a href="#Subquery-3684"><span class="linenos">3684</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-3685"><a href="#Subquery-3685"><span class="linenos">3685</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Subquery-3686"><a href="#Subquery-3686"><span class="linenos">3686</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery-3687"><a href="#Subquery-3687"><span class="linenos">3687</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
-</span><span id="Subquery-3688"><a href="#Subquery-3688"><span class="linenos">3688</span></a>
-</span><span id="Subquery-3689"><a href="#Subquery-3689"><span class="linenos">3689</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
-</span><span id="Subquery-3690"><a href="#Subquery-3690"><span class="linenos">3690</span></a><span class="sd"> ^</span>
-</span><span id="Subquery-3691"><a href="#Subquery-3691"><span class="linenos">3691</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
-</span><span id="Subquery-3692"><a href="#Subquery-3692"><span class="linenos">3692</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery-3693"><a href="#Subquery-3693"><span class="linenos">3693</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</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="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
-</span><span id="Subquery-3694"><a href="#Subquery-3694"><span class="linenos">3694</span></a>
-</span><span id="Subquery-3695"><a href="#Subquery-3695"><span class="linenos">3695</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-3696"><a href="#Subquery-3696"><span class="linenos">3696</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Subquery-3697"><a href="#Subquery-3697"><span class="linenos">3697</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">is_star</span>
-</span><span id="Subquery-3698"><a href="#Subquery-3698"><span class="linenos">3698</span></a>
-</span><span id="Subquery-3699"><a href="#Subquery-3699"><span class="linenos">3699</span></a> <span class="nd">@property</span>
-</span><span id="Subquery-3700"><a href="#Subquery-3700"><span class="linenos">3700</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Subquery-3701"><a href="#Subquery-3701"><span class="linenos">3701</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
+</span><span id="Subquery-3684"><a href="#Subquery-3684"><span class="linenos">3684</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Subquery-3685"><a href="#Subquery-3685"><span class="linenos">3685</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the first non subquery.&quot;&quot;&quot;</span>
+</span><span id="Subquery-3686"><a href="#Subquery-3686"><span class="linenos">3686</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery-3687"><a href="#Subquery-3687"><span class="linenos">3687</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
+</span><span id="Subquery-3688"><a href="#Subquery-3688"><span class="linenos">3688</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Subquery-3689"><a href="#Subquery-3689"><span class="linenos">3689</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Subquery-3690"><a href="#Subquery-3690"><span class="linenos">3690</span></a>
+</span><span id="Subquery-3691"><a href="#Subquery-3691"><span class="linenos">3691</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subquery-3692"><a href="#Subquery-3692"><span class="linenos">3692</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery-3693"><a href="#Subquery-3693"><span class="linenos">3693</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
+</span><span id="Subquery-3694"><a href="#Subquery-3694"><span class="linenos">3694</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
+</span><span id="Subquery-3695"><a href="#Subquery-3695"><span class="linenos">3695</span></a> <span class="k">return</span> <span class="n">expression</span>
+</span><span id="Subquery-3696"><a href="#Subquery-3696"><span class="linenos">3696</span></a>
+</span><span id="Subquery-3697"><a href="#Subquery-3697"><span class="linenos">3697</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Subquery-3698"><a href="#Subquery-3698"><span class="linenos">3698</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subquery-3699"><a href="#Subquery-3699"><span class="linenos">3699</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Subquery-3700"><a href="#Subquery-3700"><span class="linenos">3700</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Subquery-3701"><a href="#Subquery-3701"><span class="linenos">3701</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subquery-3702"><a href="#Subquery-3702"><span class="linenos">3702</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Subquery-3703"><a href="#Subquery-3703"><span class="linenos">3703</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subquery-3704"><a href="#Subquery-3704"><span class="linenos">3704</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subquery-3705"><a href="#Subquery-3705"><span class="linenos">3705</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Subquery-3706"><a href="#Subquery-3706"><span class="linenos">3706</span></a> <span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Subquery-3707"><a href="#Subquery-3707"><span class="linenos">3707</span></a> <span class="k">return</span> <span class="n">this</span>
+</span><span id="Subquery-3708"><a href="#Subquery-3708"><span class="linenos">3708</span></a>
+</span><span id="Subquery-3709"><a href="#Subquery-3709"><span class="linenos">3709</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3710"><a href="#Subquery-3710"><span class="linenos">3710</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery-3711"><a href="#Subquery-3711"><span class="linenos">3711</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery-3712"><a href="#Subquery-3712"><span class="linenos">3712</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
+</span><span id="Subquery-3713"><a href="#Subquery-3713"><span class="linenos">3713</span></a>
+</span><span id="Subquery-3714"><a href="#Subquery-3714"><span class="linenos">3714</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
+</span><span id="Subquery-3715"><a href="#Subquery-3715"><span class="linenos">3715</span></a><span class="sd"> ^</span>
+</span><span id="Subquery-3716"><a href="#Subquery-3716"><span class="linenos">3716</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
+</span><span id="Subquery-3717"><a href="#Subquery-3717"><span class="linenos">3717</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery-3718"><a href="#Subquery-3718"><span class="linenos">3718</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</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="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+</span><span id="Subquery-3719"><a href="#Subquery-3719"><span class="linenos">3719</span></a>
+</span><span id="Subquery-3720"><a href="#Subquery-3720"><span class="linenos">3720</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3721"><a href="#Subquery-3721"><span class="linenos">3721</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery-3722"><a href="#Subquery-3722"><span class="linenos">3722</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">is_star</span>
+</span><span id="Subquery-3723"><a href="#Subquery-3723"><span class="linenos">3723</span></a>
+</span><span id="Subquery-3724"><a href="#Subquery-3724"><span class="linenos">3724</span></a> <span class="nd">@property</span>
+</span><span id="Subquery-3725"><a href="#Subquery-3725"><span class="linenos">3725</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Subquery-3726"><a href="#Subquery-3726"><span class="linenos">3726</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -49403,12 +49884,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery.unnest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-3659"><a href="#Subquery.unnest-3659"><span class="linenos">3659</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="Subquery.unnest-3660"><a href="#Subquery.unnest-3660"><span class="linenos">3660</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the first non subquery.&quot;&quot;&quot;</span>
-</span><span id="Subquery.unnest-3661"><a href="#Subquery.unnest-3661"><span class="linenos">3661</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery.unnest-3662"><a href="#Subquery.unnest-3662"><span class="linenos">3662</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
-</span><span id="Subquery.unnest-3663"><a href="#Subquery.unnest-3663"><span class="linenos">3663</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
-</span><span id="Subquery.unnest-3664"><a href="#Subquery.unnest-3664"><span class="linenos">3664</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-3684"><a href="#Subquery.unnest-3684"><span class="linenos">3684</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="Subquery.unnest-3685"><a href="#Subquery.unnest-3685"><span class="linenos">3685</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the first non subquery.&quot;&quot;&quot;</span>
+</span><span id="Subquery.unnest-3686"><a href="#Subquery.unnest-3686"><span class="linenos">3686</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery.unnest-3687"><a href="#Subquery.unnest-3687"><span class="linenos">3687</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
+</span><span id="Subquery.unnest-3688"><a href="#Subquery.unnest-3688"><span class="linenos">3688</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
+</span><span id="Subquery.unnest-3689"><a href="#Subquery.unnest-3689"><span class="linenos">3689</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -49428,11 +49909,11 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery.unwrap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unwrap-3666"><a href="#Subquery.unwrap-3666"><span class="linenos">3666</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subquery.unwrap-3667"><a href="#Subquery.unwrap-3667"><span class="linenos">3667</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
-</span><span id="Subquery.unwrap-3668"><a href="#Subquery.unwrap-3668"><span class="linenos">3668</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
-</span><span id="Subquery.unwrap-3669"><a href="#Subquery.unwrap-3669"><span class="linenos">3669</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
-</span><span id="Subquery.unwrap-3670"><a href="#Subquery.unwrap-3670"><span class="linenos">3670</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unwrap-3691"><a href="#Subquery.unwrap-3691"><span class="linenos">3691</span></a> <span class="k">def</span> <span class="nf">unwrap</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subquery.unwrap-3692"><a href="#Subquery.unwrap-3692"><span class="linenos">3692</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
+</span><span id="Subquery.unwrap-3693"><a href="#Subquery.unwrap-3693"><span class="linenos">3693</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">same_parent</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_wrapper</span><span class="p">:</span>
+</span><span id="Subquery.unwrap-3694"><a href="#Subquery.unwrap-3694"><span class="linenos">3694</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span>
+</span><span id="Subquery.unwrap-3695"><a href="#Subquery.unwrap-3695"><span class="linenos">3695</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -49450,17 +49931,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w
</div>
<a class="headerlink" href="#Subquery.select"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.select-3672"><a href="#Subquery.select-3672"><span class="linenos">3672</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
-</span><span id="Subquery.select-3673"><a href="#Subquery.select-3673"><span class="linenos">3673</span></a> <span class="bp">self</span><span class="p">,</span>
-</span><span id="Subquery.select-3674"><a href="#Subquery.select-3674"><span class="linenos">3674</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
-</span><span id="Subquery.select-3675"><a href="#Subquery.select-3675"><span class="linenos">3675</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Subquery.select-3676"><a href="#Subquery.select-3676"><span class="linenos">3676</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="Subquery.select-3677"><a href="#Subquery.select-3677"><span class="linenos">3677</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Subquery.select-3678"><a href="#Subquery.select-3678"><span class="linenos">3678</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="Subquery.select-3679"><a href="#Subquery.select-3679"><span class="linenos">3679</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
-</span><span id="Subquery.select-3680"><a href="#Subquery.select-3680"><span class="linenos">3680</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Subquery.select-3681"><a href="#Subquery.select-3681"><span class="linenos">3681</span></a> <span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="Subquery.select-3682"><a href="#Subquery.select-3682"><span class="linenos">3682</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.select-3697"><a href="#Subquery.select-3697"><span class="linenos">3697</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
+</span><span id="Subquery.select-3698"><a href="#Subquery.select-3698"><span class="linenos">3698</span></a> <span class="bp">self</span><span class="p">,</span>
+</span><span id="Subquery.select-3699"><a href="#Subquery.select-3699"><span class="linenos">3699</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
+</span><span id="Subquery.select-3700"><a href="#Subquery.select-3700"><span class="linenos">3700</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Subquery.select-3701"><a href="#Subquery.select-3701"><span class="linenos">3701</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="Subquery.select-3702"><a href="#Subquery.select-3702"><span class="linenos">3702</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Subquery.select-3703"><a href="#Subquery.select-3703"><span class="linenos">3703</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="Subquery.select-3704"><a href="#Subquery.select-3704"><span class="linenos">3704</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
+</span><span id="Subquery.select-3705"><a href="#Subquery.select-3705"><span class="linenos">3705</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Subquery.select-3706"><a href="#Subquery.select-3706"><span class="linenos">3706</span></a> <span class="n">this</span><span class="o">.</span><span class="n">unnest</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">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="Subquery.select-3707"><a href="#Subquery.select-3707"><span class="linenos">3707</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -49506,16 +49987,16 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Subquery.is_wrapper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.is_wrapper-3684"><a href="#Subquery.is_wrapper-3684"><span class="linenos">3684</span></a> <span class="nd">@property</span>
-</span><span id="Subquery.is_wrapper-3685"><a href="#Subquery.is_wrapper-3685"><span class="linenos">3685</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Subquery.is_wrapper-3686"><a href="#Subquery.is_wrapper-3686"><span class="linenos">3686</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Subquery.is_wrapper-3687"><a href="#Subquery.is_wrapper-3687"><span class="linenos">3687</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
-</span><span id="Subquery.is_wrapper-3688"><a href="#Subquery.is_wrapper-3688"><span class="linenos">3688</span></a>
-</span><span id="Subquery.is_wrapper-3689"><a href="#Subquery.is_wrapper-3689"><span class="linenos">3689</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
-</span><span id="Subquery.is_wrapper-3690"><a href="#Subquery.is_wrapper-3690"><span class="linenos">3690</span></a><span class="sd"> ^</span>
-</span><span id="Subquery.is_wrapper-3691"><a href="#Subquery.is_wrapper-3691"><span class="linenos">3691</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
-</span><span id="Subquery.is_wrapper-3692"><a href="#Subquery.is_wrapper-3692"><span class="linenos">3692</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Subquery.is_wrapper-3693"><a href="#Subquery.is_wrapper-3693"><span class="linenos">3693</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</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="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.is_wrapper-3709"><a href="#Subquery.is_wrapper-3709"><span class="linenos">3709</span></a> <span class="nd">@property</span>
+</span><span id="Subquery.is_wrapper-3710"><a href="#Subquery.is_wrapper-3710"><span class="linenos">3710</span></a> <span class="k">def</span> <span class="nf">is_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery.is_wrapper-3711"><a href="#Subquery.is_wrapper-3711"><span class="linenos">3711</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Subquery.is_wrapper-3712"><a href="#Subquery.is_wrapper-3712"><span class="linenos">3712</span></a><span class="sd"> Whether this Subquery acts as a simple wrapper around another expression.</span>
+</span><span id="Subquery.is_wrapper-3713"><a href="#Subquery.is_wrapper-3713"><span class="linenos">3713</span></a>
+</span><span id="Subquery.is_wrapper-3714"><a href="#Subquery.is_wrapper-3714"><span class="linenos">3714</span></a><span class="sd"> SELECT * FROM (((SELECT * FROM t)))</span>
+</span><span id="Subquery.is_wrapper-3715"><a href="#Subquery.is_wrapper-3715"><span class="linenos">3715</span></a><span class="sd"> ^</span>
+</span><span id="Subquery.is_wrapper-3716"><a href="#Subquery.is_wrapper-3716"><span class="linenos">3716</span></a><span class="sd"> This corresponds to a &quot;wrapper&quot; Subquery node</span>
+</span><span id="Subquery.is_wrapper-3717"><a href="#Subquery.is_wrapper-3717"><span class="linenos">3717</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Subquery.is_wrapper-3718"><a href="#Subquery.is_wrapper-3718"><span class="linenos">3718</span></a> <span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</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="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="o">!=</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -49537,9 +50018,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Subquery.is_star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.is_star-3695"><a href="#Subquery.is_star-3695"><span class="linenos">3695</span></a> <span class="nd">@property</span>
-</span><span id="Subquery.is_star-3696"><a href="#Subquery.is_star-3696"><span class="linenos">3696</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Subquery.is_star-3697"><a href="#Subquery.is_star-3697"><span class="linenos">3697</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">is_star</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.is_star-3720"><a href="#Subquery.is_star-3720"><span class="linenos">3720</span></a> <span class="nd">@property</span>
+</span><span id="Subquery.is_star-3721"><a href="#Subquery.is_star-3721"><span class="linenos">3721</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Subquery.is_star-3722"><a href="#Subquery.is_star-3722"><span class="linenos">3722</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">is_star</span>
</span></pre></div>
@@ -49557,9 +50038,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Subquery.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.output_name-3699"><a href="#Subquery.output_name-3699"><span class="linenos">3699</span></a> <span class="nd">@property</span>
-</span><span id="Subquery.output_name-3700"><a href="#Subquery.output_name-3700"><span class="linenos">3700</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Subquery.output_name-3701"><a href="#Subquery.output_name-3701"><span class="linenos">3701</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="Subquery.output_name-3724"><a href="#Subquery.output_name-3724"><span class="linenos">3724</span></a> <span class="nd">@property</span>
+</span><span id="Subquery.output_name-3725"><a href="#Subquery.output_name-3725"><span class="linenos">3725</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Subquery.output_name-3726"><a href="#Subquery.output_name-3726"><span class="linenos">3726</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -49700,19 +50181,19 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#TableSample"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-3704"><a href="#TableSample-3704"><span class="linenos">3704</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="TableSample-3705"><a href="#TableSample-3705"><span class="linenos">3705</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TableSample-3706"><a href="#TableSample-3706"><span class="linenos">3706</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3707"><a href="#TableSample-3707"><span class="linenos">3707</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="TableSample-3708"><a href="#TableSample-3708"><span class="linenos">3708</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3709"><a href="#TableSample-3709"><span class="linenos">3709</span></a> <span class="s2">&quot;bucket_numerator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3710"><a href="#TableSample-3710"><span class="linenos">3710</span></a> <span class="s2">&quot;bucket_denominator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3711"><a href="#TableSample-3711"><span class="linenos">3711</span></a> <span class="s2">&quot;bucket_field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3712"><a href="#TableSample-3712"><span class="linenos">3712</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3713"><a href="#TableSample-3713"><span class="linenos">3713</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3714"><a href="#TableSample-3714"><span class="linenos">3714</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3715"><a href="#TableSample-3715"><span class="linenos">3715</span></a> <span class="s2">&quot;seed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TableSample-3716"><a href="#TableSample-3716"><span class="linenos">3716</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-3729"><a href="#TableSample-3729"><span class="linenos">3729</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="TableSample-3730"><a href="#TableSample-3730"><span class="linenos">3730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TableSample-3731"><a href="#TableSample-3731"><span class="linenos">3731</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3732"><a href="#TableSample-3732"><span class="linenos">3732</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="TableSample-3733"><a href="#TableSample-3733"><span class="linenos">3733</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3734"><a href="#TableSample-3734"><span class="linenos">3734</span></a> <span class="s2">&quot;bucket_numerator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3735"><a href="#TableSample-3735"><span class="linenos">3735</span></a> <span class="s2">&quot;bucket_denominator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3736"><a href="#TableSample-3736"><span class="linenos">3736</span></a> <span class="s2">&quot;bucket_field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3737"><a href="#TableSample-3737"><span class="linenos">3737</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3738"><a href="#TableSample-3738"><span class="linenos">3738</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3739"><a href="#TableSample-3739"><span class="linenos">3739</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3740"><a href="#TableSample-3740"><span class="linenos">3740</span></a> <span class="s2">&quot;seed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TableSample-3741"><a href="#TableSample-3741"><span class="linenos">3741</span></a> <span class="p">}</span>
</span></pre></div>
@@ -49832,14 +50313,14 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Tag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-3719"><a href="#Tag-3719"><span class="linenos">3719</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Tag-3720"><a href="#Tag-3720"><span class="linenos">3720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tags are used for generating arbitrary sql like SELECT &lt;span&gt;x&lt;/span&gt;.&quot;&quot;&quot;</span>
-</span><span id="Tag-3721"><a href="#Tag-3721"><span class="linenos">3721</span></a>
-</span><span id="Tag-3722"><a href="#Tag-3722"><span class="linenos">3722</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Tag-3723"><a href="#Tag-3723"><span class="linenos">3723</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Tag-3724"><a href="#Tag-3724"><span class="linenos">3724</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Tag-3725"><a href="#Tag-3725"><span class="linenos">3725</span></a> <span class="s2">&quot;postfix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Tag-3726"><a href="#Tag-3726"><span class="linenos">3726</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-3744"><a href="#Tag-3744"><span class="linenos">3744</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Tag-3745"><a href="#Tag-3745"><span class="linenos">3745</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tags are used for generating arbitrary sql like SELECT &lt;span&gt;x&lt;/span&gt;.&quot;&quot;&quot;</span>
+</span><span id="Tag-3746"><a href="#Tag-3746"><span class="linenos">3746</span></a>
+</span><span id="Tag-3747"><a href="#Tag-3747"><span class="linenos">3747</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Tag-3748"><a href="#Tag-3748"><span class="linenos">3748</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Tag-3749"><a href="#Tag-3749"><span class="linenos">3749</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Tag-3750"><a href="#Tag-3750"><span class="linenos">3750</span></a> <span class="s2">&quot;postfix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Tag-3751"><a href="#Tag-3751"><span class="linenos">3751</span></a> <span class="p">}</span>
</span></pre></div>
@@ -49960,22 +50441,22 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Pivot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-3731"><a href="#Pivot-3731"><span class="linenos">3731</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Pivot-3732"><a href="#Pivot-3732"><span class="linenos">3732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Pivot-3733"><a href="#Pivot-3733"><span class="linenos">3733</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3734"><a href="#Pivot-3734"><span class="linenos">3734</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3735"><a href="#Pivot-3735"><span class="linenos">3735</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="Pivot-3736"><a href="#Pivot-3736"><span class="linenos">3736</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="Pivot-3737"><a href="#Pivot-3737"><span class="linenos">3737</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3738"><a href="#Pivot-3738"><span class="linenos">3738</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3739"><a href="#Pivot-3739"><span class="linenos">3739</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="Pivot-3740"><a href="#Pivot-3740"><span class="linenos">3740</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3741"><a href="#Pivot-3741"><span class="linenos">3741</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Pivot-3742"><a href="#Pivot-3742"><span class="linenos">3742</span></a> <span class="p">}</span>
-</span><span id="Pivot-3743"><a href="#Pivot-3743"><span class="linenos">3743</span></a>
-</span><span id="Pivot-3744"><a href="#Pivot-3744"><span class="linenos">3744</span></a> <span class="nd">@property</span>
-</span><span id="Pivot-3745"><a href="#Pivot-3745"><span class="linenos">3745</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Pivot-3746"><a href="#Pivot-3746"><span class="linenos">3746</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-3756"><a href="#Pivot-3756"><span class="linenos">3756</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Pivot-3757"><a href="#Pivot-3757"><span class="linenos">3757</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Pivot-3758"><a href="#Pivot-3758"><span class="linenos">3758</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3759"><a href="#Pivot-3759"><span class="linenos">3759</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3760"><a href="#Pivot-3760"><span class="linenos">3760</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="Pivot-3761"><a href="#Pivot-3761"><span class="linenos">3761</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="Pivot-3762"><a href="#Pivot-3762"><span class="linenos">3762</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3763"><a href="#Pivot-3763"><span class="linenos">3763</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3764"><a href="#Pivot-3764"><span class="linenos">3764</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="Pivot-3765"><a href="#Pivot-3765"><span class="linenos">3765</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3766"><a href="#Pivot-3766"><span class="linenos">3766</span></a> <span class="s2">&quot;include_nulls&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Pivot-3767"><a href="#Pivot-3767"><span class="linenos">3767</span></a> <span class="p">}</span>
+</span><span id="Pivot-3768"><a href="#Pivot-3768"><span class="linenos">3768</span></a>
+</span><span id="Pivot-3769"><a href="#Pivot-3769"><span class="linenos">3769</span></a> <span class="nd">@property</span>
+</span><span id="Pivot-3770"><a href="#Pivot-3770"><span class="linenos">3770</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Pivot-3771"><a href="#Pivot-3771"><span class="linenos">3771</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
</span></pre></div>
@@ -50003,9 +50484,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Pivot.unpivot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot.unpivot-3744"><a href="#Pivot.unpivot-3744"><span class="linenos">3744</span></a> <span class="nd">@property</span>
-</span><span id="Pivot.unpivot-3745"><a href="#Pivot.unpivot-3745"><span class="linenos">3745</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Pivot.unpivot-3746"><a href="#Pivot.unpivot-3746"><span class="linenos">3746</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot.unpivot-3769"><a href="#Pivot.unpivot-3769"><span class="linenos">3769</span></a> <span class="nd">@property</span>
+</span><span id="Pivot.unpivot-3770"><a href="#Pivot.unpivot-3770"><span class="linenos">3770</span></a> <span class="k">def</span> <span class="nf">unpivot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Pivot.unpivot-3771"><a href="#Pivot.unpivot-3771"><span class="linenos">3771</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unpivot&quot;</span><span class="p">))</span>
</span></pre></div>
@@ -50113,16 +50594,16 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Window"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Window-3749"><a href="#Window-3749"><span class="linenos">3749</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Window-3750"><a href="#Window-3750"><span class="linenos">3750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Window-3751"><a href="#Window-3751"><span class="linenos">3751</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="Window-3752"><a href="#Window-3752"><span class="linenos">3752</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3753"><a href="#Window-3753"><span class="linenos">3753</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3754"><a href="#Window-3754"><span class="linenos">3754</span></a> <span class="s2">&quot;spec&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3755"><a href="#Window-3755"><span class="linenos">3755</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3756"><a href="#Window-3756"><span class="linenos">3756</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3757"><a href="#Window-3757"><span class="linenos">3757</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Window-3758"><a href="#Window-3758"><span class="linenos">3758</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Window-3774"><a href="#Window-3774"><span class="linenos">3774</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Window-3775"><a href="#Window-3775"><span class="linenos">3775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Window-3776"><a href="#Window-3776"><span class="linenos">3776</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="Window-3777"><a href="#Window-3777"><span class="linenos">3777</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3778"><a href="#Window-3778"><span class="linenos">3778</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3779"><a href="#Window-3779"><span class="linenos">3779</span></a> <span class="s2">&quot;spec&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3780"><a href="#Window-3780"><span class="linenos">3780</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3781"><a href="#Window-3781"><span class="linenos">3781</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3782"><a href="#Window-3782"><span class="linenos">3782</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Window-3783"><a href="#Window-3783"><span class="linenos">3783</span></a> <span class="p">}</span>
</span></pre></div>
@@ -50242,14 +50723,14 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#WindowSpec"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-3761"><a href="#WindowSpec-3761"><span class="linenos">3761</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="WindowSpec-3762"><a href="#WindowSpec-3762"><span class="linenos">3762</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="WindowSpec-3763"><a href="#WindowSpec-3763"><span class="linenos">3763</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="WindowSpec-3764"><a href="#WindowSpec-3764"><span class="linenos">3764</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="WindowSpec-3765"><a href="#WindowSpec-3765"><span class="linenos">3765</span></a> <span class="s2">&quot;start_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="WindowSpec-3766"><a href="#WindowSpec-3766"><span class="linenos">3766</span></a> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="WindowSpec-3767"><a href="#WindowSpec-3767"><span class="linenos">3767</span></a> <span class="s2">&quot;end_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="WindowSpec-3768"><a href="#WindowSpec-3768"><span class="linenos">3768</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-3786"><a href="#WindowSpec-3786"><span class="linenos">3786</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="WindowSpec-3787"><a href="#WindowSpec-3787"><span class="linenos">3787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="WindowSpec-3788"><a href="#WindowSpec-3788"><span class="linenos">3788</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="WindowSpec-3789"><a href="#WindowSpec-3789"><span class="linenos">3789</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="WindowSpec-3790"><a href="#WindowSpec-3790"><span class="linenos">3790</span></a> <span class="s2">&quot;start_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="WindowSpec-3791"><a href="#WindowSpec-3791"><span class="linenos">3791</span></a> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="WindowSpec-3792"><a href="#WindowSpec-3792"><span class="linenos">3792</span></a> <span class="s2">&quot;end_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="WindowSpec-3793"><a href="#WindowSpec-3793"><span class="linenos">3793</span></a> <span class="p">}</span>
</span></pre></div>
@@ -50368,8 +50849,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#PreWhere"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PreWhere-3771"><a href="#PreWhere-3771"><span class="linenos">3771</span></a><span class="k">class</span> <span class="nc">PreWhere</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="PreWhere-3772"><a href="#PreWhere-3772"><span class="linenos">3772</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PreWhere-3796"><a href="#PreWhere-3796"><span class="linenos">3796</span></a><span class="k">class</span> <span class="nc">PreWhere</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="PreWhere-3797"><a href="#PreWhere-3797"><span class="linenos">3797</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50477,8 +50958,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Where"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Where-3775"><a href="#Where-3775"><span class="linenos">3775</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Where-3776"><a href="#Where-3776"><span class="linenos">3776</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Where-3800"><a href="#Where-3800"><span class="linenos">3800</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Where-3801"><a href="#Where-3801"><span class="linenos">3801</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -50586,16 +51067,16 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Star-3779"><a href="#Star-3779"><span class="linenos">3779</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="Star-3780"><a href="#Star-3780"><span class="linenos">3780</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;except&quot;</span><span class="p">:</span> <span class="kc">False</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="Star-3781"><a href="#Star-3781"><span class="linenos">3781</span></a>
-</span><span id="Star-3782"><a href="#Star-3782"><span class="linenos">3782</span></a> <span class="nd">@property</span>
-</span><span id="Star-3783"><a href="#Star-3783"><span class="linenos">3783</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="Star-3784"><a href="#Star-3784"><span class="linenos">3784</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
-</span><span id="Star-3785"><a href="#Star-3785"><span class="linenos">3785</span></a>
-</span><span id="Star-3786"><a href="#Star-3786"><span class="linenos">3786</span></a> <span class="nd">@property</span>
-</span><span id="Star-3787"><a href="#Star-3787"><span class="linenos">3787</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Star-3788"><a href="#Star-3788"><span class="linenos">3788</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Star-3804"><a href="#Star-3804"><span class="linenos">3804</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="Star-3805"><a href="#Star-3805"><span class="linenos">3805</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;except&quot;</span><span class="p">:</span> <span class="kc">False</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="Star-3806"><a href="#Star-3806"><span class="linenos">3806</span></a>
+</span><span id="Star-3807"><a href="#Star-3807"><span class="linenos">3807</span></a> <span class="nd">@property</span>
+</span><span id="Star-3808"><a href="#Star-3808"><span class="linenos">3808</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="Star-3809"><a href="#Star-3809"><span class="linenos">3809</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+</span><span id="Star-3810"><a href="#Star-3810"><span class="linenos">3810</span></a>
+</span><span id="Star-3811"><a href="#Star-3811"><span class="linenos">3811</span></a> <span class="nd">@property</span>
+</span><span id="Star-3812"><a href="#Star-3812"><span class="linenos">3812</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Star-3813"><a href="#Star-3813"><span class="linenos">3813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -50622,9 +51103,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Star.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Star.name-3782"><a href="#Star.name-3782"><span class="linenos">3782</span></a> <span class="nd">@property</span>
-</span><span id="Star.name-3783"><a href="#Star.name-3783"><span class="linenos">3783</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="Star.name-3784"><a href="#Star.name-3784"><span class="linenos">3784</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Star.name-3807"><a href="#Star.name-3807"><span class="linenos">3807</span></a> <span class="nd">@property</span>
+</span><span id="Star.name-3808"><a href="#Star.name-3808"><span class="linenos">3808</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="Star.name-3809"><a href="#Star.name-3809"><span class="linenos">3809</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
</span></pre></div>
@@ -50640,9 +51121,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Star.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Star.output_name-3786"><a href="#Star.output_name-3786"><span class="linenos">3786</span></a> <span class="nd">@property</span>
-</span><span id="Star.output_name-3787"><a href="#Star.output_name-3787"><span class="linenos">3787</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Star.output_name-3788"><a href="#Star.output_name-3788"><span class="linenos">3788</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Star.output_name-3811"><a href="#Star.output_name-3811"><span class="linenos">3811</span></a> <span class="nd">@property</span>
+</span><span id="Star.output_name-3812"><a href="#Star.output_name-3812"><span class="linenos">3812</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Star.output_name-3813"><a href="#Star.output_name-3813"><span class="linenos">3813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -50767,8 +51248,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Parameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-3791"><a href="#Parameter-3791"><span class="linenos">3791</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Parameter-3792"><a href="#Parameter-3792"><span class="linenos">3792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Parameter-3816"><a href="#Parameter-3816"><span class="linenos">3816</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Parameter-3817"><a href="#Parameter-3817"><span class="linenos">3817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -50887,8 +51368,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#SessionParameter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-3795"><a href="#SessionParameter-3795"><span class="linenos">3795</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="SessionParameter-3796"><a href="#SessionParameter-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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-3820"><a href="#SessionParameter-3820"><span class="linenos">3820</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="SessionParameter-3821"><a href="#SessionParameter-3821"><span class="linenos">3821</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -51007,12 +51488,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Placeholder"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-3799"><a href="#Placeholder-3799"><span class="linenos">3799</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Placeholder-3800"><a href="#Placeholder-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">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Placeholder-3801"><a href="#Placeholder-3801"><span class="linenos">3801</span></a>
-</span><span id="Placeholder-3802"><a href="#Placeholder-3802"><span class="linenos">3802</span></a> <span class="nd">@property</span>
-</span><span id="Placeholder-3803"><a href="#Placeholder-3803"><span class="linenos">3803</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="Placeholder-3804"><a href="#Placeholder-3804"><span class="linenos">3804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">&quot;?&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-3824"><a href="#Placeholder-3824"><span class="linenos">3824</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Placeholder-3825"><a href="#Placeholder-3825"><span class="linenos">3825</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Placeholder-3826"><a href="#Placeholder-3826"><span class="linenos">3826</span></a>
+</span><span id="Placeholder-3827"><a href="#Placeholder-3827"><span class="linenos">3827</span></a> <span class="nd">@property</span>
+</span><span id="Placeholder-3828"><a href="#Placeholder-3828"><span class="linenos">3828</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="Placeholder-3829"><a href="#Placeholder-3829"><span class="linenos">3829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">&quot;?&quot;</span>
</span></pre></div>
@@ -51039,9 +51520,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Placeholder.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder.name-3802"><a href="#Placeholder.name-3802"><span class="linenos">3802</span></a> <span class="nd">@property</span>
-</span><span id="Placeholder.name-3803"><a href="#Placeholder.name-3803"><span class="linenos">3803</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="Placeholder.name-3804"><a href="#Placeholder.name-3804"><span class="linenos">3804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">&quot;?&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder.name-3827"><a href="#Placeholder.name-3827"><span class="linenos">3827</span></a> <span class="nd">@property</span>
+</span><span id="Placeholder.name-3828"><a href="#Placeholder.name-3828"><span class="linenos">3828</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="Placeholder.name-3829"><a href="#Placeholder.name-3829"><span class="linenos">3829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">&quot;?&quot;</span>
</span></pre></div>
@@ -51148,12 +51629,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Null-3807"><a href="#Null-3807"><span class="linenos">3807</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Null-3808"><a href="#Null-3808"><span class="linenos">3808</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="Null-3809"><a href="#Null-3809"><span class="linenos">3809</span></a>
-</span><span id="Null-3810"><a href="#Null-3810"><span class="linenos">3810</span></a> <span class="nd">@property</span>
-</span><span id="Null-3811"><a href="#Null-3811"><span class="linenos">3811</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="Null-3812"><a href="#Null-3812"><span class="linenos">3812</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Null-3832"><a href="#Null-3832"><span class="linenos">3832</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Null-3833"><a href="#Null-3833"><span class="linenos">3833</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="Null-3834"><a href="#Null-3834"><span class="linenos">3834</span></a>
+</span><span id="Null-3835"><a href="#Null-3835"><span class="linenos">3835</span></a> <span class="nd">@property</span>
+</span><span id="Null-3836"><a href="#Null-3836"><span class="linenos">3836</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="Null-3837"><a href="#Null-3837"><span class="linenos">3837</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span></pre></div>
@@ -51180,9 +51661,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Null.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Null.name-3810"><a href="#Null.name-3810"><span class="linenos">3810</span></a> <span class="nd">@property</span>
-</span><span id="Null.name-3811"><a href="#Null.name-3811"><span class="linenos">3811</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="Null.name-3812"><a href="#Null.name-3812"><span class="linenos">3812</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Null.name-3835"><a href="#Null.name-3835"><span class="linenos">3835</span></a> <span class="nd">@property</span>
+</span><span id="Null.name-3836"><a href="#Null.name-3836"><span class="linenos">3836</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="Null.name-3837"><a href="#Null.name-3837"><span class="linenos">3837</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span></pre></div>
@@ -51289,8 +51770,8 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#Boolean"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-3815"><a href="#Boolean-3815"><span class="linenos">3815</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Boolean-3816"><a href="#Boolean-3816"><span class="linenos">3816</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-3840"><a href="#Boolean-3840"><span class="linenos">3840</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Boolean-3841"><a href="#Boolean-3841"><span class="linenos">3841</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -51398,12 +51879,12 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#DataTypeParam"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeParam-3819"><a href="#DataTypeParam-3819"><span class="linenos">3819</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DataTypeParam-3820"><a href="#DataTypeParam-3820"><span class="linenos">3820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="DataTypeParam-3821"><a href="#DataTypeParam-3821"><span class="linenos">3821</span></a>
-</span><span id="DataTypeParam-3822"><a href="#DataTypeParam-3822"><span class="linenos">3822</span></a> <span class="nd">@property</span>
-</span><span id="DataTypeParam-3823"><a href="#DataTypeParam-3823"><span class="linenos">3823</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="DataTypeParam-3824"><a href="#DataTypeParam-3824"><span class="linenos">3824</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeParam-3844"><a href="#DataTypeParam-3844"><span class="linenos">3844</span></a><span class="k">class</span> <span class="nc">DataTypeParam</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DataTypeParam-3845"><a href="#DataTypeParam-3845"><span class="linenos">3845</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="DataTypeParam-3846"><a href="#DataTypeParam-3846"><span class="linenos">3846</span></a>
+</span><span id="DataTypeParam-3847"><a href="#DataTypeParam-3847"><span class="linenos">3847</span></a> <span class="nd">@property</span>
+</span><span id="DataTypeParam-3848"><a href="#DataTypeParam-3848"><span class="linenos">3848</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="DataTypeParam-3849"><a href="#DataTypeParam-3849"><span class="linenos">3849</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></pre></div>
@@ -51430,9 +51911,9 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#DataTypeParam.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeParam.name-3822"><a href="#DataTypeParam.name-3822"><span class="linenos">3822</span></a> <span class="nd">@property</span>
-</span><span id="DataTypeParam.name-3823"><a href="#DataTypeParam.name-3823"><span class="linenos">3823</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="DataTypeParam.name-3824"><a href="#DataTypeParam.name-3824"><span class="linenos">3824</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeParam.name-3847"><a href="#DataTypeParam.name-3847"><span class="linenos">3847</span></a> <span class="nd">@property</span>
+</span><span id="DataTypeParam.name-3848"><a href="#DataTypeParam.name-3848"><span class="linenos">3848</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="DataTypeParam.name-3849"><a href="#DataTypeParam.name-3849"><span class="linenos">3849</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></pre></div>
@@ -51539,273 +52020,276 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#DataType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-3827"><a href="#DataType-3827"><span class="linenos">3827</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="DataType-3828"><a href="#DataType-3828"><span class="linenos">3828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3829"><a href="#DataType-3829"><span class="linenos">3829</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="DataType-3830"><a href="#DataType-3830"><span class="linenos">3830</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="DataType-3831"><a href="#DataType-3831"><span class="linenos">3831</span></a> <span class="s2">&quot;nested&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType-3832"><a href="#DataType-3832"><span class="linenos">3832</span></a> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType-3833"><a href="#DataType-3833"><span class="linenos">3833</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType-3834"><a href="#DataType-3834"><span class="linenos">3834</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="DataType-3835"><a href="#DataType-3835"><span class="linenos">3835</span></a> <span class="p">}</span>
-</span><span id="DataType-3836"><a href="#DataType-3836"><span class="linenos">3836</span></a>
-</span><span id="DataType-3837"><a href="#DataType-3837"><span class="linenos">3837</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="DataType-3838"><a href="#DataType-3838"><span class="linenos">3838</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3839"><a href="#DataType-3839"><span class="linenos">3839</span></a> <span class="n">AGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3840"><a href="#DataType-3840"><span class="linenos">3840</span></a> <span class="n">SIMPLEAGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3841"><a href="#DataType-3841"><span class="linenos">3841</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3842"><a href="#DataType-3842"><span class="linenos">3842</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3843"><a href="#DataType-3843"><span class="linenos">3843</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3844"><a href="#DataType-3844"><span class="linenos">3844</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3845"><a href="#DataType-3845"><span class="linenos">3845</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3846"><a href="#DataType-3846"><span class="linenos">3846</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3847"><a href="#DataType-3847"><span class="linenos">3847</span></a> <span class="n">BPCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3848"><a href="#DataType-3848"><span class="linenos">3848</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3849"><a href="#DataType-3849"><span class="linenos">3849</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3850"><a href="#DataType-3850"><span class="linenos">3850</span></a> <span class="n">DATE32</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3851"><a href="#DataType-3851"><span class="linenos">3851</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3852"><a href="#DataType-3852"><span class="linenos">3852</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3853"><a href="#DataType-3853"><span class="linenos">3853</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3854"><a href="#DataType-3854"><span class="linenos">3854</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3855"><a href="#DataType-3855"><span class="linenos">3855</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3856"><a href="#DataType-3856"><span class="linenos">3856</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3857"><a href="#DataType-3857"><span class="linenos">3857</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3858"><a href="#DataType-3858"><span class="linenos">3858</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3859"><a href="#DataType-3859"><span class="linenos">3859</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3860"><a href="#DataType-3860"><span class="linenos">3860</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3861"><a href="#DataType-3861"><span class="linenos">3861</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3862"><a href="#DataType-3862"><span class="linenos">3862</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3863"><a href="#DataType-3863"><span class="linenos">3863</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3864"><a href="#DataType-3864"><span class="linenos">3864</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3865"><a href="#DataType-3865"><span class="linenos">3865</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3866"><a href="#DataType-3866"><span class="linenos">3866</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3867"><a href="#DataType-3867"><span class="linenos">3867</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3868"><a href="#DataType-3868"><span class="linenos">3868</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3869"><a href="#DataType-3869"><span class="linenos">3869</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3870"><a href="#DataType-3870"><span class="linenos">3870</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3871"><a href="#DataType-3871"><span class="linenos">3871</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3872"><a href="#DataType-3872"><span class="linenos">3872</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3873"><a href="#DataType-3873"><span class="linenos">3873</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3874"><a href="#DataType-3874"><span class="linenos">3874</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3875"><a href="#DataType-3875"><span class="linenos">3875</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3876"><a href="#DataType-3876"><span class="linenos">3876</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3877"><a href="#DataType-3877"><span class="linenos">3877</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3878"><a href="#DataType-3878"><span class="linenos">3878</span></a> <span class="n">IPV4</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3879"><a href="#DataType-3879"><span class="linenos">3879</span></a> <span class="n">IPV6</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3880"><a href="#DataType-3880"><span class="linenos">3880</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3881"><a href="#DataType-3881"><span class="linenos">3881</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3882"><a href="#DataType-3882"><span class="linenos">3882</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3883"><a href="#DataType-3883"><span class="linenos">3883</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3884"><a href="#DataType-3884"><span class="linenos">3884</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3885"><a href="#DataType-3885"><span class="linenos">3885</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3886"><a href="#DataType-3886"><span class="linenos">3886</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3887"><a href="#DataType-3887"><span class="linenos">3887</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3888"><a href="#DataType-3888"><span class="linenos">3888</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3889"><a href="#DataType-3889"><span class="linenos">3889</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3890"><a href="#DataType-3890"><span class="linenos">3890</span></a> <span class="n">NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3891"><a href="#DataType-3891"><span class="linenos">3891</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3892"><a href="#DataType-3892"><span class="linenos">3892</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3893"><a href="#DataType-3893"><span class="linenos">3893</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3894"><a href="#DataType-3894"><span class="linenos">3894</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3895"><a href="#DataType-3895"><span class="linenos">3895</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3896"><a href="#DataType-3896"><span class="linenos">3896</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3897"><a href="#DataType-3897"><span class="linenos">3897</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3898"><a href="#DataType-3898"><span class="linenos">3898</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3899"><a href="#DataType-3899"><span class="linenos">3899</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3900"><a href="#DataType-3900"><span class="linenos">3900</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3901"><a href="#DataType-3901"><span class="linenos">3901</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3902"><a href="#DataType-3902"><span class="linenos">3902</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3903"><a href="#DataType-3903"><span class="linenos">3903</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3904"><a href="#DataType-3904"><span class="linenos">3904</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3905"><a href="#DataType-3905"><span class="linenos">3905</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3906"><a href="#DataType-3906"><span class="linenos">3906</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3907"><a href="#DataType-3907"><span class="linenos">3907</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3908"><a href="#DataType-3908"><span class="linenos">3908</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3909"><a href="#DataType-3909"><span class="linenos">3909</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3910"><a href="#DataType-3910"><span class="linenos">3910</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3911"><a href="#DataType-3911"><span class="linenos">3911</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3912"><a href="#DataType-3912"><span class="linenos">3912</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3913"><a href="#DataType-3913"><span class="linenos">3913</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3914"><a href="#DataType-3914"><span class="linenos">3914</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3915"><a href="#DataType-3915"><span class="linenos">3915</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3916"><a href="#DataType-3916"><span class="linenos">3916</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3917"><a href="#DataType-3917"><span class="linenos">3917</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3918"><a href="#DataType-3918"><span class="linenos">3918</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3919"><a href="#DataType-3919"><span class="linenos">3919</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3920"><a href="#DataType-3920"><span class="linenos">3920</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3921"><a href="#DataType-3921"><span class="linenos">3921</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3922"><a href="#DataType-3922"><span class="linenos">3922</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3923"><a href="#DataType-3923"><span class="linenos">3923</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3924"><a href="#DataType-3924"><span class="linenos">3924</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3925"><a href="#DataType-3925"><span class="linenos">3925</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3926"><a href="#DataType-3926"><span class="linenos">3926</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3927"><a href="#DataType-3927"><span class="linenos">3927</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3928"><a href="#DataType-3928"><span class="linenos">3928</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3929"><a href="#DataType-3929"><span class="linenos">3929</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3930"><a href="#DataType-3930"><span class="linenos">3930</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-3931"><a href="#DataType-3931"><span class="linenos">3931</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
-</span><span id="DataType-3932"><a href="#DataType-3932"><span class="linenos">3932</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3933"><a href="#DataType-3933"><span class="linenos">3933</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3934"><a href="#DataType-3934"><span class="linenos">3934</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3935"><a href="#DataType-3935"><span class="linenos">3935</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3936"><a href="#DataType-3936"><span class="linenos">3936</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3937"><a href="#DataType-3937"><span class="linenos">3937</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3938"><a href="#DataType-3938"><span class="linenos">3938</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3939"><a href="#DataType-3939"><span class="linenos">3939</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType-3940"><a href="#DataType-3940"><span class="linenos">3940</span></a>
-</span><span id="DataType-3941"><a href="#DataType-3941"><span class="linenos">3941</span></a> <span class="n">STRUCT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3942"><a href="#DataType-3942"><span class="linenos">3942</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NESTED</span><span class="p">,</span>
-</span><span id="DataType-3943"><a href="#DataType-3943"><span class="linenos">3943</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span>
-</span><span id="DataType-3944"><a href="#DataType-3944"><span class="linenos">3944</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span>
-</span><span id="DataType-3945"><a href="#DataType-3945"><span class="linenos">3945</span></a> <span class="p">}</span>
-</span><span id="DataType-3946"><a href="#DataType-3946"><span class="linenos">3946</span></a>
-</span><span id="DataType-3947"><a href="#DataType-3947"><span class="linenos">3947</span></a> <span class="n">NESTED_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3948"><a href="#DataType-3948"><span class="linenos">3948</span></a> <span class="o">*</span><span class="n">STRUCT_TYPES</span><span class="p">,</span>
-</span><span id="DataType-3949"><a href="#DataType-3949"><span class="linenos">3949</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span>
-</span><span id="DataType-3950"><a href="#DataType-3950"><span class="linenos">3950</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span>
-</span><span id="DataType-3951"><a href="#DataType-3951"><span class="linenos">3951</span></a> <span class="p">}</span>
-</span><span id="DataType-3952"><a href="#DataType-3952"><span class="linenos">3952</span></a>
-</span><span id="DataType-3953"><a href="#DataType-3953"><span class="linenos">3953</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3954"><a href="#DataType-3954"><span class="linenos">3954</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
-</span><span id="DataType-3955"><a href="#DataType-3955"><span class="linenos">3955</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
-</span><span id="DataType-3956"><a href="#DataType-3956"><span class="linenos">3956</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
-</span><span id="DataType-3957"><a href="#DataType-3957"><span class="linenos">3957</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
-</span><span id="DataType-3958"><a href="#DataType-3958"><span class="linenos">3958</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
-</span><span id="DataType-3959"><a href="#DataType-3959"><span class="linenos">3959</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NAME</span><span class="p">,</span>
-</span><span id="DataType-3960"><a href="#DataType-3960"><span class="linenos">3960</span></a> <span class="p">}</span>
-</span><span id="DataType-3961"><a href="#DataType-3961"><span class="linenos">3961</span></a>
-</span><span id="DataType-3962"><a href="#DataType-3962"><span class="linenos">3962</span></a> <span class="n">SIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3963"><a href="#DataType-3963"><span class="linenos">3963</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
-</span><span id="DataType-3964"><a href="#DataType-3964"><span class="linenos">3964</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
-</span><span id="DataType-3965"><a href="#DataType-3965"><span class="linenos">3965</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
-</span><span id="DataType-3966"><a href="#DataType-3966"><span class="linenos">3966</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
-</span><span id="DataType-3967"><a href="#DataType-3967"><span class="linenos">3967</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMINT</span><span class="p">,</span>
-</span><span id="DataType-3968"><a href="#DataType-3968"><span class="linenos">3968</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
-</span><span id="DataType-3969"><a href="#DataType-3969"><span class="linenos">3969</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
-</span><span id="DataType-3970"><a href="#DataType-3970"><span class="linenos">3970</span></a> <span class="p">}</span>
-</span><span id="DataType-3971"><a href="#DataType-3971"><span class="linenos">3971</span></a>
-</span><span id="DataType-3972"><a href="#DataType-3972"><span class="linenos">3972</span></a> <span class="n">UNSIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3973"><a href="#DataType-3973"><span class="linenos">3973</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span>
-</span><span id="DataType-3974"><a href="#DataType-3974"><span class="linenos">3974</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span>
-</span><span id="DataType-3975"><a href="#DataType-3975"><span class="linenos">3975</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT128</span><span class="p">,</span>
-</span><span id="DataType-3976"><a href="#DataType-3976"><span class="linenos">3976</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT256</span><span class="p">,</span>
-</span><span id="DataType-3977"><a href="#DataType-3977"><span class="linenos">3977</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UMEDIUMINT</span><span class="p">,</span>
-</span><span id="DataType-3978"><a href="#DataType-3978"><span class="linenos">3978</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span>
-</span><span id="DataType-3979"><a href="#DataType-3979"><span class="linenos">3979</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span>
-</span><span id="DataType-3980"><a href="#DataType-3980"><span class="linenos">3980</span></a> <span class="p">}</span>
-</span><span id="DataType-3981"><a href="#DataType-3981"><span class="linenos">3981</span></a>
-</span><span id="DataType-3982"><a href="#DataType-3982"><span class="linenos">3982</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3983"><a href="#DataType-3983"><span class="linenos">3983</span></a> <span class="o">*</span><span class="n">SIGNED_INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="DataType-3984"><a href="#DataType-3984"><span class="linenos">3984</span></a> <span class="o">*</span><span class="n">UNSIGNED_INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="DataType-3985"><a href="#DataType-3985"><span class="linenos">3985</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span>
-</span><span id="DataType-3986"><a href="#DataType-3986"><span class="linenos">3986</span></a> <span class="p">}</span>
-</span><span id="DataType-3987"><a href="#DataType-3987"><span class="linenos">3987</span></a>
-</span><span id="DataType-3988"><a href="#DataType-3988"><span class="linenos">3988</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3989"><a href="#DataType-3989"><span class="linenos">3989</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
-</span><span id="DataType-3990"><a href="#DataType-3990"><span class="linenos">3990</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
-</span><span id="DataType-3991"><a href="#DataType-3991"><span class="linenos">3991</span></a> <span class="p">}</span>
-</span><span id="DataType-3992"><a href="#DataType-3992"><span class="linenos">3992</span></a>
-</span><span id="DataType-3993"><a href="#DataType-3993"><span class="linenos">3993</span></a> <span class="n">REAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-3994"><a href="#DataType-3994"><span class="linenos">3994</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
-</span><span id="DataType-3995"><a href="#DataType-3995"><span class="linenos">3995</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGDECIMAL</span><span class="p">,</span>
-</span><span id="DataType-3996"><a href="#DataType-3996"><span class="linenos">3996</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span>
-</span><span id="DataType-3997"><a href="#DataType-3997"><span class="linenos">3997</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span>
-</span><span id="DataType-3998"><a href="#DataType-3998"><span class="linenos">3998</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span>
-</span><span id="DataType-3999"><a href="#DataType-3999"><span class="linenos">3999</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UDECIMAL</span><span class="p">,</span>
-</span><span id="DataType-4000"><a href="#DataType-4000"><span class="linenos">4000</span></a> <span class="p">}</span>
-</span><span id="DataType-4001"><a href="#DataType-4001"><span class="linenos">4001</span></a>
-</span><span id="DataType-4002"><a href="#DataType-4002"><span class="linenos">4002</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-4003"><a href="#DataType-4003"><span class="linenos">4003</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
-</span><span id="DataType-4004"><a href="#DataType-4004"><span class="linenos">4004</span></a> <span class="o">*</span><span class="n">REAL_TYPES</span><span class="p">,</span>
-</span><span id="DataType-4005"><a href="#DataType-4005"><span class="linenos">4005</span></a> <span class="p">}</span>
-</span><span id="DataType-4006"><a href="#DataType-4006"><span class="linenos">4006</span></a>
-</span><span id="DataType-4007"><a href="#DataType-4007"><span class="linenos">4007</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="DataType-4008"><a href="#DataType-4008"><span class="linenos">4008</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
-</span><span id="DataType-4009"><a href="#DataType-4009"><span class="linenos">4009</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE32</span><span class="p">,</span>
-</span><span id="DataType-4010"><a href="#DataType-4010"><span class="linenos">4010</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
-</span><span id="DataType-4011"><a href="#DataType-4011"><span class="linenos">4011</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
-</span><span id="DataType-4012"><a href="#DataType-4012"><span class="linenos">4012</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
-</span><span id="DataType-4013"><a href="#DataType-4013"><span class="linenos">4013</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
-</span><span id="DataType-4014"><a href="#DataType-4014"><span class="linenos">4014</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
-</span><span id="DataType-4015"><a href="#DataType-4015"><span class="linenos">4015</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
-</span><span id="DataType-4016"><a href="#DataType-4016"><span class="linenos">4016</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
-</span><span id="DataType-4017"><a href="#DataType-4017"><span class="linenos">4017</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
-</span><span id="DataType-4018"><a href="#DataType-4018"><span class="linenos">4018</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
-</span><span id="DataType-4019"><a href="#DataType-4019"><span class="linenos">4019</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
-</span><span id="DataType-4020"><a href="#DataType-4020"><span class="linenos">4020</span></a> <span class="p">}</span>
-</span><span id="DataType-4021"><a href="#DataType-4021"><span class="linenos">4021</span></a>
-</span><span id="DataType-4022"><a href="#DataType-4022"><span class="linenos">4022</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType-4023"><a href="#DataType-4023"><span class="linenos">4023</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType-4024"><a href="#DataType-4024"><span class="linenos">4024</span></a> <span class="bp">cls</span><span class="p">,</span>
-</span><span id="DataType-4025"><a href="#DataType-4025"><span class="linenos">4025</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="DataType-4026"><a href="#DataType-4026"><span class="linenos">4026</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="DataType-4027"><a href="#DataType-4027"><span class="linenos">4027</span></a> <span class="n">udt</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="DataType-4028"><a href="#DataType-4028"><span class="linenos">4028</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="DataType-4029"><a href="#DataType-4029"><span class="linenos">4029</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="DataType-4030"><a href="#DataType-4030"><span class="linenos">4030</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="DataType-4031"><a href="#DataType-4031"><span class="linenos">4031</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType-4032"><a href="#DataType-4032"><span class="linenos">4032</span></a><span class="sd"> Constructs a DataType object.</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-3852"><a href="#DataType-3852"><span class="linenos">3852</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="DataType-3853"><a href="#DataType-3853"><span class="linenos">3853</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3854"><a href="#DataType-3854"><span class="linenos">3854</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="DataType-3855"><a href="#DataType-3855"><span class="linenos">3855</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="DataType-3856"><a href="#DataType-3856"><span class="linenos">3856</span></a> <span class="s2">&quot;nested&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType-3857"><a href="#DataType-3857"><span class="linenos">3857</span></a> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType-3858"><a href="#DataType-3858"><span class="linenos">3858</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType-3859"><a href="#DataType-3859"><span class="linenos">3859</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="DataType-3860"><a href="#DataType-3860"><span class="linenos">3860</span></a> <span class="p">}</span>
+</span><span id="DataType-3861"><a href="#DataType-3861"><span class="linenos">3861</span></a>
+</span><span id="DataType-3862"><a href="#DataType-3862"><span class="linenos">3862</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="DataType-3863"><a href="#DataType-3863"><span class="linenos">3863</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3864"><a href="#DataType-3864"><span class="linenos">3864</span></a> <span class="n">AGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3865"><a href="#DataType-3865"><span class="linenos">3865</span></a> <span class="n">SIMPLEAGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3866"><a href="#DataType-3866"><span class="linenos">3866</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3867"><a href="#DataType-3867"><span class="linenos">3867</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3868"><a href="#DataType-3868"><span class="linenos">3868</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3869"><a href="#DataType-3869"><span class="linenos">3869</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3870"><a href="#DataType-3870"><span class="linenos">3870</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3871"><a href="#DataType-3871"><span class="linenos">3871</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3872"><a href="#DataType-3872"><span class="linenos">3872</span></a> <span class="n">BPCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3873"><a href="#DataType-3873"><span class="linenos">3873</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3874"><a href="#DataType-3874"><span class="linenos">3874</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3875"><a href="#DataType-3875"><span class="linenos">3875</span></a> <span class="n">DATE32</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3876"><a href="#DataType-3876"><span class="linenos">3876</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3877"><a href="#DataType-3877"><span class="linenos">3877</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3878"><a href="#DataType-3878"><span class="linenos">3878</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3879"><a href="#DataType-3879"><span class="linenos">3879</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3880"><a href="#DataType-3880"><span class="linenos">3880</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3881"><a href="#DataType-3881"><span class="linenos">3881</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3882"><a href="#DataType-3882"><span class="linenos">3882</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3883"><a href="#DataType-3883"><span class="linenos">3883</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3884"><a href="#DataType-3884"><span class="linenos">3884</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3885"><a href="#DataType-3885"><span class="linenos">3885</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3886"><a href="#DataType-3886"><span class="linenos">3886</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3887"><a href="#DataType-3887"><span class="linenos">3887</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3888"><a href="#DataType-3888"><span class="linenos">3888</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3889"><a href="#DataType-3889"><span class="linenos">3889</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3890"><a href="#DataType-3890"><span class="linenos">3890</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3891"><a href="#DataType-3891"><span class="linenos">3891</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3892"><a href="#DataType-3892"><span class="linenos">3892</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3893"><a href="#DataType-3893"><span class="linenos">3893</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3894"><a href="#DataType-3894"><span class="linenos">3894</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3895"><a href="#DataType-3895"><span class="linenos">3895</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3896"><a href="#DataType-3896"><span class="linenos">3896</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3897"><a href="#DataType-3897"><span class="linenos">3897</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3898"><a href="#DataType-3898"><span class="linenos">3898</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3899"><a href="#DataType-3899"><span class="linenos">3899</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3900"><a href="#DataType-3900"><span class="linenos">3900</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3901"><a href="#DataType-3901"><span class="linenos">3901</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3902"><a href="#DataType-3902"><span class="linenos">3902</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3903"><a href="#DataType-3903"><span class="linenos">3903</span></a> <span class="n">IPV4</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3904"><a href="#DataType-3904"><span class="linenos">3904</span></a> <span class="n">IPV6</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3905"><a href="#DataType-3905"><span class="linenos">3905</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3906"><a href="#DataType-3906"><span class="linenos">3906</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3907"><a href="#DataType-3907"><span class="linenos">3907</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3908"><a href="#DataType-3908"><span class="linenos">3908</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3909"><a href="#DataType-3909"><span class="linenos">3909</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3910"><a href="#DataType-3910"><span class="linenos">3910</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3911"><a href="#DataType-3911"><span class="linenos">3911</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3912"><a href="#DataType-3912"><span class="linenos">3912</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3913"><a href="#DataType-3913"><span class="linenos">3913</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3914"><a href="#DataType-3914"><span class="linenos">3914</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3915"><a href="#DataType-3915"><span class="linenos">3915</span></a> <span class="n">NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3916"><a href="#DataType-3916"><span class="linenos">3916</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3917"><a href="#DataType-3917"><span class="linenos">3917</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3918"><a href="#DataType-3918"><span class="linenos">3918</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3919"><a href="#DataType-3919"><span class="linenos">3919</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3920"><a href="#DataType-3920"><span class="linenos">3920</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3921"><a href="#DataType-3921"><span class="linenos">3921</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3922"><a href="#DataType-3922"><span class="linenos">3922</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3923"><a href="#DataType-3923"><span class="linenos">3923</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3924"><a href="#DataType-3924"><span class="linenos">3924</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3925"><a href="#DataType-3925"><span class="linenos">3925</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3926"><a href="#DataType-3926"><span class="linenos">3926</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3927"><a href="#DataType-3927"><span class="linenos">3927</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3928"><a href="#DataType-3928"><span class="linenos">3928</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3929"><a href="#DataType-3929"><span class="linenos">3929</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3930"><a href="#DataType-3930"><span class="linenos">3930</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3931"><a href="#DataType-3931"><span class="linenos">3931</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3932"><a href="#DataType-3932"><span class="linenos">3932</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3933"><a href="#DataType-3933"><span class="linenos">3933</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3934"><a href="#DataType-3934"><span class="linenos">3934</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3935"><a href="#DataType-3935"><span class="linenos">3935</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3936"><a href="#DataType-3936"><span class="linenos">3936</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3937"><a href="#DataType-3937"><span class="linenos">3937</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3938"><a href="#DataType-3938"><span class="linenos">3938</span></a> <span class="n">TIMESTAMPNTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3939"><a href="#DataType-3939"><span class="linenos">3939</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3940"><a href="#DataType-3940"><span class="linenos">3940</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3941"><a href="#DataType-3941"><span class="linenos">3941</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3942"><a href="#DataType-3942"><span class="linenos">3942</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3943"><a href="#DataType-3943"><span class="linenos">3943</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3944"><a href="#DataType-3944"><span class="linenos">3944</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3945"><a href="#DataType-3945"><span class="linenos">3945</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3946"><a href="#DataType-3946"><span class="linenos">3946</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3947"><a href="#DataType-3947"><span class="linenos">3947</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3948"><a href="#DataType-3948"><span class="linenos">3948</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3949"><a href="#DataType-3949"><span class="linenos">3949</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3950"><a href="#DataType-3950"><span class="linenos">3950</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3951"><a href="#DataType-3951"><span class="linenos">3951</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3952"><a href="#DataType-3952"><span class="linenos">3952</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3953"><a href="#DataType-3953"><span class="linenos">3953</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3954"><a href="#DataType-3954"><span class="linenos">3954</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3955"><a href="#DataType-3955"><span class="linenos">3955</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3956"><a href="#DataType-3956"><span class="linenos">3956</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-3957"><a href="#DataType-3957"><span class="linenos">3957</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
+</span><span id="DataType-3958"><a href="#DataType-3958"><span class="linenos">3958</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3959"><a href="#DataType-3959"><span class="linenos">3959</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3960"><a href="#DataType-3960"><span class="linenos">3960</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3961"><a href="#DataType-3961"><span class="linenos">3961</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3962"><a href="#DataType-3962"><span class="linenos">3962</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3963"><a href="#DataType-3963"><span class="linenos">3963</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3964"><a href="#DataType-3964"><span class="linenos">3964</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3965"><a href="#DataType-3965"><span class="linenos">3965</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3966"><a href="#DataType-3966"><span class="linenos">3966</span></a> <span class="n">TDIGEST</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType-3967"><a href="#DataType-3967"><span class="linenos">3967</span></a>
+</span><span id="DataType-3968"><a href="#DataType-3968"><span class="linenos">3968</span></a> <span class="n">STRUCT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3969"><a href="#DataType-3969"><span class="linenos">3969</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NESTED</span><span class="p">,</span>
+</span><span id="DataType-3970"><a href="#DataType-3970"><span class="linenos">3970</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span>
+</span><span id="DataType-3971"><a href="#DataType-3971"><span class="linenos">3971</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span>
+</span><span id="DataType-3972"><a href="#DataType-3972"><span class="linenos">3972</span></a> <span class="p">}</span>
+</span><span id="DataType-3973"><a href="#DataType-3973"><span class="linenos">3973</span></a>
+</span><span id="DataType-3974"><a href="#DataType-3974"><span class="linenos">3974</span></a> <span class="n">NESTED_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3975"><a href="#DataType-3975"><span class="linenos">3975</span></a> <span class="o">*</span><span class="n">STRUCT_TYPES</span><span class="p">,</span>
+</span><span id="DataType-3976"><a href="#DataType-3976"><span class="linenos">3976</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span>
+</span><span id="DataType-3977"><a href="#DataType-3977"><span class="linenos">3977</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span>
+</span><span id="DataType-3978"><a href="#DataType-3978"><span class="linenos">3978</span></a> <span class="p">}</span>
+</span><span id="DataType-3979"><a href="#DataType-3979"><span class="linenos">3979</span></a>
+</span><span id="DataType-3980"><a href="#DataType-3980"><span class="linenos">3980</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3981"><a href="#DataType-3981"><span class="linenos">3981</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
+</span><span id="DataType-3982"><a href="#DataType-3982"><span class="linenos">3982</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
+</span><span id="DataType-3983"><a href="#DataType-3983"><span class="linenos">3983</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
+</span><span id="DataType-3984"><a href="#DataType-3984"><span class="linenos">3984</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
+</span><span id="DataType-3985"><a href="#DataType-3985"><span class="linenos">3985</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
+</span><span id="DataType-3986"><a href="#DataType-3986"><span class="linenos">3986</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NAME</span><span class="p">,</span>
+</span><span id="DataType-3987"><a href="#DataType-3987"><span class="linenos">3987</span></a> <span class="p">}</span>
+</span><span id="DataType-3988"><a href="#DataType-3988"><span class="linenos">3988</span></a>
+</span><span id="DataType-3989"><a href="#DataType-3989"><span class="linenos">3989</span></a> <span class="n">SIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-3990"><a href="#DataType-3990"><span class="linenos">3990</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
+</span><span id="DataType-3991"><a href="#DataType-3991"><span class="linenos">3991</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
+</span><span id="DataType-3992"><a href="#DataType-3992"><span class="linenos">3992</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
+</span><span id="DataType-3993"><a href="#DataType-3993"><span class="linenos">3993</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
+</span><span id="DataType-3994"><a href="#DataType-3994"><span class="linenos">3994</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMINT</span><span class="p">,</span>
+</span><span id="DataType-3995"><a href="#DataType-3995"><span class="linenos">3995</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
+</span><span id="DataType-3996"><a href="#DataType-3996"><span class="linenos">3996</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
+</span><span id="DataType-3997"><a href="#DataType-3997"><span class="linenos">3997</span></a> <span class="p">}</span>
+</span><span id="DataType-3998"><a href="#DataType-3998"><span class="linenos">3998</span></a>
+</span><span id="DataType-3999"><a href="#DataType-3999"><span class="linenos">3999</span></a> <span class="n">UNSIGNED_INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-4000"><a href="#DataType-4000"><span class="linenos">4000</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span>
+</span><span id="DataType-4001"><a href="#DataType-4001"><span class="linenos">4001</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span>
+</span><span id="DataType-4002"><a href="#DataType-4002"><span class="linenos">4002</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT128</span><span class="p">,</span>
+</span><span id="DataType-4003"><a href="#DataType-4003"><span class="linenos">4003</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UINT256</span><span class="p">,</span>
+</span><span id="DataType-4004"><a href="#DataType-4004"><span class="linenos">4004</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UMEDIUMINT</span><span class="p">,</span>
+</span><span id="DataType-4005"><a href="#DataType-4005"><span class="linenos">4005</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span>
+</span><span id="DataType-4006"><a href="#DataType-4006"><span class="linenos">4006</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span>
+</span><span id="DataType-4007"><a href="#DataType-4007"><span class="linenos">4007</span></a> <span class="p">}</span>
+</span><span id="DataType-4008"><a href="#DataType-4008"><span class="linenos">4008</span></a>
+</span><span id="DataType-4009"><a href="#DataType-4009"><span class="linenos">4009</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-4010"><a href="#DataType-4010"><span class="linenos">4010</span></a> <span class="o">*</span><span class="n">SIGNED_INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="DataType-4011"><a href="#DataType-4011"><span class="linenos">4011</span></a> <span class="o">*</span><span class="n">UNSIGNED_INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="DataType-4012"><a href="#DataType-4012"><span class="linenos">4012</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span>
+</span><span id="DataType-4013"><a href="#DataType-4013"><span class="linenos">4013</span></a> <span class="p">}</span>
+</span><span id="DataType-4014"><a href="#DataType-4014"><span class="linenos">4014</span></a>
+</span><span id="DataType-4015"><a href="#DataType-4015"><span class="linenos">4015</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-4016"><a href="#DataType-4016"><span class="linenos">4016</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
+</span><span id="DataType-4017"><a href="#DataType-4017"><span class="linenos">4017</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
+</span><span id="DataType-4018"><a href="#DataType-4018"><span class="linenos">4018</span></a> <span class="p">}</span>
+</span><span id="DataType-4019"><a href="#DataType-4019"><span class="linenos">4019</span></a>
+</span><span id="DataType-4020"><a href="#DataType-4020"><span class="linenos">4020</span></a> <span class="n">REAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-4021"><a href="#DataType-4021"><span class="linenos">4021</span></a> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">,</span>
+</span><span id="DataType-4022"><a href="#DataType-4022"><span class="linenos">4022</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGDECIMAL</span><span class="p">,</span>
+</span><span id="DataType-4023"><a href="#DataType-4023"><span class="linenos">4023</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span>
+</span><span id="DataType-4024"><a href="#DataType-4024"><span class="linenos">4024</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span>
+</span><span id="DataType-4025"><a href="#DataType-4025"><span class="linenos">4025</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span>
+</span><span id="DataType-4026"><a href="#DataType-4026"><span class="linenos">4026</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">UDECIMAL</span><span class="p">,</span>
+</span><span id="DataType-4027"><a href="#DataType-4027"><span class="linenos">4027</span></a> <span class="p">}</span>
+</span><span id="DataType-4028"><a href="#DataType-4028"><span class="linenos">4028</span></a>
+</span><span id="DataType-4029"><a href="#DataType-4029"><span class="linenos">4029</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-4030"><a href="#DataType-4030"><span class="linenos">4030</span></a> <span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span>
+</span><span id="DataType-4031"><a href="#DataType-4031"><span class="linenos">4031</span></a> <span class="o">*</span><span class="n">REAL_TYPES</span><span class="p">,</span>
+</span><span id="DataType-4032"><a href="#DataType-4032"><span class="linenos">4032</span></a> <span class="p">}</span>
</span><span id="DataType-4033"><a href="#DataType-4033"><span class="linenos">4033</span></a>
-</span><span id="DataType-4034"><a href="#DataType-4034"><span class="linenos">4034</span></a><span class="sd"> Args:</span>
-</span><span id="DataType-4035"><a href="#DataType-4035"><span class="linenos">4035</span></a><span class="sd"> dtype: the data type of interest.</span>
-</span><span id="DataType-4036"><a href="#DataType-4036"><span class="linenos">4036</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
-</span><span id="DataType-4037"><a href="#DataType-4037"><span class="linenos">4037</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
-</span><span id="DataType-4038"><a href="#DataType-4038"><span class="linenos">4038</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
-</span><span id="DataType-4039"><a href="#DataType-4039"><span class="linenos">4039</span></a><span class="sd"> copy: whether to copy the data type.</span>
-</span><span id="DataType-4040"><a href="#DataType-4040"><span class="linenos">4040</span></a><span class="sd"> kwargs: additional arguments to pass in the constructor of DataType.</span>
-</span><span id="DataType-4041"><a href="#DataType-4041"><span class="linenos">4041</span></a>
-</span><span id="DataType-4042"><a href="#DataType-4042"><span class="linenos">4042</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType-4043"><a href="#DataType-4043"><span class="linenos">4043</span></a><span class="sd"> The constructed DataType object.</span>
-</span><span id="DataType-4044"><a href="#DataType-4044"><span class="linenos">4044</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType-4045"><a href="#DataType-4045"><span class="linenos">4045</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-4046"><a href="#DataType-4046"><span class="linenos">4046</span></a>
-</span><span id="DataType-4047"><a href="#DataType-4047"><span class="linenos">4047</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-4048"><a href="#DataType-4048"><span class="linenos">4048</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="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
-</span><span id="DataType-4049"><a href="#DataType-4049"><span class="linenos">4049</span></a> <span class="k">return</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="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType-4050"><a href="#DataType-4050"><span class="linenos">4050</span></a>
-</span><span id="DataType-4051"><a href="#DataType-4051"><span class="linenos">4051</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="DataType-4052"><a href="#DataType-4052"><span class="linenos">4052</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
-</span><span id="DataType-4053"><a href="#DataType-4053"><span class="linenos">4053</span></a> <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 class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
-</span><span id="DataType-4054"><a href="#DataType-4054"><span class="linenos">4054</span></a> <span class="p">)</span>
-</span><span id="DataType-4055"><a href="#DataType-4055"><span class="linenos">4055</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="DataType-4056"><a href="#DataType-4056"><span class="linenos">4056</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
-</span><span id="DataType-4057"><a href="#DataType-4057"><span class="linenos">4057</span></a> <span class="k">return</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="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType-4058"><a href="#DataType-4058"><span class="linenos">4058</span></a> <span class="k">raise</span>
-</span><span id="DataType-4059"><a href="#DataType-4059"><span class="linenos">4059</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-4060"><a href="#DataType-4060"><span class="linenos">4060</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-4061"><a href="#DataType-4061"><span class="linenos">4061</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-4062"><a href="#DataType-4062"><span class="linenos">4062</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="DataType-4063"><a href="#DataType-4063"><span class="linenos">4063</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-4064"><a href="#DataType-4064"><span class="linenos">4064</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-4065"><a href="#DataType-4065"><span class="linenos">4065</span></a>
-</span><span id="DataType-4066"><a href="#DataType-4066"><span class="linenos">4066</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-4067"><a href="#DataType-4067"><span class="linenos">4067</span></a>
-</span><span id="DataType-4068"><a href="#DataType-4068"><span class="linenos">4068</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="DataType-4069"><a href="#DataType-4069"><span class="linenos">4069</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType-4070"><a href="#DataType-4070"><span class="linenos">4070</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
-</span><span id="DataType-4071"><a href="#DataType-4071"><span class="linenos">4071</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="DataType-4072"><a href="#DataType-4072"><span class="linenos">4072</span></a>
-</span><span id="DataType-4073"><a href="#DataType-4073"><span class="linenos">4073</span></a><span class="sd"> Args:</span>
-</span><span id="DataType-4074"><a href="#DataType-4074"><span class="linenos">4074</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
-</span><span id="DataType-4075"><a href="#DataType-4075"><span class="linenos">4075</span></a>
-</span><span id="DataType-4076"><a href="#DataType-4076"><span class="linenos">4076</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType-4077"><a href="#DataType-4077"><span class="linenos">4077</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
-</span><span id="DataType-4078"><a href="#DataType-4078"><span class="linenos">4078</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType-4079"><a href="#DataType-4079"><span class="linenos">4079</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
-</span><span id="DataType-4080"><a href="#DataType-4080"><span class="linenos">4080</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="DataType-4081"><a href="#DataType-4081"><span class="linenos">4081</span></a>
-</span><span id="DataType-4082"><a href="#DataType-4082"><span class="linenos">4082</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="DataType-4083"><a href="#DataType-4083"><span class="linenos">4083</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="DataType-4084"><a href="#DataType-4084"><span class="linenos">4084</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType-4085"><a href="#DataType-4085"><span class="linenos">4085</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType-4086"><a href="#DataType-4086"><span class="linenos">4086</span></a> <span class="p">):</span>
-</span><span id="DataType-4087"><a href="#DataType-4087"><span class="linenos">4087</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
-</span><span id="DataType-4088"><a href="#DataType-4088"><span class="linenos">4088</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType-4089"><a href="#DataType-4089"><span class="linenos">4089</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
-</span><span id="DataType-4090"><a href="#DataType-4090"><span class="linenos">4090</span></a>
-</span><span id="DataType-4091"><a href="#DataType-4091"><span class="linenos">4091</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
-</span><span id="DataType-4092"><a href="#DataType-4092"><span class="linenos">4092</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="DataType-4093"><a href="#DataType-4093"><span class="linenos">4093</span></a> <span class="k">return</span> <span class="kc">False</span>
+</span><span id="DataType-4034"><a href="#DataType-4034"><span class="linenos">4034</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="DataType-4035"><a href="#DataType-4035"><span class="linenos">4035</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
+</span><span id="DataType-4036"><a href="#DataType-4036"><span class="linenos">4036</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE32</span><span class="p">,</span>
+</span><span id="DataType-4037"><a href="#DataType-4037"><span class="linenos">4037</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
+</span><span id="DataType-4038"><a href="#DataType-4038"><span class="linenos">4038</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
+</span><span id="DataType-4039"><a href="#DataType-4039"><span class="linenos">4039</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span>
+</span><span id="DataType-4040"><a href="#DataType-4040"><span class="linenos">4040</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
+</span><span id="DataType-4041"><a href="#DataType-4041"><span class="linenos">4041</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPNTZ</span><span class="p">,</span>
+</span><span id="DataType-4042"><a href="#DataType-4042"><span class="linenos">4042</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
+</span><span id="DataType-4043"><a href="#DataType-4043"><span class="linenos">4043</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
+</span><span id="DataType-4044"><a href="#DataType-4044"><span class="linenos">4044</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_MS</span><span class="p">,</span>
+</span><span id="DataType-4045"><a href="#DataType-4045"><span class="linenos">4045</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_NS</span><span class="p">,</span>
+</span><span id="DataType-4046"><a href="#DataType-4046"><span class="linenos">4046</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP_S</span><span class="p">,</span>
+</span><span id="DataType-4047"><a href="#DataType-4047"><span class="linenos">4047</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMETZ</span><span class="p">,</span>
+</span><span id="DataType-4048"><a href="#DataType-4048"><span class="linenos">4048</span></a> <span class="p">}</span>
+</span><span id="DataType-4049"><a href="#DataType-4049"><span class="linenos">4049</span></a>
+</span><span id="DataType-4050"><a href="#DataType-4050"><span class="linenos">4050</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType-4051"><a href="#DataType-4051"><span class="linenos">4051</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType-4052"><a href="#DataType-4052"><span class="linenos">4052</span></a> <span class="bp">cls</span><span class="p">,</span>
+</span><span id="DataType-4053"><a href="#DataType-4053"><span class="linenos">4053</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="DataType-4054"><a href="#DataType-4054"><span class="linenos">4054</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="DataType-4055"><a href="#DataType-4055"><span class="linenos">4055</span></a> <span class="n">udt</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="DataType-4056"><a href="#DataType-4056"><span class="linenos">4056</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="DataType-4057"><a href="#DataType-4057"><span class="linenos">4057</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="DataType-4058"><a href="#DataType-4058"><span class="linenos">4058</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="DataType-4059"><a href="#DataType-4059"><span class="linenos">4059</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType-4060"><a href="#DataType-4060"><span class="linenos">4060</span></a><span class="sd"> Constructs a DataType object.</span>
+</span><span id="DataType-4061"><a href="#DataType-4061"><span class="linenos">4061</span></a>
+</span><span id="DataType-4062"><a href="#DataType-4062"><span class="linenos">4062</span></a><span class="sd"> Args:</span>
+</span><span id="DataType-4063"><a href="#DataType-4063"><span class="linenos">4063</span></a><span class="sd"> dtype: the data type of interest.</span>
+</span><span id="DataType-4064"><a href="#DataType-4064"><span class="linenos">4064</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
+</span><span id="DataType-4065"><a href="#DataType-4065"><span class="linenos">4065</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
+</span><span id="DataType-4066"><a href="#DataType-4066"><span class="linenos">4066</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
+</span><span id="DataType-4067"><a href="#DataType-4067"><span class="linenos">4067</span></a><span class="sd"> copy: whether to copy the data type.</span>
+</span><span id="DataType-4068"><a href="#DataType-4068"><span class="linenos">4068</span></a><span class="sd"> kwargs: additional arguments to pass in the constructor of DataType.</span>
+</span><span id="DataType-4069"><a href="#DataType-4069"><span class="linenos">4069</span></a>
+</span><span id="DataType-4070"><a href="#DataType-4070"><span class="linenos">4070</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType-4071"><a href="#DataType-4071"><span class="linenos">4071</span></a><span class="sd"> The constructed DataType object.</span>
+</span><span id="DataType-4072"><a href="#DataType-4072"><span class="linenos">4072</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType-4073"><a href="#DataType-4073"><span class="linenos">4073</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-4074"><a href="#DataType-4074"><span class="linenos">4074</span></a>
+</span><span id="DataType-4075"><a href="#DataType-4075"><span class="linenos">4075</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-4076"><a href="#DataType-4076"><span class="linenos">4076</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="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
+</span><span id="DataType-4077"><a href="#DataType-4077"><span class="linenos">4077</span></a> <span class="k">return</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="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType-4078"><a href="#DataType-4078"><span class="linenos">4078</span></a>
+</span><span id="DataType-4079"><a href="#DataType-4079"><span class="linenos">4079</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="DataType-4080"><a href="#DataType-4080"><span class="linenos">4080</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
+</span><span id="DataType-4081"><a href="#DataType-4081"><span class="linenos">4081</span></a> <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 class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
+</span><span id="DataType-4082"><a href="#DataType-4082"><span class="linenos">4082</span></a> <span class="p">)</span>
+</span><span id="DataType-4083"><a href="#DataType-4083"><span class="linenos">4083</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="DataType-4084"><a href="#DataType-4084"><span class="linenos">4084</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
+</span><span id="DataType-4085"><a href="#DataType-4085"><span class="linenos">4085</span></a> <span class="k">return</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="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType-4086"><a href="#DataType-4086"><span class="linenos">4086</span></a> <span class="k">raise</span>
+</span><span id="DataType-4087"><a href="#DataType-4087"><span class="linenos">4087</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-4088"><a href="#DataType-4088"><span class="linenos">4088</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-4089"><a href="#DataType-4089"><span class="linenos">4089</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-4090"><a href="#DataType-4090"><span class="linenos">4090</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="DataType-4091"><a href="#DataType-4091"><span class="linenos">4091</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-4092"><a href="#DataType-4092"><span class="linenos">4092</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-4093"><a href="#DataType-4093"><span class="linenos">4093</span></a>
+</span><span id="DataType-4094"><a href="#DataType-4094"><span class="linenos">4094</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-4095"><a href="#DataType-4095"><span class="linenos">4095</span></a>
+</span><span id="DataType-4096"><a href="#DataType-4096"><span class="linenos">4096</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="DataType-4097"><a href="#DataType-4097"><span class="linenos">4097</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType-4098"><a href="#DataType-4098"><span class="linenos">4098</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
+</span><span id="DataType-4099"><a href="#DataType-4099"><span class="linenos">4099</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="DataType-4100"><a href="#DataType-4100"><span class="linenos">4100</span></a>
+</span><span id="DataType-4101"><a href="#DataType-4101"><span class="linenos">4101</span></a><span class="sd"> Args:</span>
+</span><span id="DataType-4102"><a href="#DataType-4102"><span class="linenos">4102</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
+</span><span id="DataType-4103"><a href="#DataType-4103"><span class="linenos">4103</span></a>
+</span><span id="DataType-4104"><a href="#DataType-4104"><span class="linenos">4104</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType-4105"><a href="#DataType-4105"><span class="linenos">4105</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
+</span><span id="DataType-4106"><a href="#DataType-4106"><span class="linenos">4106</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType-4107"><a href="#DataType-4107"><span class="linenos">4107</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
+</span><span id="DataType-4108"><a href="#DataType-4108"><span class="linenos">4108</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="DataType-4109"><a href="#DataType-4109"><span class="linenos">4109</span></a>
+</span><span id="DataType-4110"><a href="#DataType-4110"><span class="linenos">4110</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="DataType-4111"><a href="#DataType-4111"><span class="linenos">4111</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="DataType-4112"><a href="#DataType-4112"><span class="linenos">4112</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType-4113"><a href="#DataType-4113"><span class="linenos">4113</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType-4114"><a href="#DataType-4114"><span class="linenos">4114</span></a> <span class="p">):</span>
+</span><span id="DataType-4115"><a href="#DataType-4115"><span class="linenos">4115</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
+</span><span id="DataType-4116"><a href="#DataType-4116"><span class="linenos">4116</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType-4117"><a href="#DataType-4117"><span class="linenos">4117</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
+</span><span id="DataType-4118"><a href="#DataType-4118"><span class="linenos">4118</span></a>
+</span><span id="DataType-4119"><a href="#DataType-4119"><span class="linenos">4119</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
+</span><span id="DataType-4120"><a href="#DataType-4120"><span class="linenos">4120</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="DataType-4121"><a href="#DataType-4121"><span class="linenos">4121</span></a> <span class="k">return</span> <span class="kc">False</span>
</span></pre></div>
@@ -51827,7 +52311,7 @@ Otherwise, this resets the expressions.</li>
<div id="DataType.STRUCT_TYPES" class="classattr">
<div class="attr variable">
<span class="name">STRUCT_TYPES</span> =
-<span class="default_value">{&lt;Type.NESTED: &#39;NESTED&#39;&gt;, &lt;Type.OBJECT: &#39;OBJECT&#39;&gt;, &lt;Type.STRUCT: &#39;STRUCT&#39;&gt;}</span>
+<span class="default_value">{&lt;Type.OBJECT: &#39;OBJECT&#39;&gt;, &lt;Type.NESTED: &#39;NESTED&#39;&gt;, &lt;Type.STRUCT: &#39;STRUCT&#39;&gt;}</span>
</div>
@@ -51840,7 +52324,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">NESTED_TYPES</span> =
<input id="DataType.NESTED_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.NESTED_TYPES-view-value"></label><span class="default_value">{&lt;Type.OBJECT: &#39;OBJECT&#39;&gt;, &lt;Type.STRUCT: &#39;STRUCT&#39;&gt;, &lt;Type.NESTED: &#39;NESTED&#39;&gt;, &lt;Type.ARRAY: &#39;ARRAY&#39;&gt;, &lt;Type.MAP: &#39;MAP&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.NESTED_TYPES-view-value"></label><span class="default_value">{&lt;Type.OBJECT: &#39;OBJECT&#39;&gt;, &lt;Type.MAP: &#39;MAP&#39;&gt;, &lt;Type.NESTED: &#39;NESTED&#39;&gt;, &lt;Type.ARRAY: &#39;ARRAY&#39;&gt;, &lt;Type.STRUCT: &#39;STRUCT&#39;&gt;}</span>
</div>
@@ -51853,7 +52337,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">TEXT_TYPES</span> =
<input id="DataType.TEXT_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{&lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;, &lt;Type.NAME: &#39;NAME&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.TEXT_TYPES-view-value"></label><span class="default_value">{&lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.TEXT: &#39;TEXT&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.NAME: &#39;NAME&#39;&gt;}</span>
</div>
@@ -51866,7 +52350,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">SIGNED_INTEGER_TYPES</span> =
<input id="DataType.SIGNED_INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.SIGNED_INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.MEDIUMINT: &#39;MEDIUMINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.SIGNED_INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.MEDIUMINT: &#39;MEDIUMINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;}</span>
</div>
@@ -51879,7 +52363,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">UNSIGNED_INTEGER_TYPES</span> =
<input id="DataType.UNSIGNED_INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.UNSIGNED_INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;, &lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;, &lt;Type.UINT: &#39;UINT&#39;&gt;, &lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;, &lt;Type.UINT128: &#39;UINT128&#39;&gt;, &lt;Type.UMEDIUMINT: &#39;UMEDIUMINT&#39;&gt;, &lt;Type.UINT256: &#39;UINT256&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.UNSIGNED_INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;, &lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;, &lt;Type.UINT128: &#39;UINT128&#39;&gt;, &lt;Type.UINT: &#39;UINT&#39;&gt;, &lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;, &lt;Type.UMEDIUMINT: &#39;UMEDIUMINT&#39;&gt;, &lt;Type.UINT256: &#39;UINT256&#39;&gt;}</span>
</div>
@@ -51892,7 +52376,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">INTEGER_TYPES</span> =
<input id="DataType.INTEGER_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.MEDIUMINT: &#39;MEDIUMINT&#39;&gt;, &lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;, &lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.UINT: &#39;UINT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.UINT256: &#39;UINT256&#39;&gt;, &lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;, &lt;Type.UINT128: &#39;UINT128&#39;&gt;, &lt;Type.UMEDIUMINT: &#39;UMEDIUMINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.INTEGER_TYPES-view-value"></label><span class="default_value">{&lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;, &lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;, &lt;Type.MEDIUMINT: &#39;MEDIUMINT&#39;&gt;, &lt;Type.UINT128: &#39;UINT128&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.UINT: &#39;UINT&#39;&gt;, &lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.UMEDIUMINT: &#39;UMEDIUMINT&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.UINT256: &#39;UINT256&#39;&gt;}</span>
</div>
@@ -51904,7 +52388,7 @@ Otherwise, this resets the expressions.</li>
<div id="DataType.FLOAT_TYPES" class="classattr">
<div class="attr variable">
<span class="name">FLOAT_TYPES</span> =
-<span class="default_value">{&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;}</span>
+<span class="default_value">{&lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;}</span>
</div>
@@ -51917,7 +52401,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">REAL_TYPES</span> =
<input id="DataType.REAL_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.REAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.MONEY: &#39;MONEY&#39;&gt;, &lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.UDECIMAL: &#39;UDECIMAL&#39;&gt;, &lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.REAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;, &lt;Type.UDECIMAL: &#39;UDECIMAL&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;, &lt;Type.MONEY: &#39;MONEY&#39;&gt;}</span>
</div>
@@ -51930,7 +52414,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">NUMERIC_TYPES</span> =
<input id="DataType.NUMERIC_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;, &lt;Type.UINT: &#39;UINT&#39;&gt;, &lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;, &lt;Type.UMEDIUMINT: &#39;UMEDIUMINT&#39;&gt;, &lt;Type.UDECIMAL: &#39;UDECIMAL&#39;&gt;, &lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;, &lt;Type.MEDIUMINT: &#39;MEDIUMINT&#39;&gt;, &lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;, &lt;Type.MONEY: &#39;MONEY&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;, &lt;Type.UINT128: &#39;UINT128&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.UINT256: &#39;UINT256&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.NUMERIC_TYPES-view-value"></label><span class="default_value">{&lt;Type.INT256: &#39;INT256&#39;&gt;, &lt;Type.UINT128: &#39;UINT128&#39;&gt;, &lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;, &lt;Type.INT: &#39;INT&#39;&gt;, &lt;Type.UINT: &#39;UINT&#39;&gt;, &lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;, &lt;Type.TINYINT: &#39;TINYINT&#39;&gt;, &lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;, &lt;Type.BIGINT: &#39;BIGINT&#39;&gt;, &lt;Type.UDECIMAL: &#39;UDECIMAL&#39;&gt;, &lt;Type.INT128: &#39;INT128&#39;&gt;, &lt;Type.MONEY: &#39;MONEY&#39;&gt;, &lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;, &lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;, &lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;, &lt;Type.MEDIUMINT: &#39;MEDIUMINT&#39;&gt;, &lt;Type.FLOAT: &#39;FLOAT&#39;&gt;, &lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;, &lt;Type.BIT: &#39;BIT&#39;&gt;, &lt;Type.UMEDIUMINT: &#39;UMEDIUMINT&#39;&gt;, &lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;, &lt;Type.UINT256: &#39;UINT256&#39;&gt;}</span>
</div>
@@ -51943,7 +52427,7 @@ Otherwise, this resets the expressions.</li>
<div class="attr variable">
<span class="name">TEMPORAL_TYPES</span> =
<input id="DataType.TEMPORAL_TYPES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.TIMETZ: &#39;TIMETZ&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIMESTAMP_S: &#39;TIMESTAMP_S&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;, &lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIMESTAMP_MS: &#39;TIMESTAMP_MS&#39;&gt;, &lt;Type.TIMESTAMP_NS: &#39;TIMESTAMP_NS&#39;&gt;, &lt;Type.DATE32: &#39;DATE32&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="DataType.TEMPORAL_TYPES-view-value"></label><span class="default_value">{&lt;Type.TIMETZ: &#39;TIMETZ&#39;&gt;, &lt;Type.DATE32: &#39;DATE32&#39;&gt;, &lt;Type.DATE: &#39;DATE&#39;&gt;, &lt;Type.TIME: &#39;TIME&#39;&gt;, &lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;, &lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;, &lt;Type.TIMESTAMP_S: &#39;TIMESTAMP_S&#39;&gt;, &lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;, &lt;Type.TIMESTAMPNTZ: &#39;TIMESTAMPNTZ&#39;&gt;, &lt;Type.DATETIME: &#39;DATETIME&#39;&gt;, &lt;Type.TIMESTAMP_MS: &#39;TIMESTAMP_MS&#39;&gt;, &lt;Type.TIMESTAMP_NS: &#39;TIMESTAMP_NS&#39;&gt;, &lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;}</span>
</div>
@@ -51964,51 +52448,51 @@ Otherwise, this resets the expressions.</li>
</div>
<a class="headerlink" href="#DataType.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-4022"><a href="#DataType.build-4022"><span class="linenos">4022</span></a> <span class="nd">@classmethod</span>
-</span><span id="DataType.build-4023"><a href="#DataType.build-4023"><span class="linenos">4023</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
-</span><span id="DataType.build-4024"><a href="#DataType.build-4024"><span class="linenos">4024</span></a> <span class="bp">cls</span><span class="p">,</span>
-</span><span id="DataType.build-4025"><a href="#DataType.build-4025"><span class="linenos">4025</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
-</span><span id="DataType.build-4026"><a href="#DataType.build-4026"><span class="linenos">4026</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="DataType.build-4027"><a href="#DataType.build-4027"><span class="linenos">4027</span></a> <span class="n">udt</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="DataType.build-4028"><a href="#DataType.build-4028"><span class="linenos">4028</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="DataType.build-4029"><a href="#DataType.build-4029"><span class="linenos">4029</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="DataType.build-4030"><a href="#DataType.build-4030"><span class="linenos">4030</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-4031"><a href="#DataType.build-4031"><span class="linenos">4031</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType.build-4032"><a href="#DataType.build-4032"><span class="linenos">4032</span></a><span class="sd"> Constructs a DataType object.</span>
-</span><span id="DataType.build-4033"><a href="#DataType.build-4033"><span class="linenos">4033</span></a>
-</span><span id="DataType.build-4034"><a href="#DataType.build-4034"><span class="linenos">4034</span></a><span class="sd"> Args:</span>
-</span><span id="DataType.build-4035"><a href="#DataType.build-4035"><span class="linenos">4035</span></a><span class="sd"> dtype: the data type of interest.</span>
-</span><span id="DataType.build-4036"><a href="#DataType.build-4036"><span class="linenos">4036</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
-</span><span id="DataType.build-4037"><a href="#DataType.build-4037"><span class="linenos">4037</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
-</span><span id="DataType.build-4038"><a href="#DataType.build-4038"><span class="linenos">4038</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
-</span><span id="DataType.build-4039"><a href="#DataType.build-4039"><span class="linenos">4039</span></a><span class="sd"> copy: whether to copy the data type.</span>
-</span><span id="DataType.build-4040"><a href="#DataType.build-4040"><span class="linenos">4040</span></a><span class="sd"> kwargs: additional arguments to pass in the constructor of DataType.</span>
-</span><span id="DataType.build-4041"><a href="#DataType.build-4041"><span class="linenos">4041</span></a>
-</span><span id="DataType.build-4042"><a href="#DataType.build-4042"><span class="linenos">4042</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType.build-4043"><a href="#DataType.build-4043"><span class="linenos">4043</span></a><span class="sd"> The constructed DataType object.</span>
-</span><span id="DataType.build-4044"><a href="#DataType.build-4044"><span class="linenos">4044</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType.build-4045"><a href="#DataType.build-4045"><span class="linenos">4045</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-4046"><a href="#DataType.build-4046"><span class="linenos">4046</span></a>
-</span><span id="DataType.build-4047"><a href="#DataType.build-4047"><span class="linenos">4047</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-4048"><a href="#DataType.build-4048"><span class="linenos">4048</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="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
-</span><span id="DataType.build-4049"><a href="#DataType.build-4049"><span class="linenos">4049</span></a> <span class="k">return</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="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType.build-4050"><a href="#DataType.build-4050"><span class="linenos">4050</span></a>
-</span><span id="DataType.build-4051"><a href="#DataType.build-4051"><span class="linenos">4051</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="DataType.build-4052"><a href="#DataType.build-4052"><span class="linenos">4052</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
-</span><span id="DataType.build-4053"><a href="#DataType.build-4053"><span class="linenos">4053</span></a> <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 class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
-</span><span id="DataType.build-4054"><a href="#DataType.build-4054"><span class="linenos">4054</span></a> <span class="p">)</span>
-</span><span id="DataType.build-4055"><a href="#DataType.build-4055"><span class="linenos">4055</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="DataType.build-4056"><a href="#DataType.build-4056"><span class="linenos">4056</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
-</span><span id="DataType.build-4057"><a href="#DataType.build-4057"><span class="linenos">4057</span></a> <span class="k">return</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="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="DataType.build-4058"><a href="#DataType.build-4058"><span class="linenos">4058</span></a> <span class="k">raise</span>
-</span><span id="DataType.build-4059"><a href="#DataType.build-4059"><span class="linenos">4059</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-4060"><a href="#DataType.build-4060"><span class="linenos">4060</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-4061"><a href="#DataType.build-4061"><span class="linenos">4061</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-4062"><a href="#DataType.build-4062"><span class="linenos">4062</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="DataType.build-4063"><a href="#DataType.build-4063"><span class="linenos">4063</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.build-4064"><a href="#DataType.build-4064"><span class="linenos">4064</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-4065"><a href="#DataType.build-4065"><span class="linenos">4065</span></a>
-</span><span id="DataType.build-4066"><a href="#DataType.build-4066"><span class="linenos">4066</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-4050"><a href="#DataType.build-4050"><span class="linenos">4050</span></a> <span class="nd">@classmethod</span>
+</span><span id="DataType.build-4051"><a href="#DataType.build-4051"><span class="linenos">4051</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
+</span><span id="DataType.build-4052"><a href="#DataType.build-4052"><span class="linenos">4052</span></a> <span class="bp">cls</span><span class="p">,</span>
+</span><span id="DataType.build-4053"><a href="#DataType.build-4053"><span class="linenos">4053</span></a> <span class="n">dtype</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span>
+</span><span id="DataType.build-4054"><a href="#DataType.build-4054"><span class="linenos">4054</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="DataType.build-4055"><a href="#DataType.build-4055"><span class="linenos">4055</span></a> <span class="n">udt</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="DataType.build-4056"><a href="#DataType.build-4056"><span class="linenos">4056</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="DataType.build-4057"><a href="#DataType.build-4057"><span class="linenos">4057</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="DataType.build-4058"><a href="#DataType.build-4058"><span class="linenos">4058</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-4059"><a href="#DataType.build-4059"><span class="linenos">4059</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType.build-4060"><a href="#DataType.build-4060"><span class="linenos">4060</span></a><span class="sd"> Constructs a DataType object.</span>
+</span><span id="DataType.build-4061"><a href="#DataType.build-4061"><span class="linenos">4061</span></a>
+</span><span id="DataType.build-4062"><a href="#DataType.build-4062"><span class="linenos">4062</span></a><span class="sd"> Args:</span>
+</span><span id="DataType.build-4063"><a href="#DataType.build-4063"><span class="linenos">4063</span></a><span class="sd"> dtype: the data type of interest.</span>
+</span><span id="DataType.build-4064"><a href="#DataType.build-4064"><span class="linenos">4064</span></a><span class="sd"> dialect: the dialect to use for parsing `dtype`, in case it&#39;s a string.</span>
+</span><span id="DataType.build-4065"><a href="#DataType.build-4065"><span class="linenos">4065</span></a><span class="sd"> udt: when set to True, `dtype` will be used as-is if it can&#39;t be parsed into a</span>
+</span><span id="DataType.build-4066"><a href="#DataType.build-4066"><span class="linenos">4066</span></a><span class="sd"> DataType, thus creating a user-defined type.</span>
+</span><span id="DataType.build-4067"><a href="#DataType.build-4067"><span class="linenos">4067</span></a><span class="sd"> copy: whether to copy the data type.</span>
+</span><span id="DataType.build-4068"><a href="#DataType.build-4068"><span class="linenos">4068</span></a><span class="sd"> kwargs: additional arguments to pass in the constructor of DataType.</span>
+</span><span id="DataType.build-4069"><a href="#DataType.build-4069"><span class="linenos">4069</span></a>
+</span><span id="DataType.build-4070"><a href="#DataType.build-4070"><span class="linenos">4070</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType.build-4071"><a href="#DataType.build-4071"><span class="linenos">4071</span></a><span class="sd"> The constructed DataType object.</span>
+</span><span id="DataType.build-4072"><a href="#DataType.build-4072"><span class="linenos">4072</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType.build-4073"><a href="#DataType.build-4073"><span class="linenos">4073</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-4074"><a href="#DataType.build-4074"><span class="linenos">4074</span></a>
+</span><span id="DataType.build-4075"><a href="#DataType.build-4075"><span class="linenos">4075</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-4076"><a href="#DataType.build-4076"><span class="linenos">4076</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="o">==</span> <span class="s2">&quot;UNKNOWN&quot;</span><span class="p">:</span>
+</span><span id="DataType.build-4077"><a href="#DataType.build-4077"><span class="linenos">4077</span></a> <span class="k">return</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="o">.</span><span class="n">UNKNOWN</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType.build-4078"><a href="#DataType.build-4078"><span class="linenos">4078</span></a>
+</span><span id="DataType.build-4079"><a href="#DataType.build-4079"><span class="linenos">4079</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="DataType.build-4080"><a href="#DataType.build-4080"><span class="linenos">4080</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span>
+</span><span id="DataType.build-4081"><a href="#DataType.build-4081"><span class="linenos">4081</span></a> <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 class="n">error_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span>
+</span><span id="DataType.build-4082"><a href="#DataType.build-4082"><span class="linenos">4082</span></a> <span class="p">)</span>
+</span><span id="DataType.build-4083"><a href="#DataType.build-4083"><span class="linenos">4083</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="DataType.build-4084"><a href="#DataType.build-4084"><span class="linenos">4084</span></a> <span class="k">if</span> <span class="n">udt</span><span class="p">:</span>
+</span><span id="DataType.build-4085"><a href="#DataType.build-4085"><span class="linenos">4085</span></a> <span class="k">return</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="o">.</span><span class="n">USERDEFINED</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="DataType.build-4086"><a href="#DataType.build-4086"><span class="linenos">4086</span></a> <span class="k">raise</span>
+</span><span id="DataType.build-4087"><a href="#DataType.build-4087"><span class="linenos">4087</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-4088"><a href="#DataType.build-4088"><span class="linenos">4088</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-4089"><a href="#DataType.build-4089"><span class="linenos">4089</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-4090"><a href="#DataType.build-4090"><span class="linenos">4090</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="DataType.build-4091"><a href="#DataType.build-4091"><span class="linenos">4091</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.build-4092"><a href="#DataType.build-4092"><span class="linenos">4092</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-4093"><a href="#DataType.build-4093"><span class="linenos">4093</span></a>
+</span><span id="DataType.build-4094"><a href="#DataType.build-4094"><span class="linenos">4094</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>
@@ -52045,32 +52529,32 @@ DataType, thus creating a user-defined type.</li>
</div>
<a class="headerlink" href="#DataType.is_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-4068"><a href="#DataType.is_type-4068"><span class="linenos">4068</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_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-4069"><a href="#DataType.is_type-4069"><span class="linenos">4069</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="DataType.is_type-4070"><a href="#DataType.is_type-4070"><span class="linenos">4070</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
-</span><span id="DataType.is_type-4071"><a href="#DataType.is_type-4071"><span class="linenos">4071</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="DataType.is_type-4072"><a href="#DataType.is_type-4072"><span class="linenos">4072</span></a>
-</span><span id="DataType.is_type-4073"><a href="#DataType.is_type-4073"><span class="linenos">4073</span></a><span class="sd"> Args:</span>
-</span><span id="DataType.is_type-4074"><a href="#DataType.is_type-4074"><span class="linenos">4074</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
-</span><span id="DataType.is_type-4075"><a href="#DataType.is_type-4075"><span class="linenos">4075</span></a>
-</span><span id="DataType.is_type-4076"><a href="#DataType.is_type-4076"><span class="linenos">4076</span></a><span class="sd"> Returns:</span>
-</span><span id="DataType.is_type-4077"><a href="#DataType.is_type-4077"><span class="linenos">4077</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
-</span><span id="DataType.is_type-4078"><a href="#DataType.is_type-4078"><span class="linenos">4078</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="DataType.is_type-4079"><a href="#DataType.is_type-4079"><span class="linenos">4079</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
-</span><span id="DataType.is_type-4080"><a href="#DataType.is_type-4080"><span class="linenos">4080</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-</span><span id="DataType.is_type-4081"><a href="#DataType.is_type-4081"><span class="linenos">4081</span></a>
-</span><span id="DataType.is_type-4082"><a href="#DataType.is_type-4082"><span class="linenos">4082</span></a> <span class="k">if</span> <span class="p">(</span>
-</span><span id="DataType.is_type-4083"><a href="#DataType.is_type-4083"><span class="linenos">4083</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="DataType.is_type-4084"><a href="#DataType.is_type-4084"><span class="linenos">4084</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType.is_type-4085"><a href="#DataType.is_type-4085"><span class="linenos">4085</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
-</span><span id="DataType.is_type-4086"><a href="#DataType.is_type-4086"><span class="linenos">4086</span></a> <span class="p">):</span>
-</span><span id="DataType.is_type-4087"><a href="#DataType.is_type-4087"><span class="linenos">4087</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
-</span><span id="DataType.is_type-4088"><a href="#DataType.is_type-4088"><span class="linenos">4088</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="DataType.is_type-4089"><a href="#DataType.is_type-4089"><span class="linenos">4089</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
-</span><span id="DataType.is_type-4090"><a href="#DataType.is_type-4090"><span class="linenos">4090</span></a>
-</span><span id="DataType.is_type-4091"><a href="#DataType.is_type-4091"><span class="linenos">4091</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
-</span><span id="DataType.is_type-4092"><a href="#DataType.is_type-4092"><span class="linenos">4092</span></a> <span class="k">return</span> <span class="kc">True</span>
-</span><span id="DataType.is_type-4093"><a href="#DataType.is_type-4093"><span class="linenos">4093</span></a> <span class="k">return</span> <span class="kc">False</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-4096"><a href="#DataType.is_type-4096"><span class="linenos">4096</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_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-4097"><a href="#DataType.is_type-4097"><span class="linenos">4097</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="DataType.is_type-4098"><a href="#DataType.is_type-4098"><span class="linenos">4098</span></a><span class="sd"> Checks whether this DataType matches one of the provided data types. Nested types or precision</span>
+</span><span id="DataType.is_type-4099"><a href="#DataType.is_type-4099"><span class="linenos">4099</span></a><span class="sd"> will be compared using &quot;structural equivalence&quot; semantics, so e.g. array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="DataType.is_type-4100"><a href="#DataType.is_type-4100"><span class="linenos">4100</span></a>
+</span><span id="DataType.is_type-4101"><a href="#DataType.is_type-4101"><span class="linenos">4101</span></a><span class="sd"> Args:</span>
+</span><span id="DataType.is_type-4102"><a href="#DataType.is_type-4102"><span class="linenos">4102</span></a><span class="sd"> dtypes: the data types to compare this DataType to.</span>
+</span><span id="DataType.is_type-4103"><a href="#DataType.is_type-4103"><span class="linenos">4103</span></a>
+</span><span id="DataType.is_type-4104"><a href="#DataType.is_type-4104"><span class="linenos">4104</span></a><span class="sd"> Returns:</span>
+</span><span id="DataType.is_type-4105"><a href="#DataType.is_type-4105"><span class="linenos">4105</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this DataType.</span>
+</span><span id="DataType.is_type-4106"><a href="#DataType.is_type-4106"><span class="linenos">4106</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="DataType.is_type-4107"><a href="#DataType.is_type-4107"><span class="linenos">4107</span></a> <span class="k">for</span> <span class="n">dtype</span> <span class="ow">in</span> <span class="n">dtypes</span><span class="p">:</span>
+</span><span id="DataType.is_type-4108"><a href="#DataType.is_type-4108"><span class="linenos">4108</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">udt</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</span><span id="DataType.is_type-4109"><a href="#DataType.is_type-4109"><span class="linenos">4109</span></a>
+</span><span id="DataType.is_type-4110"><a href="#DataType.is_type-4110"><span class="linenos">4110</span></a> <span class="k">if</span> <span class="p">(</span>
+</span><span id="DataType.is_type-4111"><a href="#DataType.is_type-4111"><span class="linenos">4111</span></a> <span class="n">other</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="DataType.is_type-4112"><a href="#DataType.is_type-4112"><span class="linenos">4112</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType.is_type-4113"><a href="#DataType.is_type-4113"><span class="linenos">4113</span></a> <span class="ow">or</span> <span class="n">other</span><span class="o">.</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="o">.</span><span class="n">USERDEFINED</span>
+</span><span id="DataType.is_type-4114"><a href="#DataType.is_type-4114"><span class="linenos">4114</span></a> <span class="p">):</span>
+</span><span id="DataType.is_type-4115"><a href="#DataType.is_type-4115"><span class="linenos">4115</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span> <span class="o">==</span> <span class="n">other</span>
+</span><span id="DataType.is_type-4116"><a href="#DataType.is_type-4116"><span class="linenos">4116</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="DataType.is_type-4117"><a href="#DataType.is_type-4117"><span class="linenos">4117</span></a> <span class="n">matches</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span>
+</span><span id="DataType.is_type-4118"><a href="#DataType.is_type-4118"><span class="linenos">4118</span></a>
+</span><span id="DataType.is_type-4119"><a href="#DataType.is_type-4119"><span class="linenos">4119</span></a> <span class="k">if</span> <span class="n">matches</span><span class="p">:</span>
+</span><span id="DataType.is_type-4120"><a href="#DataType.is_type-4120"><span class="linenos">4120</span></a> <span class="k">return</span> <span class="kc">True</span>
+</span><span id="DataType.is_type-4121"><a href="#DataType.is_type-4121"><span class="linenos">4121</span></a> <span class="k">return</span> <span class="kc">False</span>
</span></pre></div>
@@ -52192,109 +52676,111 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#DataType.Type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-3837"><a href="#DataType.Type-3837"><span class="linenos">3837</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
-</span><span id="DataType.Type-3838"><a href="#DataType.Type-3838"><span class="linenos">3838</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-3839"><a href="#DataType.Type-3839"><span class="linenos">3839</span></a> <span class="n">AGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3840"><a href="#DataType.Type-3840"><span class="linenos">3840</span></a> <span class="n">SIMPLEAGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3841"><a href="#DataType.Type-3841"><span class="linenos">3841</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3842"><a href="#DataType.Type-3842"><span class="linenos">3842</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-3843"><a href="#DataType.Type-3843"><span class="linenos">3843</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-3844"><a href="#DataType.Type-3844"><span class="linenos">3844</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-3845"><a href="#DataType.Type-3845"><span class="linenos">3845</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-3846"><a href="#DataType.Type-3846"><span class="linenos">3846</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-3847"><a href="#DataType.Type-3847"><span class="linenos">3847</span></a> <span class="n">BPCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3848"><a href="#DataType.Type-3848"><span class="linenos">3848</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3849"><a href="#DataType.Type-3849"><span class="linenos">3849</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-3850"><a href="#DataType.Type-3850"><span class="linenos">3850</span></a> <span class="n">DATE32</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3851"><a href="#DataType.Type-3851"><span class="linenos">3851</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3852"><a href="#DataType.Type-3852"><span class="linenos">3852</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3853"><a href="#DataType.Type-3853"><span class="linenos">3853</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-3854"><a href="#DataType.Type-3854"><span class="linenos">3854</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3855"><a href="#DataType.Type-3855"><span class="linenos">3855</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-3856"><a href="#DataType.Type-3856"><span class="linenos">3856</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-3857"><a href="#DataType.Type-3857"><span class="linenos">3857</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3858"><a href="#DataType.Type-3858"><span class="linenos">3858</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3859"><a href="#DataType.Type-3859"><span class="linenos">3859</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3860"><a href="#DataType.Type-3860"><span class="linenos">3860</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3861"><a href="#DataType.Type-3861"><span class="linenos">3861</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-3862"><a href="#DataType.Type-3862"><span class="linenos">3862</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-3863"><a href="#DataType.Type-3863"><span class="linenos">3863</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-3864"><a href="#DataType.Type-3864"><span class="linenos">3864</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-3865"><a href="#DataType.Type-3865"><span class="linenos">3865</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-3866"><a href="#DataType.Type-3866"><span class="linenos">3866</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-3867"><a href="#DataType.Type-3867"><span class="linenos">3867</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-3868"><a href="#DataType.Type-3868"><span class="linenos">3868</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-3869"><a href="#DataType.Type-3869"><span class="linenos">3869</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3870"><a href="#DataType.Type-3870"><span class="linenos">3870</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3871"><a href="#DataType.Type-3871"><span class="linenos">3871</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3872"><a href="#DataType.Type-3872"><span class="linenos">3872</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3873"><a href="#DataType.Type-3873"><span class="linenos">3873</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3874"><a href="#DataType.Type-3874"><span class="linenos">3874</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3875"><a href="#DataType.Type-3875"><span class="linenos">3875</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-3876"><a href="#DataType.Type-3876"><span class="linenos">3876</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3877"><a href="#DataType.Type-3877"><span class="linenos">3877</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3878"><a href="#DataType.Type-3878"><span class="linenos">3878</span></a> <span class="n">IPV4</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3879"><a href="#DataType.Type-3879"><span class="linenos">3879</span></a> <span class="n">IPV6</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3880"><a href="#DataType.Type-3880"><span class="linenos">3880</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-3881"><a href="#DataType.Type-3881"><span class="linenos">3881</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-3882"><a href="#DataType.Type-3882"><span class="linenos">3882</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3883"><a href="#DataType.Type-3883"><span class="linenos">3883</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3884"><a href="#DataType.Type-3884"><span class="linenos">3884</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3885"><a href="#DataType.Type-3885"><span class="linenos">3885</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-3886"><a href="#DataType.Type-3886"><span class="linenos">3886</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3887"><a href="#DataType.Type-3887"><span class="linenos">3887</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3888"><a href="#DataType.Type-3888"><span class="linenos">3888</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3889"><a href="#DataType.Type-3889"><span class="linenos">3889</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-3890"><a href="#DataType.Type-3890"><span class="linenos">3890</span></a> <span class="n">NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3891"><a href="#DataType.Type-3891"><span class="linenos">3891</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3892"><a href="#DataType.Type-3892"><span class="linenos">3892</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3893"><a href="#DataType.Type-3893"><span class="linenos">3893</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-3894"><a href="#DataType.Type-3894"><span class="linenos">3894</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-3895"><a href="#DataType.Type-3895"><span class="linenos">3895</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3896"><a href="#DataType.Type-3896"><span class="linenos">3896</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3897"><a href="#DataType.Type-3897"><span class="linenos">3897</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3898"><a href="#DataType.Type-3898"><span class="linenos">3898</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-3899"><a href="#DataType.Type-3899"><span class="linenos">3899</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-3900"><a href="#DataType.Type-3900"><span class="linenos">3900</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-3901"><a href="#DataType.Type-3901"><span class="linenos">3901</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3902"><a href="#DataType.Type-3902"><span class="linenos">3902</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-3903"><a href="#DataType.Type-3903"><span class="linenos">3903</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-3904"><a href="#DataType.Type-3904"><span class="linenos">3904</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-3905"><a href="#DataType.Type-3905"><span class="linenos">3905</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-3906"><a href="#DataType.Type-3906"><span class="linenos">3906</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-3907"><a href="#DataType.Type-3907"><span class="linenos">3907</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3908"><a href="#DataType.Type-3908"><span class="linenos">3908</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3909"><a href="#DataType.Type-3909"><span class="linenos">3909</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3910"><a href="#DataType.Type-3910"><span class="linenos">3910</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-3911"><a href="#DataType.Type-3911"><span class="linenos">3911</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3912"><a href="#DataType.Type-3912"><span class="linenos">3912</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-3913"><a href="#DataType.Type-3913"><span class="linenos">3913</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-3914"><a href="#DataType.Type-3914"><span class="linenos">3914</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-3915"><a href="#DataType.Type-3915"><span class="linenos">3915</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3916"><a href="#DataType.Type-3916"><span class="linenos">3916</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3917"><a href="#DataType.Type-3917"><span class="linenos">3917</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3918"><a href="#DataType.Type-3918"><span class="linenos">3918</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-3919"><a href="#DataType.Type-3919"><span class="linenos">3919</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3920"><a href="#DataType.Type-3920"><span class="linenos">3920</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3921"><a href="#DataType.Type-3921"><span class="linenos">3921</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3922"><a href="#DataType.Type-3922"><span class="linenos">3922</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3923"><a href="#DataType.Type-3923"><span class="linenos">3923</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-3924"><a href="#DataType.Type-3924"><span class="linenos">3924</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-3925"><a href="#DataType.Type-3925"><span class="linenos">3925</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3926"><a href="#DataType.Type-3926"><span class="linenos">3926</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3927"><a href="#DataType.Type-3927"><span class="linenos">3927</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3928"><a href="#DataType.Type-3928"><span class="linenos">3928</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3929"><a href="#DataType.Type-3929"><span class="linenos">3929</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-3930"><a href="#DataType.Type-3930"><span class="linenos">3930</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-3931"><a href="#DataType.Type-3931"><span class="linenos">3931</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
-</span><span id="DataType.Type-3932"><a href="#DataType.Type-3932"><span class="linenos">3932</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-3933"><a href="#DataType.Type-3933"><span class="linenos">3933</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-3934"><a href="#DataType.Type-3934"><span class="linenos">3934</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-3935"><a href="#DataType.Type-3935"><span class="linenos">3935</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-3936"><a href="#DataType.Type-3936"><span class="linenos">3936</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
-</span><span id="DataType.Type-3937"><a href="#DataType.Type-3937"><span class="linenos">3937</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-3938"><a href="#DataType.Type-3938"><span class="linenos">3938</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-3939"><a href="#DataType.Type-3939"><span class="linenos">3939</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-3862"><a href="#DataType.Type-3862"><span class="linenos">3862</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
+</span><span id="DataType.Type-3863"><a href="#DataType.Type-3863"><span class="linenos">3863</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-3864"><a href="#DataType.Type-3864"><span class="linenos">3864</span></a> <span class="n">AGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3865"><a href="#DataType.Type-3865"><span class="linenos">3865</span></a> <span class="n">SIMPLEAGGREGATEFUNCTION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3866"><a href="#DataType.Type-3866"><span class="linenos">3866</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3867"><a href="#DataType.Type-3867"><span class="linenos">3867</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-3868"><a href="#DataType.Type-3868"><span class="linenos">3868</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-3869"><a href="#DataType.Type-3869"><span class="linenos">3869</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-3870"><a href="#DataType.Type-3870"><span class="linenos">3870</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-3871"><a href="#DataType.Type-3871"><span class="linenos">3871</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-3872"><a href="#DataType.Type-3872"><span class="linenos">3872</span></a> <span class="n">BPCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3873"><a href="#DataType.Type-3873"><span class="linenos">3873</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3874"><a href="#DataType.Type-3874"><span class="linenos">3874</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-3875"><a href="#DataType.Type-3875"><span class="linenos">3875</span></a> <span class="n">DATE32</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3876"><a href="#DataType.Type-3876"><span class="linenos">3876</span></a> <span class="n">DATEMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3877"><a href="#DataType.Type-3877"><span class="linenos">3877</span></a> <span class="n">DATERANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3878"><a href="#DataType.Type-3878"><span class="linenos">3878</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-3879"><a href="#DataType.Type-3879"><span class="linenos">3879</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3880"><a href="#DataType.Type-3880"><span class="linenos">3880</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-3881"><a href="#DataType.Type-3881"><span class="linenos">3881</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-3882"><a href="#DataType.Type-3882"><span class="linenos">3882</span></a> <span class="n">ENUM</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3883"><a href="#DataType.Type-3883"><span class="linenos">3883</span></a> <span class="n">ENUM8</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3884"><a href="#DataType.Type-3884"><span class="linenos">3884</span></a> <span class="n">ENUM16</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3885"><a href="#DataType.Type-3885"><span class="linenos">3885</span></a> <span class="n">FIXEDSTRING</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3886"><a href="#DataType.Type-3886"><span class="linenos">3886</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-3887"><a href="#DataType.Type-3887"><span class="linenos">3887</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-3888"><a href="#DataType.Type-3888"><span class="linenos">3888</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-3889"><a href="#DataType.Type-3889"><span class="linenos">3889</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-3890"><a href="#DataType.Type-3890"><span class="linenos">3890</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-3891"><a href="#DataType.Type-3891"><span class="linenos">3891</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-3892"><a href="#DataType.Type-3892"><span class="linenos">3892</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-3893"><a href="#DataType.Type-3893"><span class="linenos">3893</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-3894"><a href="#DataType.Type-3894"><span class="linenos">3894</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3895"><a href="#DataType.Type-3895"><span class="linenos">3895</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3896"><a href="#DataType.Type-3896"><span class="linenos">3896</span></a> <span class="n">INT4MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3897"><a href="#DataType.Type-3897"><span class="linenos">3897</span></a> <span class="n">INT4RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3898"><a href="#DataType.Type-3898"><span class="linenos">3898</span></a> <span class="n">INT8MULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3899"><a href="#DataType.Type-3899"><span class="linenos">3899</span></a> <span class="n">INT8RANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3900"><a href="#DataType.Type-3900"><span class="linenos">3900</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-3901"><a href="#DataType.Type-3901"><span class="linenos">3901</span></a> <span class="n">IPADDRESS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3902"><a href="#DataType.Type-3902"><span class="linenos">3902</span></a> <span class="n">IPPREFIX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3903"><a href="#DataType.Type-3903"><span class="linenos">3903</span></a> <span class="n">IPV4</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3904"><a href="#DataType.Type-3904"><span class="linenos">3904</span></a> <span class="n">IPV6</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3905"><a href="#DataType.Type-3905"><span class="linenos">3905</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-3906"><a href="#DataType.Type-3906"><span class="linenos">3906</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-3907"><a href="#DataType.Type-3907"><span class="linenos">3907</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3908"><a href="#DataType.Type-3908"><span class="linenos">3908</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3909"><a href="#DataType.Type-3909"><span class="linenos">3909</span></a> <span class="n">LOWCARDINALITY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3910"><a href="#DataType.Type-3910"><span class="linenos">3910</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-3911"><a href="#DataType.Type-3911"><span class="linenos">3911</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3912"><a href="#DataType.Type-3912"><span class="linenos">3912</span></a> <span class="n">MEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3913"><a href="#DataType.Type-3913"><span class="linenos">3913</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3914"><a href="#DataType.Type-3914"><span class="linenos">3914</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-3915"><a href="#DataType.Type-3915"><span class="linenos">3915</span></a> <span class="n">NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3916"><a href="#DataType.Type-3916"><span class="linenos">3916</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3917"><a href="#DataType.Type-3917"><span class="linenos">3917</span></a> <span class="n">NESTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3918"><a href="#DataType.Type-3918"><span class="linenos">3918</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-3919"><a href="#DataType.Type-3919"><span class="linenos">3919</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-3920"><a href="#DataType.Type-3920"><span class="linenos">3920</span></a> <span class="n">NUMMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3921"><a href="#DataType.Type-3921"><span class="linenos">3921</span></a> <span class="n">NUMRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3922"><a href="#DataType.Type-3922"><span class="linenos">3922</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3923"><a href="#DataType.Type-3923"><span class="linenos">3923</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-3924"><a href="#DataType.Type-3924"><span class="linenos">3924</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-3925"><a href="#DataType.Type-3925"><span class="linenos">3925</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-3926"><a href="#DataType.Type-3926"><span class="linenos">3926</span></a> <span class="n">SET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3927"><a href="#DataType.Type-3927"><span class="linenos">3927</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-3928"><a href="#DataType.Type-3928"><span class="linenos">3928</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-3929"><a href="#DataType.Type-3929"><span class="linenos">3929</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-3930"><a href="#DataType.Type-3930"><span class="linenos">3930</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-3931"><a href="#DataType.Type-3931"><span class="linenos">3931</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-3932"><a href="#DataType.Type-3932"><span class="linenos">3932</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3933"><a href="#DataType.Type-3933"><span class="linenos">3933</span></a> <span class="n">TINYBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3934"><a href="#DataType.Type-3934"><span class="linenos">3934</span></a> <span class="n">TINYTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3935"><a href="#DataType.Type-3935"><span class="linenos">3935</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-3936"><a href="#DataType.Type-3936"><span class="linenos">3936</span></a> <span class="n">TIMETZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3937"><a href="#DataType.Type-3937"><span class="linenos">3937</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-3938"><a href="#DataType.Type-3938"><span class="linenos">3938</span></a> <span class="n">TIMESTAMPNTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3939"><a href="#DataType.Type-3939"><span class="linenos">3939</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-3940"><a href="#DataType.Type-3940"><span class="linenos">3940</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-3941"><a href="#DataType.Type-3941"><span class="linenos">3941</span></a> <span class="n">TIMESTAMP_S</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3942"><a href="#DataType.Type-3942"><span class="linenos">3942</span></a> <span class="n">TIMESTAMP_MS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3943"><a href="#DataType.Type-3943"><span class="linenos">3943</span></a> <span class="n">TIMESTAMP_NS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3944"><a href="#DataType.Type-3944"><span class="linenos">3944</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-3945"><a href="#DataType.Type-3945"><span class="linenos">3945</span></a> <span class="n">TSMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3946"><a href="#DataType.Type-3946"><span class="linenos">3946</span></a> <span class="n">TSRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3947"><a href="#DataType.Type-3947"><span class="linenos">3947</span></a> <span class="n">TSTZMULTIRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3948"><a href="#DataType.Type-3948"><span class="linenos">3948</span></a> <span class="n">TSTZRANGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3949"><a href="#DataType.Type-3949"><span class="linenos">3949</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-3950"><a href="#DataType.Type-3950"><span class="linenos">3950</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-3951"><a href="#DataType.Type-3951"><span class="linenos">3951</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3952"><a href="#DataType.Type-3952"><span class="linenos">3952</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3953"><a href="#DataType.Type-3953"><span class="linenos">3953</span></a> <span class="n">UMEDIUMINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3954"><a href="#DataType.Type-3954"><span class="linenos">3954</span></a> <span class="n">UDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3955"><a href="#DataType.Type-3955"><span class="linenos">3955</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-3956"><a href="#DataType.Type-3956"><span class="linenos">3956</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-3957"><a href="#DataType.Type-3957"><span class="linenos">3957</span></a> <span class="n">USERDEFINED</span> <span class="o">=</span> <span class="s2">&quot;USER-DEFINED&quot;</span>
+</span><span id="DataType.Type-3958"><a href="#DataType.Type-3958"><span class="linenos">3958</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-3959"><a href="#DataType.Type-3959"><span class="linenos">3959</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-3960"><a href="#DataType.Type-3960"><span class="linenos">3960</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-3961"><a href="#DataType.Type-3961"><span class="linenos">3961</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-3962"><a href="#DataType.Type-3962"><span class="linenos">3962</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3963"><a href="#DataType.Type-3963"><span class="linenos">3963</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-3964"><a href="#DataType.Type-3964"><span class="linenos">3964</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-3965"><a href="#DataType.Type-3965"><span class="linenos">3965</span></a> <span class="n">YEAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
+</span><span id="DataType.Type-3966"><a href="#DataType.Type-3966"><span class="linenos">3966</span></a> <span class="n">TDIGEST</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
@@ -53202,6 +53688,18 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
+ <div id="DataType.Type.TIMESTAMPNTZ" class="classattr">
+ <div class="attr variable">
+ <span class="name">TIMESTAMPNTZ</span> =
+<span class="default_value">&lt;Type.TIMESTAMPNTZ: &#39;TIMESTAMPNTZ&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.TIMESTAMPNTZ"></a>
+
+
+
+ </div>
<div id="DataType.Type.TIMESTAMPLTZ" class="classattr">
<div class="attr variable">
<span class="name">TIMESTAMPLTZ</span> =
@@ -53526,6 +54024,18 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
+ <div id="DataType.Type.TDIGEST" class="classattr">
+ <div class="attr variable">
+ <span class="name">TDIGEST</span> =
+<span class="default_value">&lt;Type.TDIGEST: &#39;TDIGEST&#39;&gt;</span>
+
+
+ </div>
+ <a class="headerlink" href="#DataType.Type.TDIGEST"></a>
+
+
+
+ </div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
@@ -53560,8 +54070,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#PseudoType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-4100"><a href="#PseudoType-4100"><span class="linenos">4100</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="PseudoType-4101"><a href="#PseudoType-4101"><span class="linenos">4101</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="PseudoType-4128"><a href="#PseudoType-4128"><span class="linenos">4128</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="PseudoType-4129"><a href="#PseudoType-4129"><span class="linenos">4129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -53695,8 +54205,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ObjectIdentifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ObjectIdentifier-4105"><a href="#ObjectIdentifier-4105"><span class="linenos">4105</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="ObjectIdentifier-4106"><a href="#ObjectIdentifier-4106"><span class="linenos">4106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="ObjectIdentifier-4133"><a href="#ObjectIdentifier-4133"><span class="linenos">4133</span></a><span class="k">class</span> <span class="nc">ObjectIdentifier</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="ObjectIdentifier-4134"><a href="#ObjectIdentifier-4134"><span class="linenos">4134</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -53830,8 +54340,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#SubqueryPredicate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-4110"><a href="#SubqueryPredicate-4110"><span class="linenos">4110</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-4111"><a href="#SubqueryPredicate-4111"><span class="linenos">4111</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-4138"><a href="#SubqueryPredicate-4138"><span class="linenos">4138</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-4139"><a href="#SubqueryPredicate-4139"><span class="linenos">4139</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -53939,8 +54449,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#All"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="All-4114"><a href="#All-4114"><span class="linenos">4114</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-4115"><a href="#All-4115"><span class="linenos">4115</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="All-4142"><a href="#All-4142"><span class="linenos">4142</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-4143"><a href="#All-4143"><span class="linenos">4143</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -54048,8 +54558,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Any"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Any-4118"><a href="#Any-4118"><span class="linenos">4118</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-4119"><a href="#Any-4119"><span class="linenos">4119</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Any-4146"><a href="#Any-4146"><span class="linenos">4146</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-4147"><a href="#Any-4147"><span class="linenos">4147</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -54157,8 +54667,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Exists"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-4122"><a href="#Exists-4122"><span class="linenos">4122</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-4123"><a href="#Exists-4123"><span class="linenos">4123</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-4150"><a href="#Exists-4150"><span class="linenos">4150</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-4151"><a href="#Exists-4151"><span class="linenos">4151</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -54266,8 +54776,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Command"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Command-4128"><a href="#Command-4128"><span class="linenos">4128</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-4129"><a href="#Command-4129"><span class="linenos">4129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4156"><a href="#Command-4156"><span class="linenos">4156</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-4157"><a href="#Command-4157"><span class="linenos">4157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -54386,8 +54896,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Transaction"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-4132"><a href="#Transaction-4132"><span class="linenos">4132</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-4133"><a href="#Transaction-4133"><span class="linenos">4133</span></a> <span class="n">arg_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 class="s2">&quot;mark&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-4160"><a href="#Transaction-4160"><span class="linenos">4160</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-4161"><a href="#Transaction-4161"><span class="linenos">4161</span></a> <span class="n">arg_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 class="s2">&quot;mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -54506,8 +55016,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Commit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-4136"><a href="#Commit-4136"><span class="linenos">4136</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-4137"><a href="#Commit-4137"><span class="linenos">4137</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&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-4164"><a href="#Commit-4164"><span class="linenos">4164</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-4165"><a href="#Commit-4165"><span class="linenos">4165</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;durability&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -54626,8 +55136,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Rollback"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-4140"><a href="#Rollback-4140"><span class="linenos">4140</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-4141"><a href="#Rollback-4141"><span class="linenos">4141</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 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="Rollback-4168"><a href="#Rollback-4168"><span class="linenos">4168</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-4169"><a href="#Rollback-4169"><span class="linenos">4169</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 class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -54746,14 +55256,14 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AlterTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-4144"><a href="#AlterTable-4144"><span class="linenos">4144</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-4145"><a href="#AlterTable-4145"><span class="linenos">4145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="AlterTable-4146"><a href="#AlterTable-4146"><span class="linenos">4146</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="AlterTable-4147"><a href="#AlterTable-4147"><span class="linenos">4147</span></a> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="AlterTable-4148"><a href="#AlterTable-4148"><span class="linenos">4148</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="AlterTable-4149"><a href="#AlterTable-4149"><span class="linenos">4149</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="AlterTable-4150"><a href="#AlterTable-4150"><span class="linenos">4150</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="AlterTable-4151"><a href="#AlterTable-4151"><span class="linenos">4151</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-4172"><a href="#AlterTable-4172"><span class="linenos">4172</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-4173"><a href="#AlterTable-4173"><span class="linenos">4173</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="AlterTable-4174"><a href="#AlterTable-4174"><span class="linenos">4174</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="AlterTable-4175"><a href="#AlterTable-4175"><span class="linenos">4175</span></a> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="AlterTable-4176"><a href="#AlterTable-4176"><span class="linenos">4176</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="AlterTable-4177"><a href="#AlterTable-4177"><span class="linenos">4177</span></a> <span class="s2">&quot;only&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="AlterTable-4178"><a href="#AlterTable-4178"><span class="linenos">4178</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="AlterTable-4179"><a href="#AlterTable-4179"><span class="linenos">4179</span></a> <span class="p">}</span>
</span></pre></div>
@@ -54872,8 +55382,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AddConstraint"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-4154"><a href="#AddConstraint-4154"><span class="linenos">4154</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-4155"><a href="#AddConstraint-4155"><span class="linenos">4155</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-4182"><a href="#AddConstraint-4182"><span class="linenos">4182</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-4183"><a href="#AddConstraint-4183"><span class="linenos">4183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -54992,8 +55502,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#DropPartition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-4158"><a href="#DropPartition-4158"><span class="linenos">4158</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-4159"><a href="#DropPartition-4159"><span class="linenos">4159</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-4186"><a href="#DropPartition-4186"><span class="linenos">4186</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-4187"><a href="#DropPartition-4187"><span class="linenos">4187</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>
@@ -55112,16 +55622,16 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Binary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-4163"><a href="#Binary-4163"><span class="linenos">4163</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Binary-4164"><a href="#Binary-4164"><span class="linenos">4164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4165"><a href="#Binary-4165"><span class="linenos">4165</span></a>
-</span><span id="Binary-4166"><a href="#Binary-4166"><span class="linenos">4166</span></a> <span class="nd">@property</span>
-</span><span id="Binary-4167"><a href="#Binary-4167"><span class="linenos">4167</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Binary-4168"><a href="#Binary-4168"><span class="linenos">4168</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-4169"><a href="#Binary-4169"><span class="linenos">4169</span></a>
-</span><span id="Binary-4170"><a href="#Binary-4170"><span class="linenos">4170</span></a> <span class="nd">@property</span>
-</span><span id="Binary-4171"><a href="#Binary-4171"><span class="linenos">4171</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Binary-4172"><a href="#Binary-4172"><span class="linenos">4172</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-4191"><a href="#Binary-4191"><span class="linenos">4191</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Binary-4192"><a href="#Binary-4192"><span class="linenos">4192</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4193"><a href="#Binary-4193"><span class="linenos">4193</span></a>
+</span><span id="Binary-4194"><a href="#Binary-4194"><span class="linenos">4194</span></a> <span class="nd">@property</span>
+</span><span id="Binary-4195"><a href="#Binary-4195"><span class="linenos">4195</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary-4196"><a href="#Binary-4196"><span class="linenos">4196</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-4197"><a href="#Binary-4197"><span class="linenos">4197</span></a>
+</span><span id="Binary-4198"><a href="#Binary-4198"><span class="linenos">4198</span></a> <span class="nd">@property</span>
+</span><span id="Binary-4199"><a href="#Binary-4199"><span class="linenos">4199</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary-4200"><a href="#Binary-4200"><span class="linenos">4200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -55148,9 +55658,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Binary.left"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary.left-4166"><a href="#Binary.left-4166"><span class="linenos">4166</span></a> <span class="nd">@property</span>
-</span><span id="Binary.left-4167"><a href="#Binary.left-4167"><span class="linenos">4167</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Binary.left-4168"><a href="#Binary.left-4168"><span class="linenos">4168</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Binary.left-4194"><a href="#Binary.left-4194"><span class="linenos">4194</span></a> <span class="nd">@property</span>
+</span><span id="Binary.left-4195"><a href="#Binary.left-4195"><span class="linenos">4195</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary.left-4196"><a href="#Binary.left-4196"><span class="linenos">4196</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span></pre></div>
@@ -55166,9 +55676,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Binary.right"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Binary.right-4170"><a href="#Binary.right-4170"><span class="linenos">4170</span></a> <span class="nd">@property</span>
-</span><span id="Binary.right-4171"><a href="#Binary.right-4171"><span class="linenos">4171</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="Binary.right-4172"><a href="#Binary.right-4172"><span class="linenos">4172</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.right-4198"><a href="#Binary.right-4198"><span class="linenos">4198</span></a> <span class="nd">@property</span>
+</span><span id="Binary.right-4199"><a href="#Binary.right-4199"><span class="linenos">4199</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 class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="Binary.right-4200"><a href="#Binary.right-4200"><span class="linenos">4200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
@@ -55276,8 +55786,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Add"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Add-4175"><a href="#Add-4175"><span class="linenos">4175</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-4176"><a href="#Add-4176"><span class="linenos">4176</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Add-4203"><a href="#Add-4203"><span class="linenos">4203</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-4204"><a href="#Add-4204"><span class="linenos">4204</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55390,8 +55900,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Connector"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-4179"><a href="#Connector-4179"><span class="linenos">4179</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><span id="Connector-4180"><a href="#Connector-4180"><span class="linenos">4180</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-4207"><a href="#Connector-4207"><span class="linenos">4207</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><span id="Connector-4208"><a href="#Connector-4208"><span class="linenos">4208</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55504,8 +56014,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#And"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="And-4183"><a href="#And-4183"><span class="linenos">4183</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-4184"><a href="#And-4184"><span class="linenos">4184</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="And-4211"><a href="#And-4211"><span class="linenos">4211</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-4212"><a href="#And-4212"><span class="linenos">4212</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55618,8 +56128,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Or"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Or-4187"><a href="#Or-4187"><span class="linenos">4187</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-4188"><a href="#Or-4188"><span class="linenos">4188</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Or-4215"><a href="#Or-4215"><span class="linenos">4215</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-4216"><a href="#Or-4216"><span class="linenos">4216</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55732,8 +56242,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-4191"><a href="#BitwiseAnd-4191"><span class="linenos">4191</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-4192"><a href="#BitwiseAnd-4192"><span class="linenos">4192</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-4219"><a href="#BitwiseAnd-4219"><span class="linenos">4219</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-4220"><a href="#BitwiseAnd-4220"><span class="linenos">4220</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55846,8 +56356,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseLeftShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-4195"><a href="#BitwiseLeftShift-4195"><span class="linenos">4195</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-4196"><a href="#BitwiseLeftShift-4196"><span class="linenos">4196</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-4223"><a href="#BitwiseLeftShift-4223"><span class="linenos">4223</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-4224"><a href="#BitwiseLeftShift-4224"><span class="linenos">4224</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -55960,8 +56470,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-4199"><a href="#BitwiseOr-4199"><span class="linenos">4199</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-4200"><a href="#BitwiseOr-4200"><span class="linenos">4200</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-4227"><a href="#BitwiseOr-4227"><span class="linenos">4227</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-4228"><a href="#BitwiseOr-4228"><span class="linenos">4228</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -56074,8 +56584,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseRightShift"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-4203"><a href="#BitwiseRightShift-4203"><span class="linenos">4203</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-4204"><a href="#BitwiseRightShift-4204"><span class="linenos">4204</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-4231"><a href="#BitwiseRightShift-4231"><span class="linenos">4231</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-4232"><a href="#BitwiseRightShift-4232"><span class="linenos">4232</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -56188,8 +56698,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseXor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-4207"><a href="#BitwiseXor-4207"><span class="linenos">4207</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-4208"><a href="#BitwiseXor-4208"><span class="linenos">4208</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-4235"><a href="#BitwiseXor-4235"><span class="linenos">4235</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-4236"><a href="#BitwiseXor-4236"><span class="linenos">4236</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -56302,8 +56812,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Div"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Div-4211"><a href="#Div-4211"><span class="linenos">4211</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-4212"><a href="#Div-4212"><span class="linenos">4212</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Div-4239"><a href="#Div-4239"><span class="linenos">4239</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-4240"><a href="#Div-4240"><span class="linenos">4240</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;typed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -56427,8 +56937,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Overlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-4215"><a href="#Overlaps-4215"><span class="linenos">4215</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-4216"><a href="#Overlaps-4216"><span class="linenos">4216</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-4243"><a href="#Overlaps-4243"><span class="linenos">4243</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-4244"><a href="#Overlaps-4244"><span class="linenos">4244</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -56541,42 +57051,42 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-4219"><a href="#Dot-4219"><span class="linenos">4219</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-4220"><a href="#Dot-4220"><span class="linenos">4220</span></a> <span class="nd">@property</span>
-</span><span id="Dot-4221"><a href="#Dot-4221"><span class="linenos">4221</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Dot-4222"><a href="#Dot-4222"><span class="linenos">4222</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">is_star</span>
-</span><span id="Dot-4223"><a href="#Dot-4223"><span class="linenos">4223</span></a>
-</span><span id="Dot-4224"><a href="#Dot-4224"><span class="linenos">4224</span></a> <span class="nd">@property</span>
-</span><span id="Dot-4225"><a href="#Dot-4225"><span class="linenos">4225</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-4226"><a href="#Dot-4226"><span class="linenos">4226</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="Dot-4227"><a href="#Dot-4227"><span class="linenos">4227</span></a>
-</span><span id="Dot-4228"><a href="#Dot-4228"><span class="linenos">4228</span></a> <span class="nd">@property</span>
-</span><span id="Dot-4229"><a href="#Dot-4229"><span class="linenos">4229</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Dot-4230"><a href="#Dot-4230"><span class="linenos">4230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
-</span><span id="Dot-4231"><a href="#Dot-4231"><span class="linenos">4231</span></a>
-</span><span id="Dot-4232"><a href="#Dot-4232"><span class="linenos">4232</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot-4233"><a href="#Dot-4233"><span class="linenos">4233</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Dot-4234"><a href="#Dot-4234"><span class="linenos">4234</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
-</span><span id="Dot-4235"><a href="#Dot-4235"><span class="linenos">4235</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
-</span><span id="Dot-4236"><a href="#Dot-4236"><span class="linenos">4236</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
-</span><span id="Dot-4237"><a href="#Dot-4237"><span class="linenos">4237</span></a>
-</span><span id="Dot-4238"><a href="#Dot-4238"><span class="linenos">4238</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
-</span><span id="Dot-4239"><a href="#Dot-4239"><span class="linenos">4239</span></a>
-</span><span id="Dot-4240"><a href="#Dot-4240"><span class="linenos">4240</span></a> <span class="nd">@property</span>
-</span><span id="Dot-4241"><a href="#Dot-4241"><span class="linenos">4241</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Dot-4242"><a href="#Dot-4242"><span class="linenos">4242</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="Dot-4243"><a href="#Dot-4243"><span class="linenos">4243</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
-</span><span id="Dot-4244"><a href="#Dot-4244"><span class="linenos">4244</span></a>
-</span><span id="Dot-4245"><a href="#Dot-4245"><span class="linenos">4245</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="Dot-4246"><a href="#Dot-4246"><span class="linenos">4246</span></a>
-</span><span id="Dot-4247"><a href="#Dot-4247"><span class="linenos">4247</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">COLUMN_PARTS</span><span class="p">:</span>
-</span><span id="Dot-4248"><a href="#Dot-4248"><span class="linenos">4248</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</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="Dot-4249"><a href="#Dot-4249"><span class="linenos">4249</span></a>
-</span><span id="Dot-4250"><a href="#Dot-4250"><span class="linenos">4250</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Dot-4251"><a href="#Dot-4251"><span class="linenos">4251</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="Dot-4252"><a href="#Dot-4252"><span class="linenos">4252</span></a>
-</span><span id="Dot-4253"><a href="#Dot-4253"><span class="linenos">4253</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="Dot-4254"><a href="#Dot-4254"><span class="linenos">4254</span></a> <span class="k">return</span> <span class="n">parts</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-4247"><a href="#Dot-4247"><span class="linenos">4247</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-4248"><a href="#Dot-4248"><span class="linenos">4248</span></a> <span class="nd">@property</span>
+</span><span id="Dot-4249"><a href="#Dot-4249"><span class="linenos">4249</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Dot-4250"><a href="#Dot-4250"><span class="linenos">4250</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">is_star</span>
+</span><span id="Dot-4251"><a href="#Dot-4251"><span class="linenos">4251</span></a>
+</span><span id="Dot-4252"><a href="#Dot-4252"><span class="linenos">4252</span></a> <span class="nd">@property</span>
+</span><span id="Dot-4253"><a href="#Dot-4253"><span class="linenos">4253</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-4254"><a href="#Dot-4254"><span class="linenos">4254</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="Dot-4255"><a href="#Dot-4255"><span class="linenos">4255</span></a>
+</span><span id="Dot-4256"><a href="#Dot-4256"><span class="linenos">4256</span></a> <span class="nd">@property</span>
+</span><span id="Dot-4257"><a href="#Dot-4257"><span class="linenos">4257</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Dot-4258"><a href="#Dot-4258"><span class="linenos">4258</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+</span><span id="Dot-4259"><a href="#Dot-4259"><span class="linenos">4259</span></a>
+</span><span id="Dot-4260"><a href="#Dot-4260"><span class="linenos">4260</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot-4261"><a href="#Dot-4261"><span class="linenos">4261</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Dot-4262"><a href="#Dot-4262"><span class="linenos">4262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
+</span><span id="Dot-4263"><a href="#Dot-4263"><span class="linenos">4263</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
+</span><span id="Dot-4264"><a href="#Dot-4264"><span class="linenos">4264</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
+</span><span id="Dot-4265"><a href="#Dot-4265"><span class="linenos">4265</span></a>
+</span><span id="Dot-4266"><a href="#Dot-4266"><span class="linenos">4266</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
+</span><span id="Dot-4267"><a href="#Dot-4267"><span class="linenos">4267</span></a>
+</span><span id="Dot-4268"><a href="#Dot-4268"><span class="linenos">4268</span></a> <span class="nd">@property</span>
+</span><span id="Dot-4269"><a href="#Dot-4269"><span class="linenos">4269</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Dot-4270"><a href="#Dot-4270"><span class="linenos">4270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Dot-4271"><a href="#Dot-4271"><span class="linenos">4271</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+</span><span id="Dot-4272"><a href="#Dot-4272"><span class="linenos">4272</span></a>
+</span><span id="Dot-4273"><a href="#Dot-4273"><span class="linenos">4273</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot-4274"><a href="#Dot-4274"><span class="linenos">4274</span></a>
+</span><span id="Dot-4275"><a href="#Dot-4275"><span class="linenos">4275</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">COLUMN_PARTS</span><span class="p">:</span>
+</span><span id="Dot-4276"><a href="#Dot-4276"><span class="linenos">4276</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</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="Dot-4277"><a href="#Dot-4277"><span class="linenos">4277</span></a>
+</span><span id="Dot-4278"><a href="#Dot-4278"><span class="linenos">4278</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Dot-4279"><a href="#Dot-4279"><span class="linenos">4279</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Dot-4280"><a href="#Dot-4280"><span class="linenos">4280</span></a>
+</span><span id="Dot-4281"><a href="#Dot-4281"><span class="linenos">4281</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot-4282"><a href="#Dot-4282"><span class="linenos">4282</span></a> <span class="k">return</span> <span class="n">parts</span>
</span></pre></div>
@@ -56591,9 +57101,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot.is_star"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.is_star-4220"><a href="#Dot.is_star-4220"><span class="linenos">4220</span></a> <span class="nd">@property</span>
-</span><span id="Dot.is_star-4221"><a href="#Dot.is_star-4221"><span class="linenos">4221</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Dot.is_star-4222"><a href="#Dot.is_star-4222"><span class="linenos">4222</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">is_star</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.is_star-4248"><a href="#Dot.is_star-4248"><span class="linenos">4248</span></a> <span class="nd">@property</span>
+</span><span id="Dot.is_star-4249"><a href="#Dot.is_star-4249"><span class="linenos">4249</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Dot.is_star-4250"><a href="#Dot.is_star-4250"><span class="linenos">4250</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">is_star</span>
</span></pre></div>
@@ -56611,9 +57121,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.name-4224"><a href="#Dot.name-4224"><span class="linenos">4224</span></a> <span class="nd">@property</span>
-</span><span id="Dot.name-4225"><a href="#Dot.name-4225"><span class="linenos">4225</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.name-4226"><a href="#Dot.name-4226"><span class="linenos">4226</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.name-4252"><a href="#Dot.name-4252"><span class="linenos">4252</span></a> <span class="nd">@property</span>
+</span><span id="Dot.name-4253"><a href="#Dot.name-4253"><span class="linenos">4253</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.name-4254"><a href="#Dot.name-4254"><span class="linenos">4254</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>
@@ -56629,9 +57139,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.output_name-4228"><a href="#Dot.output_name-4228"><span class="linenos">4228</span></a> <span class="nd">@property</span>
-</span><span id="Dot.output_name-4229"><a href="#Dot.output_name-4229"><span class="linenos">4229</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Dot.output_name-4230"><a href="#Dot.output_name-4230"><span class="linenos">4230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.output_name-4256"><a href="#Dot.output_name-4256"><span class="linenos">4256</span></a> <span class="nd">@property</span>
+</span><span id="Dot.output_name-4257"><a href="#Dot.output_name-4257"><span class="linenos">4257</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Dot.output_name-4258"><a href="#Dot.output_name-4258"><span class="linenos">4258</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -56669,13 +57179,13 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot.build"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-4232"><a href="#Dot.build-4232"><span class="linenos">4232</span></a> <span class="nd">@classmethod</span>
-</span><span id="Dot.build-4233"><a href="#Dot.build-4233"><span class="linenos">4233</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
-</span><span id="Dot.build-4234"><a href="#Dot.build-4234"><span class="linenos">4234</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
-</span><span id="Dot.build-4235"><a href="#Dot.build-4235"><span class="linenos">4235</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
-</span><span id="Dot.build-4236"><a href="#Dot.build-4236"><span class="linenos">4236</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
-</span><span id="Dot.build-4237"><a href="#Dot.build-4237"><span class="linenos">4237</span></a>
-</span><span id="Dot.build-4238"><a href="#Dot.build-4238"><span class="linenos">4238</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-4260"><a href="#Dot.build-4260"><span class="linenos">4260</span></a> <span class="nd">@classmethod</span>
+</span><span id="Dot.build-4261"><a href="#Dot.build-4261"><span class="linenos">4261</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
+</span><span id="Dot.build-4262"><a href="#Dot.build-4262"><span class="linenos">4262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
+</span><span id="Dot.build-4263"><a href="#Dot.build-4263"><span class="linenos">4263</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
+</span><span id="Dot.build-4264"><a href="#Dot.build-4264"><span class="linenos">4264</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
+</span><span id="Dot.build-4265"><a href="#Dot.build-4265"><span class="linenos">4265</span></a>
+</span><span id="Dot.build-4266"><a href="#Dot.build-4266"><span class="linenos">4266</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Dot</span><span class="p">,</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">y</span><span class="p">),</span> <span class="n">expressions</span><span class="p">))</span>
</span></pre></div>
@@ -56693,21 +57203,21 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Dot.parts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.parts-4240"><a href="#Dot.parts-4240"><span class="linenos">4240</span></a> <span class="nd">@property</span>
-</span><span id="Dot.parts-4241"><a href="#Dot.parts-4241"><span class="linenos">4241</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Dot.parts-4242"><a href="#Dot.parts-4242"><span class="linenos">4242</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
-</span><span id="Dot.parts-4243"><a href="#Dot.parts-4243"><span class="linenos">4243</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
-</span><span id="Dot.parts-4244"><a href="#Dot.parts-4244"><span class="linenos">4244</span></a>
-</span><span id="Dot.parts-4245"><a href="#Dot.parts-4245"><span class="linenos">4245</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="Dot.parts-4246"><a href="#Dot.parts-4246"><span class="linenos">4246</span></a>
-</span><span id="Dot.parts-4247"><a href="#Dot.parts-4247"><span class="linenos">4247</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">COLUMN_PARTS</span><span class="p">:</span>
-</span><span id="Dot.parts-4248"><a href="#Dot.parts-4248"><span class="linenos">4248</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</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="Dot.parts-4249"><a href="#Dot.parts-4249"><span class="linenos">4249</span></a>
-</span><span id="Dot.parts-4250"><a href="#Dot.parts-4250"><span class="linenos">4250</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="Dot.parts-4251"><a href="#Dot.parts-4251"><span class="linenos">4251</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
-</span><span id="Dot.parts-4252"><a href="#Dot.parts-4252"><span class="linenos">4252</span></a>
-</span><span id="Dot.parts-4253"><a href="#Dot.parts-4253"><span class="linenos">4253</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
-</span><span id="Dot.parts-4254"><a href="#Dot.parts-4254"><span class="linenos">4254</span></a> <span class="k">return</span> <span class="n">parts</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Dot.parts-4268"><a href="#Dot.parts-4268"><span class="linenos">4268</span></a> <span class="nd">@property</span>
+</span><span id="Dot.parts-4269"><a href="#Dot.parts-4269"><span class="linenos">4269</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Dot.parts-4270"><a href="#Dot.parts-4270"><span class="linenos">4270</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table / column in order catalog, db, table.&quot;&quot;&quot;</span>
+</span><span id="Dot.parts-4271"><a href="#Dot.parts-4271"><span class="linenos">4271</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+</span><span id="Dot.parts-4272"><a href="#Dot.parts-4272"><span class="linenos">4272</span></a>
+</span><span id="Dot.parts-4273"><a href="#Dot.parts-4273"><span class="linenos">4273</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot.parts-4274"><a href="#Dot.parts-4274"><span class="linenos">4274</span></a>
+</span><span id="Dot.parts-4275"><a href="#Dot.parts-4275"><span class="linenos">4275</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">COLUMN_PARTS</span><span class="p">:</span>
+</span><span id="Dot.parts-4276"><a href="#Dot.parts-4276"><span class="linenos">4276</span></a> <span class="n">part</span> <span class="o">=</span> <span class="n">this</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="Dot.parts-4277"><a href="#Dot.parts-4277"><span class="linenos">4277</span></a>
+</span><span id="Dot.parts-4278"><a href="#Dot.parts-4278"><span class="linenos">4278</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">part</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="Dot.parts-4279"><a href="#Dot.parts-4279"><span class="linenos">4279</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
+</span><span id="Dot.parts-4280"><a href="#Dot.parts-4280"><span class="linenos">4280</span></a>
+</span><span id="Dot.parts-4281"><a href="#Dot.parts-4281"><span class="linenos">4281</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
+</span><span id="Dot.parts-4282"><a href="#Dot.parts-4282"><span class="linenos">4282</span></a> <span class="k">return</span> <span class="n">parts</span>
</span></pre></div>
@@ -56820,8 +57330,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#DPipe"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-4257"><a href="#DPipe-4257"><span class="linenos">4257</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-4258"><a href="#DPipe-4258"><span class="linenos">4258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;safe&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="DPipe-4285"><a href="#DPipe-4285"><span class="linenos">4285</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-4286"><a href="#DPipe-4286"><span class="linenos">4286</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -56945,8 +57455,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#EQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-4261"><a href="#EQ-4261"><span class="linenos">4261</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-4262"><a href="#EQ-4262"><span class="linenos">4262</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-4289"><a href="#EQ-4289"><span class="linenos">4289</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-4290"><a href="#EQ-4290"><span class="linenos">4290</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57059,8 +57569,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#NullSafeEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-4265"><a href="#NullSafeEQ-4265"><span class="linenos">4265</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-4266"><a href="#NullSafeEQ-4266"><span class="linenos">4266</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-4293"><a href="#NullSafeEQ-4293"><span class="linenos">4293</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-4294"><a href="#NullSafeEQ-4294"><span class="linenos">4294</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57173,8 +57683,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#NullSafeNEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-4269"><a href="#NullSafeNEQ-4269"><span class="linenos">4269</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-4270"><a href="#NullSafeNEQ-4270"><span class="linenos">4270</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-4297"><a href="#NullSafeNEQ-4297"><span class="linenos">4297</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-4298"><a href="#NullSafeNEQ-4298"><span class="linenos">4298</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57287,8 +57797,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#PropertyEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PropertyEQ-4274"><a href="#PropertyEQ-4274"><span class="linenos">4274</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="PropertyEQ-4275"><a href="#PropertyEQ-4275"><span class="linenos">4275</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PropertyEQ-4302"><a href="#PropertyEQ-4302"><span class="linenos">4302</span></a><span class="k">class</span> <span class="nc">PropertyEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="PropertyEQ-4303"><a href="#PropertyEQ-4303"><span class="linenos">4303</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57401,8 +57911,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Distance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-4278"><a href="#Distance-4278"><span class="linenos">4278</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-4279"><a href="#Distance-4279"><span class="linenos">4279</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-4306"><a href="#Distance-4306"><span class="linenos">4306</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-4307"><a href="#Distance-4307"><span class="linenos">4307</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57515,8 +58025,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Escape"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-4282"><a href="#Escape-4282"><span class="linenos">4282</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-4283"><a href="#Escape-4283"><span class="linenos">4283</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-4310"><a href="#Escape-4310"><span class="linenos">4310</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-4311"><a href="#Escape-4311"><span class="linenos">4311</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57629,8 +58139,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Glob"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-4286"><a href="#Glob-4286"><span class="linenos">4286</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-4287"><a href="#Glob-4287"><span class="linenos">4287</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-4314"><a href="#Glob-4314"><span class="linenos">4314</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-4315"><a href="#Glob-4315"><span class="linenos">4315</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57743,8 +58253,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#GT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GT-4290"><a href="#GT-4290"><span class="linenos">4290</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-4291"><a href="#GT-4291"><span class="linenos">4291</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GT-4318"><a href="#GT-4318"><span class="linenos">4318</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-4319"><a href="#GT-4319"><span class="linenos">4319</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57857,8 +58367,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#GTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-4294"><a href="#GTE-4294"><span class="linenos">4294</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-4295"><a href="#GTE-4295"><span class="linenos">4295</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-4322"><a href="#GTE-4322"><span class="linenos">4322</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-4323"><a href="#GTE-4323"><span class="linenos">4323</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -57971,8 +58481,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-4298"><a href="#ILike-4298"><span class="linenos">4298</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-4299"><a href="#ILike-4299"><span class="linenos">4299</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-4326"><a href="#ILike-4326"><span class="linenos">4326</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-4327"><a href="#ILike-4327"><span class="linenos">4327</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58085,8 +58595,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ILikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-4302"><a href="#ILikeAny-4302"><span class="linenos">4302</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-4303"><a href="#ILikeAny-4303"><span class="linenos">4303</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-4330"><a href="#ILikeAny-4330"><span class="linenos">4330</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-4331"><a href="#ILikeAny-4331"><span class="linenos">4331</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58199,8 +58709,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntDiv"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-4306"><a href="#IntDiv-4306"><span class="linenos">4306</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-4307"><a href="#IntDiv-4307"><span class="linenos">4307</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-4334"><a href="#IntDiv-4334"><span class="linenos">4334</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-4335"><a href="#IntDiv-4335"><span class="linenos">4335</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58313,8 +58823,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Is"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Is-4310"><a href="#Is-4310"><span class="linenos">4310</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-4311"><a href="#Is-4311"><span class="linenos">4311</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Is-4338"><a href="#Is-4338"><span class="linenos">4338</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-4339"><a href="#Is-4339"><span class="linenos">4339</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58427,8 +58937,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Kwarg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-4314"><a href="#Kwarg-4314"><span class="linenos">4314</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-4315"><a href="#Kwarg-4315"><span class="linenos">4315</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-4342"><a href="#Kwarg-4342"><span class="linenos">4342</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-4343"><a href="#Kwarg-4343"><span class="linenos">4343</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>
@@ -58543,8 +59053,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Like"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Like-4318"><a href="#Like-4318"><span class="linenos">4318</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-4319"><a href="#Like-4319"><span class="linenos">4319</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Like-4346"><a href="#Like-4346"><span class="linenos">4346</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-4347"><a href="#Like-4347"><span class="linenos">4347</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58657,8 +59167,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#LikeAny"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-4322"><a href="#LikeAny-4322"><span class="linenos">4322</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-4323"><a href="#LikeAny-4323"><span class="linenos">4323</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-4350"><a href="#LikeAny-4350"><span class="linenos">4350</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-4351"><a href="#LikeAny-4351"><span class="linenos">4351</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58771,8 +59281,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#LT"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LT-4326"><a href="#LT-4326"><span class="linenos">4326</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-4327"><a href="#LT-4327"><span class="linenos">4327</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LT-4354"><a href="#LT-4354"><span class="linenos">4354</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-4355"><a href="#LT-4355"><span class="linenos">4355</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58885,8 +59395,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#LTE"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-4330"><a href="#LTE-4330"><span class="linenos">4330</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-4331"><a href="#LTE-4331"><span class="linenos">4331</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-4358"><a href="#LTE-4358"><span class="linenos">4358</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-4359"><a href="#LTE-4359"><span class="linenos">4359</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -58999,8 +59509,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Mod"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-4334"><a href="#Mod-4334"><span class="linenos">4334</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-4335"><a href="#Mod-4335"><span class="linenos">4335</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-4362"><a href="#Mod-4362"><span class="linenos">4362</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-4363"><a href="#Mod-4363"><span class="linenos">4363</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59113,8 +59623,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Mul"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-4338"><a href="#Mul-4338"><span class="linenos">4338</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-4339"><a href="#Mul-4339"><span class="linenos">4339</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-4366"><a href="#Mul-4366"><span class="linenos">4366</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-4367"><a href="#Mul-4367"><span class="linenos">4367</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59227,8 +59737,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#NEQ"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-4342"><a href="#NEQ-4342"><span class="linenos">4342</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-4343"><a href="#NEQ-4343"><span class="linenos">4343</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-4370"><a href="#NEQ-4370"><span class="linenos">4370</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-4371"><a href="#NEQ-4371"><span class="linenos">4371</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59341,8 +59851,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Operator"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Operator-4347"><a href="#Operator-4347"><span class="linenos">4347</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
-</span><span id="Operator-4348"><a href="#Operator-4348"><span class="linenos">4348</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&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="Operator-4375"><a href="#Operator-4375"><span class="linenos">4375</span></a><span class="k">class</span> <span class="nc">Operator</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
+</span><span id="Operator-4376"><a href="#Operator-4376"><span class="linenos">4376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;operator&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>
@@ -59466,8 +59976,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#SimilarTo"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-4351"><a href="#SimilarTo-4351"><span class="linenos">4351</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-4352"><a href="#SimilarTo-4352"><span class="linenos">4352</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-4379"><a href="#SimilarTo-4379"><span class="linenos">4379</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-4380"><a href="#SimilarTo-4380"><span class="linenos">4380</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59580,8 +60090,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Slice"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-4355"><a href="#Slice-4355"><span class="linenos">4355</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-4356"><a href="#Slice-4356"><span class="linenos">4356</span></a> <span class="n">arg_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-4383"><a href="#Slice-4383"><span class="linenos">4383</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-4384"><a href="#Slice-4384"><span class="linenos">4384</span></a> <span class="n">arg_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>
@@ -59705,8 +60215,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Sub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-4359"><a href="#Sub-4359"><span class="linenos">4359</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-4360"><a href="#Sub-4360"><span class="linenos">4360</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-4387"><a href="#Sub-4387"><span class="linenos">4387</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-4388"><a href="#Sub-4388"><span class="linenos">4388</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59819,8 +60329,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Unary"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-4365"><a href="#Unary-4365"><span class="linenos">4365</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
-</span><span id="Unary-4366"><a href="#Unary-4366"><span class="linenos">4366</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-4393"><a href="#Unary-4393"><span class="linenos">4393</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
+</span><span id="Unary-4394"><a href="#Unary-4394"><span class="linenos">4394</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -59928,8 +60438,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#BitwiseNot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-4369"><a href="#BitwiseNot-4369"><span class="linenos">4369</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-4370"><a href="#BitwiseNot-4370"><span class="linenos">4370</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-4397"><a href="#BitwiseNot-4397"><span class="linenos">4397</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-4398"><a href="#BitwiseNot-4398"><span class="linenos">4398</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -60037,8 +60547,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Not"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Not-4373"><a href="#Not-4373"><span class="linenos">4373</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><span id="Not-4374"><a href="#Not-4374"><span class="linenos">4374</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Not-4401"><a href="#Not-4401"><span class="linenos">4401</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><span id="Not-4402"><a href="#Not-4402"><span class="linenos">4402</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -60146,10 +60656,10 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-4377"><a href="#Paren-4377"><span class="linenos">4377</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><span id="Paren-4378"><a href="#Paren-4378"><span class="linenos">4378</span></a> <span class="nd">@property</span>
-</span><span id="Paren-4379"><a href="#Paren-4379"><span class="linenos">4379</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Paren-4380"><a href="#Paren-4380"><span class="linenos">4380</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-4405"><a href="#Paren-4405"><span class="linenos">4405</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><span id="Paren-4406"><a href="#Paren-4406"><span class="linenos">4406</span></a> <span class="nd">@property</span>
+</span><span id="Paren-4407"><a href="#Paren-4407"><span class="linenos">4407</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Paren-4408"><a href="#Paren-4408"><span class="linenos">4408</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></pre></div>
@@ -60164,9 +60674,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Paren.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Paren.output_name-4378"><a href="#Paren.output_name-4378"><span class="linenos">4378</span></a> <span class="nd">@property</span>
-</span><span id="Paren.output_name-4379"><a href="#Paren.output_name-4379"><span class="linenos">4379</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Paren.output_name-4380"><a href="#Paren.output_name-4380"><span class="linenos">4380</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Paren.output_name-4406"><a href="#Paren.output_name-4406"><span class="linenos">4406</span></a> <span class="nd">@property</span>
+</span><span id="Paren.output_name-4407"><a href="#Paren.output_name-4407"><span class="linenos">4407</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Paren.output_name-4408"><a href="#Paren.output_name-4408"><span class="linenos">4408</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></pre></div>
@@ -60293,8 +60803,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Neg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-4383"><a href="#Neg-4383"><span class="linenos">4383</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-4384"><a href="#Neg-4384"><span class="linenos">4384</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-4411"><a href="#Neg-4411"><span class="linenos">4411</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-4412"><a href="#Neg-4412"><span class="linenos">4412</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -60402,12 +60912,12 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Alias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-4387"><a href="#Alias-4387"><span class="linenos">4387</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-4388"><a href="#Alias-4388"><span class="linenos">4388</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4389"><a href="#Alias-4389"><span class="linenos">4389</span></a>
-</span><span id="Alias-4390"><a href="#Alias-4390"><span class="linenos">4390</span></a> <span class="nd">@property</span>
-</span><span id="Alias-4391"><a href="#Alias-4391"><span class="linenos">4391</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Alias-4392"><a href="#Alias-4392"><span class="linenos">4392</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-4415"><a href="#Alias-4415"><span class="linenos">4415</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-4416"><a href="#Alias-4416"><span class="linenos">4416</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4417"><a href="#Alias-4417"><span class="linenos">4417</span></a>
+</span><span id="Alias-4418"><a href="#Alias-4418"><span class="linenos">4418</span></a> <span class="nd">@property</span>
+</span><span id="Alias-4419"><a href="#Alias-4419"><span class="linenos">4419</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Alias-4420"><a href="#Alias-4420"><span class="linenos">4420</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -60434,9 +60944,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Alias.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Alias.output_name-4390"><a href="#Alias.output_name-4390"><span class="linenos">4390</span></a> <span class="nd">@property</span>
-</span><span id="Alias.output_name-4391"><a href="#Alias.output_name-4391"><span class="linenos">4391</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Alias.output_name-4392"><a href="#Alias.output_name-4392"><span class="linenos">4392</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.output_name-4418"><a href="#Alias.output_name-4418"><span class="linenos">4418</span></a> <span class="nd">@property</span>
+</span><span id="Alias.output_name-4419"><a href="#Alias.output_name-4419"><span class="linenos">4419</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Alias.output_name-4420"><a href="#Alias.output_name-4420"><span class="linenos">4420</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
@@ -60562,8 +61072,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#PivotAlias"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PivotAlias-4397"><a href="#PivotAlias-4397"><span class="linenos">4397</span></a><span class="k">class</span> <span class="nc">PivotAlias</span><span class="p">(</span><span class="n">Alias</span><span class="p">):</span>
-</span><span id="PivotAlias-4398"><a href="#PivotAlias-4398"><span class="linenos">4398</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PivotAlias-4425"><a href="#PivotAlias-4425"><span class="linenos">4425</span></a><span class="k">class</span> <span class="nc">PivotAlias</span><span class="p">(</span><span class="n">Alias</span><span class="p">):</span>
+</span><span id="PivotAlias-4426"><a href="#PivotAlias-4426"><span class="linenos">4426</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -60674,12 +61184,12 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Aliases"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-4401"><a href="#Aliases-4401"><span class="linenos">4401</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-4402"><a href="#Aliases-4402"><span class="linenos">4402</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4403"><a href="#Aliases-4403"><span class="linenos">4403</span></a>
-</span><span id="Aliases-4404"><a href="#Aliases-4404"><span class="linenos">4404</span></a> <span class="nd">@property</span>
-</span><span id="Aliases-4405"><a href="#Aliases-4405"><span class="linenos">4405</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-4406"><a href="#Aliases-4406"><span class="linenos">4406</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-4429"><a href="#Aliases-4429"><span class="linenos">4429</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-4430"><a href="#Aliases-4430"><span class="linenos">4430</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4431"><a href="#Aliases-4431"><span class="linenos">4431</span></a>
+</span><span id="Aliases-4432"><a href="#Aliases-4432"><span class="linenos">4432</span></a> <span class="nd">@property</span>
+</span><span id="Aliases-4433"><a href="#Aliases-4433"><span class="linenos">4433</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-4434"><a href="#Aliases-4434"><span class="linenos">4434</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -60706,9 +61216,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Aliases.aliases"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases.aliases-4404"><a href="#Aliases.aliases-4404"><span class="linenos">4404</span></a> <span class="nd">@property</span>
-</span><span id="Aliases.aliases-4405"><a href="#Aliases.aliases-4405"><span class="linenos">4405</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.aliases-4406"><a href="#Aliases.aliases-4406"><span class="linenos">4406</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.aliases-4432"><a href="#Aliases.aliases-4432"><span class="linenos">4432</span></a> <span class="nd">@property</span>
+</span><span id="Aliases.aliases-4433"><a href="#Aliases.aliases-4433"><span class="linenos">4433</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.aliases-4434"><a href="#Aliases.aliases-4434"><span class="linenos">4434</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -60816,8 +61326,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AtIndex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AtIndex-4410"><a href="#AtIndex-4410"><span class="linenos">4410</span></a><span class="k">class</span> <span class="nc">AtIndex</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="AtIndex-4411"><a href="#AtIndex-4411"><span class="linenos">4411</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="AtIndex-4438"><a href="#AtIndex-4438"><span class="linenos">4438</span></a><span class="k">class</span> <span class="nc">AtIndex</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="AtIndex-4439"><a href="#AtIndex-4439"><span class="linenos">4439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -60936,8 +61446,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#AtTimeZone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-4414"><a href="#AtTimeZone-4414"><span class="linenos">4414</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-4415"><a href="#AtTimeZone-4415"><span class="linenos">4415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4442"><a href="#AtTimeZone-4442"><span class="linenos">4442</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-4443"><a href="#AtTimeZone-4443"><span class="linenos">4443</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -61056,8 +61566,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#FromTimeZone"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromTimeZone-4418"><a href="#FromTimeZone-4418"><span class="linenos">4418</span></a><span class="k">class</span> <span class="nc">FromTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="FromTimeZone-4419"><a href="#FromTimeZone-4419"><span class="linenos">4419</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="FromTimeZone-4446"><a href="#FromTimeZone-4446"><span class="linenos">4446</span></a><span class="k">class</span> <span class="nc">FromTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="FromTimeZone-4447"><a href="#FromTimeZone-4447"><span class="linenos">4447</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -61176,8 +61686,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Between"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Between-4422"><a href="#Between-4422"><span class="linenos">4422</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-4423"><a href="#Between-4423"><span class="linenos">4423</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4450"><a href="#Between-4450"><span class="linenos">4450</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-4451"><a href="#Between-4451"><span class="linenos">4451</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -61296,22 +61806,22 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Bracket"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-4426"><a href="#Bracket-4426"><span class="linenos">4426</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-4427"><a href="#Bracket-4427"><span class="linenos">4427</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
-</span><span id="Bracket-4428"><a href="#Bracket-4428"><span class="linenos">4428</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Bracket-4429"><a href="#Bracket-4429"><span class="linenos">4429</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="Bracket-4430"><a href="#Bracket-4430"><span class="linenos">4430</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Bracket-4431"><a href="#Bracket-4431"><span class="linenos">4431</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Bracket-4432"><a href="#Bracket-4432"><span class="linenos">4432</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Bracket-4433"><a href="#Bracket-4433"><span class="linenos">4433</span></a> <span class="s2">&quot;returns_list_for_maps&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Bracket-4434"><a href="#Bracket-4434"><span class="linenos">4434</span></a> <span class="p">}</span>
-</span><span id="Bracket-4435"><a href="#Bracket-4435"><span class="linenos">4435</span></a>
-</span><span id="Bracket-4436"><a href="#Bracket-4436"><span class="linenos">4436</span></a> <span class="nd">@property</span>
-</span><span id="Bracket-4437"><a href="#Bracket-4437"><span class="linenos">4437</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Bracket-4438"><a href="#Bracket-4438"><span class="linenos">4438</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
-</span><span id="Bracket-4439"><a href="#Bracket-4439"><span class="linenos">4439</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</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">output_name</span>
-</span><span id="Bracket-4440"><a href="#Bracket-4440"><span class="linenos">4440</span></a>
-</span><span id="Bracket-4441"><a href="#Bracket-4441"><span class="linenos">4441</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-4454"><a href="#Bracket-4454"><span class="linenos">4454</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-4455"><a href="#Bracket-4455"><span class="linenos">4455</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator</span>
+</span><span id="Bracket-4456"><a href="#Bracket-4456"><span class="linenos">4456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Bracket-4457"><a href="#Bracket-4457"><span class="linenos">4457</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="Bracket-4458"><a href="#Bracket-4458"><span class="linenos">4458</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Bracket-4459"><a href="#Bracket-4459"><span class="linenos">4459</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Bracket-4460"><a href="#Bracket-4460"><span class="linenos">4460</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Bracket-4461"><a href="#Bracket-4461"><span class="linenos">4461</span></a> <span class="s2">&quot;returns_list_for_maps&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Bracket-4462"><a href="#Bracket-4462"><span class="linenos">4462</span></a> <span class="p">}</span>
+</span><span id="Bracket-4463"><a href="#Bracket-4463"><span class="linenos">4463</span></a>
+</span><span id="Bracket-4464"><a href="#Bracket-4464"><span class="linenos">4464</span></a> <span class="nd">@property</span>
+</span><span id="Bracket-4465"><a href="#Bracket-4465"><span class="linenos">4465</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Bracket-4466"><a href="#Bracket-4466"><span class="linenos">4466</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+</span><span id="Bracket-4467"><a href="#Bracket-4467"><span class="linenos">4467</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</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">output_name</span>
+</span><span id="Bracket-4468"><a href="#Bracket-4468"><span class="linenos">4468</span></a>
+</span><span id="Bracket-4469"><a href="#Bracket-4469"><span class="linenos">4469</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
</span></pre></div>
@@ -61338,12 +61848,12 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Bracket.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket.output_name-4436"><a href="#Bracket.output_name-4436"><span class="linenos">4436</span></a> <span class="nd">@property</span>
-</span><span id="Bracket.output_name-4437"><a href="#Bracket.output_name-4437"><span class="linenos">4437</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Bracket.output_name-4438"><a href="#Bracket.output_name-4438"><span class="linenos">4438</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
-</span><span id="Bracket.output_name-4439"><a href="#Bracket.output_name-4439"><span class="linenos">4439</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</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">output_name</span>
-</span><span id="Bracket.output_name-4440"><a href="#Bracket.output_name-4440"><span class="linenos">4440</span></a>
-</span><span id="Bracket.output_name-4441"><a href="#Bracket.output_name-4441"><span class="linenos">4441</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket.output_name-4464"><a href="#Bracket.output_name-4464"><span class="linenos">4464</span></a> <span class="nd">@property</span>
+</span><span id="Bracket.output_name-4465"><a href="#Bracket.output_name-4465"><span class="linenos">4465</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Bracket.output_name-4466"><a href="#Bracket.output_name-4466"><span class="linenos">4466</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+</span><span id="Bracket.output_name-4467"><a href="#Bracket.output_name-4467"><span class="linenos">4467</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</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">output_name</span>
+</span><span id="Bracket.output_name-4468"><a href="#Bracket.output_name-4468"><span class="linenos">4468</span></a>
+</span><span id="Bracket.output_name-4469"><a href="#Bracket.output_name-4469"><span class="linenos">4469</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">output_name</span>
</span></pre></div>
@@ -61469,8 +61979,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Distinct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-4444"><a href="#Distinct-4444"><span class="linenos">4444</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-4445"><a href="#Distinct-4445"><span class="linenos">4445</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-4472"><a href="#Distinct-4472"><span class="linenos">4472</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-4473"><a href="#Distinct-4473"><span class="linenos">4473</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>
@@ -61589,15 +62099,15 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#In"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="In-4448"><a href="#In-4448"><span class="linenos">4448</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-4449"><a href="#In-4449"><span class="linenos">4449</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="In-4450"><a href="#In-4450"><span class="linenos">4450</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-4451"><a href="#In-4451"><span class="linenos">4451</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-4452"><a href="#In-4452"><span class="linenos">4452</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-4453"><a href="#In-4453"><span class="linenos">4453</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-4454"><a href="#In-4454"><span class="linenos">4454</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-4455"><a href="#In-4455"><span class="linenos">4455</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-4456"><a href="#In-4456"><span class="linenos">4456</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="In-4476"><a href="#In-4476"><span class="linenos">4476</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-4477"><a href="#In-4477"><span class="linenos">4477</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="In-4478"><a href="#In-4478"><span class="linenos">4478</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-4479"><a href="#In-4479"><span class="linenos">4479</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-4480"><a href="#In-4480"><span class="linenos">4480</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-4481"><a href="#In-4481"><span class="linenos">4481</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-4482"><a href="#In-4482"><span class="linenos">4482</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-4483"><a href="#In-4483"><span class="linenos">4483</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-4484"><a href="#In-4484"><span class="linenos">4484</span></a> <span class="p">}</span>
</span></pre></div>
@@ -61717,8 +62227,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#ForIn"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ForIn-4460"><a href="#ForIn-4460"><span class="linenos">4460</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="ForIn-4461"><a href="#ForIn-4461"><span class="linenos">4461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ForIn-4488"><a href="#ForIn-4488"><span class="linenos">4488</span></a><span class="k">class</span> <span class="nc">ForIn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="ForIn-4489"><a href="#ForIn-4489"><span class="linenos">4489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -61837,40 +62347,40 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#TimeUnit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-4464"><a href="#TimeUnit-4464"><span class="linenos">4464</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-4465"><a href="#TimeUnit-4465"><span class="linenos">4465</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-4466"><a href="#TimeUnit-4466"><span class="linenos">4466</span></a>
-</span><span id="TimeUnit-4467"><a href="#TimeUnit-4467"><span class="linenos">4467</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-4468"><a href="#TimeUnit-4468"><span class="linenos">4468</span></a>
-</span><span id="TimeUnit-4469"><a href="#TimeUnit-4469"><span class="linenos">4469</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TimeUnit-4470"><a href="#TimeUnit-4470"><span class="linenos">4470</span></a> <span class="s2">&quot;D&quot;</span><span class="p">:</span> <span class="s2">&quot;DAY&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4471"><a href="#TimeUnit-4471"><span class="linenos">4471</span></a> <span class="s2">&quot;H&quot;</span><span class="p">:</span> <span class="s2">&quot;HOUR&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4472"><a href="#TimeUnit-4472"><span class="linenos">4472</span></a> <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="s2">&quot;MINUTE&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4473"><a href="#TimeUnit-4473"><span class="linenos">4473</span></a> <span class="s2">&quot;MS&quot;</span><span class="p">:</span> <span class="s2">&quot;MILLISECOND&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4474"><a href="#TimeUnit-4474"><span class="linenos">4474</span></a> <span class="s2">&quot;NS&quot;</span><span class="p">:</span> <span class="s2">&quot;NANOSECOND&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4475"><a href="#TimeUnit-4475"><span class="linenos">4475</span></a> <span class="s2">&quot;Q&quot;</span><span class="p">:</span> <span class="s2">&quot;QUARTER&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4476"><a href="#TimeUnit-4476"><span class="linenos">4476</span></a> <span class="s2">&quot;S&quot;</span><span class="p">:</span> <span class="s2">&quot;SECOND&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4477"><a href="#TimeUnit-4477"><span class="linenos">4477</span></a> <span class="s2">&quot;US&quot;</span><span class="p">:</span> <span class="s2">&quot;MICROSECOND&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4478"><a href="#TimeUnit-4478"><span class="linenos">4478</span></a> <span class="s2">&quot;W&quot;</span><span class="p">:</span> <span class="s2">&quot;WEEK&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4479"><a href="#TimeUnit-4479"><span class="linenos">4479</span></a> <span class="s2">&quot;Y&quot;</span><span class="p">:</span> <span class="s2">&quot;YEAR&quot;</span><span class="p">,</span>
-</span><span id="TimeUnit-4480"><a href="#TimeUnit-4480"><span class="linenos">4480</span></a> <span class="p">}</span>
-</span><span id="TimeUnit-4481"><a href="#TimeUnit-4481"><span class="linenos">4481</span></a>
-</span><span id="TimeUnit-4482"><a href="#TimeUnit-4482"><span class="linenos">4482</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
-</span><span id="TimeUnit-4483"><a href="#TimeUnit-4483"><span class="linenos">4483</span></a>
-</span><span id="TimeUnit-4484"><a href="#TimeUnit-4484"><span class="linenos">4484</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-4485"><a href="#TimeUnit-4485"><span class="linenos">4485</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-4486"><a href="#TimeUnit-4486"><span class="linenos">4486</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="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="TimeUnit-4487"><a href="#TimeUnit-4487"><span class="linenos">4487</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><span id="TimeUnit-4488"><a href="#TimeUnit-4488"><span class="linenos">4488</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="TimeUnit-4489"><a href="#TimeUnit-4489"><span class="linenos">4489</span></a> <span class="p">)</span>
-</span><span id="TimeUnit-4490"><a href="#TimeUnit-4490"><span class="linenos">4490</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-4491"><a href="#TimeUnit-4491"><span class="linenos">4491</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
-</span><span id="TimeUnit-4492"><a href="#TimeUnit-4492"><span class="linenos">4492</span></a>
-</span><span id="TimeUnit-4493"><a href="#TimeUnit-4493"><span class="linenos">4493</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-4492"><a href="#TimeUnit-4492"><span class="linenos">4492</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-4493"><a href="#TimeUnit-4493"><span class="linenos">4493</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-4494"><a href="#TimeUnit-4494"><span class="linenos">4494</span></a>
-</span><span id="TimeUnit-4495"><a href="#TimeUnit-4495"><span class="linenos">4495</span></a> <span class="nd">@property</span>
-</span><span id="TimeUnit-4496"><a href="#TimeUnit-4496"><span class="linenos">4496</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span> <span class="o">|</span> <span class="n">IntervalSpan</span><span class="p">]:</span>
-</span><span id="TimeUnit-4497"><a href="#TimeUnit-4497"><span class="linenos">4497</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+</span><span id="TimeUnit-4495"><a href="#TimeUnit-4495"><span class="linenos">4495</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-4496"><a href="#TimeUnit-4496"><span class="linenos">4496</span></a>
+</span><span id="TimeUnit-4497"><a href="#TimeUnit-4497"><span class="linenos">4497</span></a> <span class="n">UNABBREVIATED_UNIT_NAME</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TimeUnit-4498"><a href="#TimeUnit-4498"><span class="linenos">4498</span></a> <span class="s2">&quot;D&quot;</span><span class="p">:</span> <span class="s2">&quot;DAY&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4499"><a href="#TimeUnit-4499"><span class="linenos">4499</span></a> <span class="s2">&quot;H&quot;</span><span class="p">:</span> <span class="s2">&quot;HOUR&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4500"><a href="#TimeUnit-4500"><span class="linenos">4500</span></a> <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="s2">&quot;MINUTE&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4501"><a href="#TimeUnit-4501"><span class="linenos">4501</span></a> <span class="s2">&quot;MS&quot;</span><span class="p">:</span> <span class="s2">&quot;MILLISECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4502"><a href="#TimeUnit-4502"><span class="linenos">4502</span></a> <span class="s2">&quot;NS&quot;</span><span class="p">:</span> <span class="s2">&quot;NANOSECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4503"><a href="#TimeUnit-4503"><span class="linenos">4503</span></a> <span class="s2">&quot;Q&quot;</span><span class="p">:</span> <span class="s2">&quot;QUARTER&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4504"><a href="#TimeUnit-4504"><span class="linenos">4504</span></a> <span class="s2">&quot;S&quot;</span><span class="p">:</span> <span class="s2">&quot;SECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4505"><a href="#TimeUnit-4505"><span class="linenos">4505</span></a> <span class="s2">&quot;US&quot;</span><span class="p">:</span> <span class="s2">&quot;MICROSECOND&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4506"><a href="#TimeUnit-4506"><span class="linenos">4506</span></a> <span class="s2">&quot;W&quot;</span><span class="p">:</span> <span class="s2">&quot;WEEK&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4507"><a href="#TimeUnit-4507"><span class="linenos">4507</span></a> <span class="s2">&quot;Y&quot;</span><span class="p">:</span> <span class="s2">&quot;YEAR&quot;</span><span class="p">,</span>
+</span><span id="TimeUnit-4508"><a href="#TimeUnit-4508"><span class="linenos">4508</span></a> <span class="p">}</span>
+</span><span id="TimeUnit-4509"><a href="#TimeUnit-4509"><span class="linenos">4509</span></a>
+</span><span id="TimeUnit-4510"><a href="#TimeUnit-4510"><span class="linenos">4510</span></a> <span class="n">VAR_LIKE</span> <span class="o">=</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)</span>
+</span><span id="TimeUnit-4511"><a href="#TimeUnit-4511"><span class="linenos">4511</span></a>
+</span><span id="TimeUnit-4512"><a href="#TimeUnit-4512"><span class="linenos">4512</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-4513"><a href="#TimeUnit-4513"><span class="linenos">4513</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-4514"><a href="#TimeUnit-4514"><span class="linenos">4514</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="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="TimeUnit-4515"><a href="#TimeUnit-4515"><span class="linenos">4515</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><span id="TimeUnit-4516"><a href="#TimeUnit-4516"><span class="linenos">4516</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="TimeUnit-4517"><a href="#TimeUnit-4517"><span class="linenos">4517</span></a> <span class="p">)</span>
+</span><span id="TimeUnit-4518"><a href="#TimeUnit-4518"><span class="linenos">4518</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-4519"><a href="#TimeUnit-4519"><span class="linenos">4519</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="TimeUnit-4520"><a href="#TimeUnit-4520"><span class="linenos">4520</span></a>
+</span><span id="TimeUnit-4521"><a href="#TimeUnit-4521"><span class="linenos">4521</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="TimeUnit-4522"><a href="#TimeUnit-4522"><span class="linenos">4522</span></a>
+</span><span id="TimeUnit-4523"><a href="#TimeUnit-4523"><span class="linenos">4523</span></a> <span class="nd">@property</span>
+</span><span id="TimeUnit-4524"><a href="#TimeUnit-4524"><span class="linenos">4524</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span> <span class="o">|</span> <span class="n">IntervalSpan</span><span class="p">]:</span>
+</span><span id="TimeUnit-4525"><a href="#TimeUnit-4525"><span class="linenos">4525</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -61888,16 +62398,16 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#TimeUnit.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-4484"><a href="#TimeUnit.__init__-4484"><span class="linenos">4484</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__-4485"><a href="#TimeUnit.__init__-4485"><span class="linenos">4485</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__-4486"><a href="#TimeUnit.__init__-4486"><span class="linenos">4486</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="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="TimeUnit.__init__-4487"><a href="#TimeUnit.__init__-4487"><span class="linenos">4487</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><span id="TimeUnit.__init__-4488"><a href="#TimeUnit.__init__-4488"><span class="linenos">4488</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="TimeUnit.__init__-4489"><a href="#TimeUnit.__init__-4489"><span class="linenos">4489</span></a> <span class="p">)</span>
-</span><span id="TimeUnit.__init__-4490"><a href="#TimeUnit.__init__-4490"><span class="linenos">4490</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__-4491"><a href="#TimeUnit.__init__-4491"><span class="linenos">4491</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
-</span><span id="TimeUnit.__init__-4492"><a href="#TimeUnit.__init__-4492"><span class="linenos">4492</span></a>
-</span><span id="TimeUnit.__init__-4493"><a href="#TimeUnit.__init__-4493"><span class="linenos">4493</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__-4512"><a href="#TimeUnit.__init__-4512"><span class="linenos">4512</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__-4513"><a href="#TimeUnit.__init__-4513"><span class="linenos">4513</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__-4514"><a href="#TimeUnit.__init__-4514"><span class="linenos">4514</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="bp">self</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="TimeUnit.__init__-4515"><a href="#TimeUnit.__init__-4515"><span class="linenos">4515</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><span id="TimeUnit.__init__-4516"><a href="#TimeUnit.__init__-4516"><span class="linenos">4516</span></a> <span class="n">this</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="TimeUnit.__init__-4517"><a href="#TimeUnit.__init__-4517"><span class="linenos">4517</span></a> <span class="p">)</span>
+</span><span id="TimeUnit.__init__-4518"><a href="#TimeUnit.__init__-4518"><span class="linenos">4518</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__-4519"><a href="#TimeUnit.__init__-4519"><span class="linenos">4519</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="TimeUnit.__init__-4520"><a href="#TimeUnit.__init__-4520"><span class="linenos">4520</span></a>
+</span><span id="TimeUnit.__init__-4521"><a href="#TimeUnit.__init__-4521"><span class="linenos">4521</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>
@@ -61951,9 +62461,9 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#TimeUnit.unit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.unit-4495"><a href="#TimeUnit.unit-4495"><span class="linenos">4495</span></a> <span class="nd">@property</span>
-</span><span id="TimeUnit.unit-4496"><a href="#TimeUnit.unit-4496"><span class="linenos">4496</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span> <span class="o">|</span> <span class="n">IntervalSpan</span><span class="p">]:</span>
-</span><span id="TimeUnit.unit-4497"><a href="#TimeUnit.unit-4497"><span class="linenos">4497</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.unit-4523"><a href="#TimeUnit.unit-4523"><span class="linenos">4523</span></a> <span class="nd">@property</span>
+</span><span id="TimeUnit.unit-4524"><a href="#TimeUnit.unit-4524"><span class="linenos">4524</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span> <span class="o">|</span> <span class="n">IntervalSpan</span><span class="p">]:</span>
+</span><span id="TimeUnit.unit-4525"><a href="#TimeUnit.unit-4525"><span class="linenos">4525</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;unit&quot;</span><span class="p">)</span>
</span></pre></div>
@@ -62060,14 +62570,14 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntervalOp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp-4500"><a href="#IntervalOp-4500"><span class="linenos">4500</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
-</span><span id="IntervalOp-4501"><a href="#IntervalOp-4501"><span class="linenos">4501</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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
-</span><span id="IntervalOp-4502"><a href="#IntervalOp-4502"><span class="linenos">4502</span></a>
-</span><span id="IntervalOp-4503"><a href="#IntervalOp-4503"><span class="linenos">4503</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="IntervalOp-4504"><a href="#IntervalOp-4504"><span class="linenos">4504</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="IntervalOp-4505"><a href="#IntervalOp-4505"><span class="linenos">4505</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp-4506"><a href="#IntervalOp-4506"><span class="linenos">4506</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp-4507"><a href="#IntervalOp-4507"><span class="linenos">4507</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp-4528"><a href="#IntervalOp-4528"><span class="linenos">4528</span></a><span class="k">class</span> <span class="nc">IntervalOp</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
+</span><span id="IntervalOp-4529"><a href="#IntervalOp-4529"><span class="linenos">4529</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;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+</span><span id="IntervalOp-4530"><a href="#IntervalOp-4530"><span class="linenos">4530</span></a>
+</span><span id="IntervalOp-4531"><a href="#IntervalOp-4531"><span class="linenos">4531</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="IntervalOp-4532"><a href="#IntervalOp-4532"><span class="linenos">4532</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="IntervalOp-4533"><a href="#IntervalOp-4533"><span class="linenos">4533</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp-4534"><a href="#IntervalOp-4534"><span class="linenos">4534</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp-4535"><a href="#IntervalOp-4535"><span class="linenos">4535</span></a> <span class="p">)</span>
</span></pre></div>
@@ -62096,11 +62606,11 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntervalOp.interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp.interval-4503"><a href="#IntervalOp.interval-4503"><span class="linenos">4503</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-</span><span id="IntervalOp.interval-4504"><a href="#IntervalOp.interval-4504"><span class="linenos">4504</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="IntervalOp.interval-4505"><a href="#IntervalOp.interval-4505"><span class="linenos">4505</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp.interval-4506"><a href="#IntervalOp.interval-4506"><span class="linenos">4506</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
-</span><span id="IntervalOp.interval-4507"><a href="#IntervalOp.interval-4507"><span class="linenos">4507</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalOp.interval-4531"><a href="#IntervalOp.interval-4531"><span class="linenos">4531</span></a> <span class="k">def</span> <span class="nf">interval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="IntervalOp.interval-4532"><a href="#IntervalOp.interval-4532"><span class="linenos">4532</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="IntervalOp.interval-4533"><a href="#IntervalOp.interval-4533"><span class="linenos">4533</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp.interval-4534"><a href="#IntervalOp.interval-4534"><span class="linenos">4534</span></a> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">unit</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span>
+</span><span id="IntervalOp.interval-4535"><a href="#IntervalOp.interval-4535"><span class="linenos">4535</span></a> <span class="p">)</span>
</span></pre></div>
@@ -62214,8 +62724,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IntervalSpan"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IntervalSpan-4513"><a href="#IntervalSpan-4513"><span class="linenos">4513</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
-</span><span id="IntervalSpan-4514"><a href="#IntervalSpan-4514"><span class="linenos">4514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="IntervalSpan-4541"><a href="#IntervalSpan-4541"><span class="linenos">4541</span></a><span class="k">class</span> <span class="nc">IntervalSpan</span><span class="p">(</span><span class="n">DataType</span><span class="p">):</span>
+</span><span id="IntervalSpan-4542"><a href="#IntervalSpan-4542"><span class="linenos">4542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -62349,8 +62859,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Interval"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-4517"><a href="#Interval-4517"><span class="linenos">4517</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-4518"><a href="#Interval-4518"><span class="linenos">4518</span></a> <span class="n">arg_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-4545"><a href="#Interval-4545"><span class="linenos">4545</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-4546"><a href="#Interval-4546"><span class="linenos">4546</span></a> <span class="n">arg_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>
@@ -62475,8 +62985,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#IgnoreNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-4521"><a href="#IgnoreNulls-4521"><span class="linenos">4521</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-4522"><a href="#IgnoreNulls-4522"><span class="linenos">4522</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-4549"><a href="#IgnoreNulls-4549"><span class="linenos">4549</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-4550"><a href="#IgnoreNulls-4550"><span class="linenos">4550</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -62584,8 +63094,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#RespectNulls"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-4525"><a href="#RespectNulls-4525"><span class="linenos">4525</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-4526"><a href="#RespectNulls-4526"><span class="linenos">4526</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-4553"><a href="#RespectNulls-4553"><span class="linenos">4553</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-4554"><a href="#RespectNulls-4554"><span class="linenos">4554</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -62693,8 +63203,8 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#HavingMax"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="HavingMax-4530"><a href="#HavingMax-4530"><span class="linenos">4530</span></a><span class="k">class</span> <span class="nc">HavingMax</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="HavingMax-4531"><a href="#HavingMax-4531"><span class="linenos">4531</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;max&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="HavingMax-4558"><a href="#HavingMax-4558"><span class="linenos">4558</span></a><span class="k">class</span> <span class="nc">HavingMax</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="HavingMax-4559"><a href="#HavingMax-4559"><span class="linenos">4559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -62813,53 +63323,53 @@ will be compared using "structural equivalence" semantics, so e.g. array<int> !=
</div>
<a class="headerlink" href="#Func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Func-4535"><a href="#Func-4535"><span class="linenos">4535</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-4536"><a href="#Func-4536"><span class="linenos">4536</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Func-4537"><a href="#Func-4537"><span class="linenos">4537</span></a><span class="sd"> The base class for all function expressions.</span>
-</span><span id="Func-4538"><a href="#Func-4538"><span class="linenos">4538</span></a>
-</span><span id="Func-4539"><a href="#Func-4539"><span class="linenos">4539</span></a><span class="sd"> Attributes:</span>
-</span><span id="Func-4540"><a href="#Func-4540"><span class="linenos">4540</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-4541"><a href="#Func-4541"><span class="linenos">4541</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-4542"><a href="#Func-4542"><span class="linenos">4542</span></a><span class="sd"> _sql_names (list): the SQL name (1st item in the list) and aliases (subsequent items) for this</span>
-</span><span id="Func-4543"><a href="#Func-4543"><span class="linenos">4543</span></a><span class="sd"> function expression. These values are used to map this node to a name during parsing as</span>
-</span><span id="Func-4544"><a href="#Func-4544"><span class="linenos">4544</span></a><span class="sd"> well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
-</span><span id="Func-4545"><a href="#Func-4545"><span class="linenos">4545</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
-</span><span id="Func-4546"><a href="#Func-4546"><span class="linenos">4546</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Func-4547"><a href="#Func-4547"><span class="linenos">4547</span></a>
-</span><span id="Func-4548"><a href="#Func-4548"><span class="linenos">4548</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
-</span><span id="Func-4549"><a href="#Func-4549"><span class="linenos">4549</span></a>
-</span><span id="Func-4550"><a href="#Func-4550"><span class="linenos">4550</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4551"><a href="#Func-4551"><span class="linenos">4551</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-4552"><a href="#Func-4552"><span class="linenos">4552</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-4553"><a href="#Func-4553"><span class="linenos">4553</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-4554"><a href="#Func-4554"><span class="linenos">4554</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
-</span><span id="Func-4555"><a href="#Func-4555"><span class="linenos">4555</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-4556"><a href="#Func-4556"><span class="linenos">4556</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-4557"><a href="#Func-4557"><span class="linenos">4557</span></a>
-</span><span id="Func-4558"><a href="#Func-4558"><span class="linenos">4558</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-4559"><a href="#Func-4559"><span class="linenos">4559</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-4560"><a href="#Func-4560"><span class="linenos">4560</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func-4561"><a href="#Func-4561"><span class="linenos">4561</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-4562"><a href="#Func-4562"><span class="linenos">4562</span></a>
-</span><span id="Func-4563"><a href="#Func-4563"><span class="linenos">4563</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-4564"><a href="#Func-4564"><span class="linenos">4564</span></a>
-</span><span id="Func-4565"><a href="#Func-4565"><span class="linenos">4565</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4566"><a href="#Func-4566"><span class="linenos">4566</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-4567"><a href="#Func-4567"><span class="linenos">4567</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-4568"><a href="#Func-4568"><span class="linenos">4568</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func-4569"><a href="#Func-4569"><span class="linenos">4569</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func-4570"><a href="#Func-4570"><span class="linenos">4570</span></a> <span class="p">)</span>
-</span><span id="Func-4571"><a href="#Func-4571"><span class="linenos">4571</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-4572"><a href="#Func-4572"><span class="linenos">4572</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-4573"><a href="#Func-4573"><span class="linenos">4573</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-4574"><a href="#Func-4574"><span class="linenos">4574</span></a>
-</span><span id="Func-4575"><a href="#Func-4575"><span class="linenos">4575</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4576"><a href="#Func-4576"><span class="linenos">4576</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-4577"><a href="#Func-4577"><span class="linenos">4577</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-4578"><a href="#Func-4578"><span class="linenos">4578</span></a>
-</span><span id="Func-4579"><a href="#Func-4579"><span class="linenos">4579</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func-4580"><a href="#Func-4580"><span class="linenos">4580</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-4581"><a href="#Func-4581"><span class="linenos">4581</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-4563"><a href="#Func-4563"><span class="linenos">4563</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-4564"><a href="#Func-4564"><span class="linenos">4564</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Func-4565"><a href="#Func-4565"><span class="linenos">4565</span></a><span class="sd"> The base class for all function expressions.</span>
+</span><span id="Func-4566"><a href="#Func-4566"><span class="linenos">4566</span></a>
+</span><span id="Func-4567"><a href="#Func-4567"><span class="linenos">4567</span></a><span class="sd"> Attributes:</span>
+</span><span id="Func-4568"><a href="#Func-4568"><span class="linenos">4568</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-4569"><a href="#Func-4569"><span class="linenos">4569</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-4570"><a href="#Func-4570"><span class="linenos">4570</span></a><span class="sd"> _sql_names (list): the SQL name (1st item in the list) and aliases (subsequent items) for this</span>
+</span><span id="Func-4571"><a href="#Func-4571"><span class="linenos">4571</span></a><span class="sd"> function expression. These values are used to map this node to a name during parsing as</span>
+</span><span id="Func-4572"><a href="#Func-4572"><span class="linenos">4572</span></a><span class="sd"> well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
+</span><span id="Func-4573"><a href="#Func-4573"><span class="linenos">4573</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
+</span><span id="Func-4574"><a href="#Func-4574"><span class="linenos">4574</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Func-4575"><a href="#Func-4575"><span class="linenos">4575</span></a>
+</span><span id="Func-4576"><a href="#Func-4576"><span class="linenos">4576</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
+</span><span id="Func-4577"><a href="#Func-4577"><span class="linenos">4577</span></a>
+</span><span id="Func-4578"><a href="#Func-4578"><span class="linenos">4578</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4579"><a href="#Func-4579"><span class="linenos">4579</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-4580"><a href="#Func-4580"><span class="linenos">4580</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-4581"><a href="#Func-4581"><span class="linenos">4581</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-4582"><a href="#Func-4582"><span class="linenos">4582</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
+</span><span id="Func-4583"><a href="#Func-4583"><span class="linenos">4583</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-4584"><a href="#Func-4584"><span class="linenos">4584</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-4585"><a href="#Func-4585"><span class="linenos">4585</span></a>
+</span><span id="Func-4586"><a href="#Func-4586"><span class="linenos">4586</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-4587"><a href="#Func-4587"><span class="linenos">4587</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-4588"><a href="#Func-4588"><span class="linenos">4588</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func-4589"><a href="#Func-4589"><span class="linenos">4589</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-4590"><a href="#Func-4590"><span class="linenos">4590</span></a>
+</span><span id="Func-4591"><a href="#Func-4591"><span class="linenos">4591</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-4592"><a href="#Func-4592"><span class="linenos">4592</span></a>
+</span><span id="Func-4593"><a href="#Func-4593"><span class="linenos">4593</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4594"><a href="#Func-4594"><span class="linenos">4594</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-4595"><a href="#Func-4595"><span class="linenos">4595</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-4596"><a href="#Func-4596"><span class="linenos">4596</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func-4597"><a href="#Func-4597"><span class="linenos">4597</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func-4598"><a href="#Func-4598"><span class="linenos">4598</span></a> <span class="p">)</span>
+</span><span id="Func-4599"><a href="#Func-4599"><span class="linenos">4599</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-4600"><a href="#Func-4600"><span class="linenos">4600</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-4601"><a href="#Func-4601"><span class="linenos">4601</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-4602"><a href="#Func-4602"><span class="linenos">4602</span></a>
+</span><span id="Func-4603"><a href="#Func-4603"><span class="linenos">4603</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4604"><a href="#Func-4604"><span class="linenos">4604</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-4605"><a href="#Func-4605"><span class="linenos">4605</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-4606"><a href="#Func-4606"><span class="linenos">4606</span></a>
+</span><span id="Func-4607"><a href="#Func-4607"><span class="linenos">4607</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func-4608"><a href="#Func-4608"><span class="linenos">4608</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-4609"><a href="#Func-4609"><span class="linenos">4609</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>
@@ -62902,20 +63412,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-4550"><a href="#Func.from_arg_list-4550"><span class="linenos">4550</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.from_arg_list-4551"><a href="#Func.from_arg_list-4551"><span class="linenos">4551</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-4552"><a href="#Func.from_arg_list-4552"><span class="linenos">4552</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-4553"><a href="#Func.from_arg_list-4553"><span class="linenos">4553</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-4554"><a href="#Func.from_arg_list-4554"><span class="linenos">4554</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-4555"><a href="#Func.from_arg_list-4555"><span class="linenos">4555</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-4556"><a href="#Func.from_arg_list-4556"><span class="linenos">4556</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-4557"><a href="#Func.from_arg_list-4557"><span class="linenos">4557</span></a>
-</span><span id="Func.from_arg_list-4558"><a href="#Func.from_arg_list-4558"><span class="linenos">4558</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-4559"><a href="#Func.from_arg_list-4559"><span class="linenos">4559</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-4560"><a href="#Func.from_arg_list-4560"><span class="linenos">4560</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="Func.from_arg_list-4561"><a href="#Func.from_arg_list-4561"><span class="linenos">4561</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-4562"><a href="#Func.from_arg_list-4562"><span class="linenos">4562</span></a>
-</span><span id="Func.from_arg_list-4563"><a href="#Func.from_arg_list-4563"><span class="linenos">4563</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-4578"><a href="#Func.from_arg_list-4578"><span class="linenos">4578</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.from_arg_list-4579"><a href="#Func.from_arg_list-4579"><span class="linenos">4579</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-4580"><a href="#Func.from_arg_list-4580"><span class="linenos">4580</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-4581"><a href="#Func.from_arg_list-4581"><span class="linenos">4581</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-4582"><a href="#Func.from_arg_list-4582"><span class="linenos">4582</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-4583"><a href="#Func.from_arg_list-4583"><span class="linenos">4583</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-4584"><a href="#Func.from_arg_list-4584"><span class="linenos">4584</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-4585"><a href="#Func.from_arg_list-4585"><span class="linenos">4585</span></a>
+</span><span id="Func.from_arg_list-4586"><a href="#Func.from_arg_list-4586"><span class="linenos">4586</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-4587"><a href="#Func.from_arg_list-4587"><span class="linenos">4587</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-4588"><a href="#Func.from_arg_list-4588"><span class="linenos">4588</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="Func.from_arg_list-4589"><a href="#Func.from_arg_list-4589"><span class="linenos">4589</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-4590"><a href="#Func.from_arg_list-4590"><span class="linenos">4590</span></a>
+</span><span id="Func.from_arg_list-4591"><a href="#Func.from_arg_list-4591"><span class="linenos">4591</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>
@@ -62934,15 +63444,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-4565"><a href="#Func.sql_names-4565"><span class="linenos">4565</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_names-4566"><a href="#Func.sql_names-4566"><span class="linenos">4566</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-4567"><a href="#Func.sql_names-4567"><span class="linenos">4567</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-4568"><a href="#Func.sql_names-4568"><span class="linenos">4568</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
-</span><span id="Func.sql_names-4569"><a href="#Func.sql_names-4569"><span class="linenos">4569</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
-</span><span id="Func.sql_names-4570"><a href="#Func.sql_names-4570"><span class="linenos">4570</span></a> <span class="p">)</span>
-</span><span id="Func.sql_names-4571"><a href="#Func.sql_names-4571"><span class="linenos">4571</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-4572"><a href="#Func.sql_names-4572"><span class="linenos">4572</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-4573"><a href="#Func.sql_names-4573"><span class="linenos">4573</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-4593"><a href="#Func.sql_names-4593"><span class="linenos">4593</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_names-4594"><a href="#Func.sql_names-4594"><span class="linenos">4594</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-4595"><a href="#Func.sql_names-4595"><span class="linenos">4595</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-4596"><a href="#Func.sql_names-4596"><span class="linenos">4596</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
+</span><span id="Func.sql_names-4597"><a href="#Func.sql_names-4597"><span class="linenos">4597</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
+</span><span id="Func.sql_names-4598"><a href="#Func.sql_names-4598"><span class="linenos">4598</span></a> <span class="p">)</span>
+</span><span id="Func.sql_names-4599"><a href="#Func.sql_names-4599"><span class="linenos">4599</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-4600"><a href="#Func.sql_names-4600"><span class="linenos">4600</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-4601"><a href="#Func.sql_names-4601"><span class="linenos">4601</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>
@@ -62961,9 +63471,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-4575"><a href="#Func.sql_name-4575"><span class="linenos">4575</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.sql_name-4576"><a href="#Func.sql_name-4576"><span class="linenos">4576</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-4577"><a href="#Func.sql_name-4577"><span class="linenos">4577</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-4603"><a href="#Func.sql_name-4603"><span class="linenos">4603</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.sql_name-4604"><a href="#Func.sql_name-4604"><span class="linenos">4604</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-4605"><a href="#Func.sql_name-4605"><span class="linenos">4605</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>
@@ -62982,9 +63492,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-4579"><a href="#Func.default_parser_mappings-4579"><span class="linenos">4579</span></a> <span class="nd">@classmethod</span>
-</span><span id="Func.default_parser_mappings-4580"><a href="#Func.default_parser_mappings-4580"><span class="linenos">4580</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-4581"><a href="#Func.default_parser_mappings-4581"><span class="linenos">4581</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-4607"><a href="#Func.default_parser_mappings-4607"><span class="linenos">4607</span></a> <span class="nd">@classmethod</span>
+</span><span id="Func.default_parser_mappings-4608"><a href="#Func.default_parser_mappings-4608"><span class="linenos">4608</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-4609"><a href="#Func.default_parser_mappings-4609"><span class="linenos">4609</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>
@@ -63093,8 +63603,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-4584"><a href="#AggFunc-4584"><span class="linenos">4584</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-4585"><a href="#AggFunc-4585"><span class="linenos">4585</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-4612"><a href="#AggFunc-4612"><span class="linenos">4612</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-4613"><a href="#AggFunc-4613"><span class="linenos">4613</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -63210,8 +63720,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ParameterizedAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ParameterizedAgg-4588"><a href="#ParameterizedAgg-4588"><span class="linenos">4588</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ParameterizedAgg-4589"><a href="#ParameterizedAgg-4589"><span class="linenos">4589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;params&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="ParameterizedAgg-4616"><a href="#ParameterizedAgg-4616"><span class="linenos">4616</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ParameterizedAgg-4617"><a href="#ParameterizedAgg-4617"><span class="linenos">4617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -63338,8 +63848,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-4592"><a href="#Abs-4592"><span class="linenos">4592</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-4593"><a href="#Abs-4593"><span class="linenos">4593</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-4620"><a href="#Abs-4620"><span class="linenos">4620</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-4621"><a href="#Abs-4621"><span class="linenos">4621</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -63455,9 +63965,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArgMax"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMax-4596"><a href="#ArgMax-4596"><span class="linenos">4596</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArgMax-4597"><a href="#ArgMax-4597"><span class="linenos">4597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ArgMax-4598"><a href="#ArgMax-4598"><span class="linenos">4598</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMax-4624"><a href="#ArgMax-4624"><span class="linenos">4624</span></a><span class="k">class</span> <span class="nc">ArgMax</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArgMax-4625"><a href="#ArgMax-4625"><span class="linenos">4625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ArgMax-4626"><a href="#ArgMax-4626"><span class="linenos">4626</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MAX&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMAX&quot;</span><span class="p">,</span> <span class="s2">&quot;MAX_BY&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -63584,9 +64094,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArgMin"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMin-4601"><a href="#ArgMin-4601"><span class="linenos">4601</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArgMin-4602"><a href="#ArgMin-4602"><span class="linenos">4602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="ArgMin-4603"><a href="#ArgMin-4603"><span class="linenos">4603</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArgMin-4629"><a href="#ArgMin-4629"><span class="linenos">4629</span></a><span class="k">class</span> <span class="nc">ArgMin</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArgMin-4630"><a href="#ArgMin-4630"><span class="linenos">4630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="ArgMin-4631"><a href="#ArgMin-4631"><span class="linenos">4631</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARG_MIN&quot;</span><span class="p">,</span> <span class="s2">&quot;ARGMIN&quot;</span><span class="p">,</span> <span class="s2">&quot;MIN_BY&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -63713,8 +64223,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ApproxTopK"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxTopK-4606"><a href="#ApproxTopK-4606"><span class="linenos">4606</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ApproxTopK-4607"><a href="#ApproxTopK-4607"><span class="linenos">4607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;counters&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="ApproxTopK-4634"><a href="#ApproxTopK-4634"><span class="linenos">4634</span></a><span class="k">class</span> <span class="nc">ApproxTopK</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ApproxTopK-4635"><a href="#ApproxTopK-4635"><span class="linenos">4635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;counters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -63841,8 +64351,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Flatten"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Flatten-4610"><a href="#Flatten-4610"><span class="linenos">4610</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Flatten-4611"><a href="#Flatten-4611"><span class="linenos">4611</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Flatten-4638"><a href="#Flatten-4638"><span class="linenos">4638</span></a><span class="k">class</span> <span class="nc">Flatten</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Flatten-4639"><a href="#Flatten-4639"><span class="linenos">4639</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -63958,8 +64468,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Transform"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Transform-4615"><a href="#Transform-4615"><span class="linenos">4615</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Transform-4616"><a href="#Transform-4616"><span class="linenos">4616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Transform-4643"><a href="#Transform-4643"><span class="linenos">4643</span></a><span class="k">class</span> <span class="nc">Transform</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Transform-4644"><a href="#Transform-4644"><span class="linenos">4644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -64086,13 +64596,13 @@ 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-4619"><a href="#Anonymous-4619"><span class="linenos">4619</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-4620"><a href="#Anonymous-4620"><span class="linenos">4620</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4621"><a href="#Anonymous-4621"><span class="linenos">4621</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Anonymous-4622"><a href="#Anonymous-4622"><span class="linenos">4622</span></a>
-</span><span id="Anonymous-4623"><a href="#Anonymous-4623"><span class="linenos">4623</span></a> <span class="nd">@property</span>
-</span><span id="Anonymous-4624"><a href="#Anonymous-4624"><span class="linenos">4624</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="Anonymous-4625"><a href="#Anonymous-4625"><span class="linenos">4625</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-4647"><a href="#Anonymous-4647"><span class="linenos">4647</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-4648"><a href="#Anonymous-4648"><span class="linenos">4648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4649"><a href="#Anonymous-4649"><span class="linenos">4649</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Anonymous-4650"><a href="#Anonymous-4650"><span class="linenos">4650</span></a>
+</span><span id="Anonymous-4651"><a href="#Anonymous-4651"><span class="linenos">4651</span></a> <span class="nd">@property</span>
+</span><span id="Anonymous-4652"><a href="#Anonymous-4652"><span class="linenos">4652</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="Anonymous-4653"><a href="#Anonymous-4653"><span class="linenos">4653</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</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></pre></div>
@@ -64131,9 +64641,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Anonymous.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous.name-4623"><a href="#Anonymous.name-4623"><span class="linenos">4623</span></a> <span class="nd">@property</span>
-</span><span id="Anonymous.name-4624"><a href="#Anonymous.name-4624"><span class="linenos">4624</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="Anonymous.name-4625"><a href="#Anonymous.name-4625"><span class="linenos">4625</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous.name-4651"><a href="#Anonymous.name-4651"><span class="linenos">4651</span></a> <span class="nd">@property</span>
+</span><span id="Anonymous.name-4652"><a href="#Anonymous.name-4652"><span class="linenos">4652</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="Anonymous.name-4653"><a href="#Anonymous.name-4653"><span class="linenos">4653</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</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></pre></div>
@@ -64247,9 +64757,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#AnonymousAggFunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AnonymousAggFunc-4628"><a href="#AnonymousAggFunc-4628"><span class="linenos">4628</span></a><span class="k">class</span> <span class="nc">AnonymousAggFunc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="AnonymousAggFunc-4629"><a href="#AnonymousAggFunc-4629"><span class="linenos">4629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="AnonymousAggFunc-4630"><a href="#AnonymousAggFunc-4630"><span class="linenos">4630</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="AnonymousAggFunc-4656"><a href="#AnonymousAggFunc-4656"><span class="linenos">4656</span></a><span class="k">class</span> <span class="nc">AnonymousAggFunc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="AnonymousAggFunc-4657"><a href="#AnonymousAggFunc-4657"><span class="linenos">4657</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="AnonymousAggFunc-4658"><a href="#AnonymousAggFunc-4658"><span class="linenos">4658</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -64387,8 +64897,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CombinedAggFunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CombinedAggFunc-4634"><a href="#CombinedAggFunc-4634"><span class="linenos">4634</span></a><span class="k">class</span> <span class="nc">CombinedAggFunc</span><span class="p">(</span><span class="n">AnonymousAggFunc</span><span class="p">):</span>
-</span><span id="CombinedAggFunc-4635"><a href="#CombinedAggFunc-4635"><span class="linenos">4635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;parts&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="CombinedAggFunc-4662"><a href="#CombinedAggFunc-4662"><span class="linenos">4662</span></a><span class="k">class</span> <span class="nc">CombinedAggFunc</span><span class="p">(</span><span class="n">AnonymousAggFunc</span><span class="p">):</span>
+</span><span id="CombinedAggFunc-4663"><a href="#CombinedAggFunc-4663"><span class="linenos">4663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -64518,8 +65028,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#CombinedParameterizedAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CombinedParameterizedAgg-4638"><a href="#CombinedParameterizedAgg-4638"><span class="linenos">4638</span></a><span class="k">class</span> <span class="nc">CombinedParameterizedAgg</span><span class="p">(</span><span class="n">ParameterizedAgg</span><span class="p">):</span>
-</span><span id="CombinedParameterizedAgg-4639"><a href="#CombinedParameterizedAgg-4639"><span class="linenos">4639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;parts&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="CombinedParameterizedAgg-4666"><a href="#CombinedParameterizedAgg-4666"><span class="linenos">4666</span></a><span class="k">class</span> <span class="nc">CombinedParameterizedAgg</span><span class="p">(</span><span class="n">ParameterizedAgg</span><span class="p">):</span>
+</span><span id="CombinedParameterizedAgg-4667"><a href="#CombinedParameterizedAgg-4667"><span class="linenos">4667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;parts&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -64646,9 +65156,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Hll"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hll-4644"><a href="#Hll-4644"><span class="linenos">4644</span></a><span class="k">class</span> <span class="nc">Hll</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Hll-4645"><a href="#Hll-4645"><span class="linenos">4645</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Hll-4646"><a href="#Hll-4646"><span class="linenos">4646</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="Hll-4672"><a href="#Hll-4672"><span class="linenos">4672</span></a><span class="k">class</span> <span class="nc">Hll</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Hll-4673"><a href="#Hll-4673"><span class="linenos">4673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Hll-4674"><a href="#Hll-4674"><span class="linenos">4674</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -64786,9 +65296,9 @@ 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-4649"><a href="#ApproxDistinct-4649"><span class="linenos">4649</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-4650"><a href="#ApproxDistinct-4650"><span class="linenos">4650</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ApproxDistinct-4651"><a href="#ApproxDistinct-4651"><span class="linenos">4651</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-4677"><a href="#ApproxDistinct-4677"><span class="linenos">4677</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-4678"><a href="#ApproxDistinct-4678"><span class="linenos">4678</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ApproxDistinct-4679"><a href="#ApproxDistinct-4679"><span class="linenos">4679</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -64915,9 +65425,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-4654"><a href="#Array-4654"><span class="linenos">4654</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-4655"><a href="#Array-4655"><span class="linenos">4655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Array-4656"><a href="#Array-4656"><span class="linenos">4656</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-4682"><a href="#Array-4682"><span class="linenos">4682</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-4683"><a href="#Array-4683"><span class="linenos">4683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Array-4684"><a href="#Array-4684"><span class="linenos">4684</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -65055,8 +65565,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ToArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToArray-4660"><a href="#ToArray-4660"><span class="linenos">4660</span></a><span class="k">class</span> <span class="nc">ToArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToArray-4661"><a href="#ToArray-4661"><span class="linenos">4661</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToArray-4688"><a href="#ToArray-4688"><span class="linenos">4688</span></a><span class="k">class</span> <span class="nc">ToArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToArray-4689"><a href="#ToArray-4689"><span class="linenos">4689</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65172,8 +65682,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ToChar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToChar-4666"><a href="#ToChar-4666"><span class="linenos">4666</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToChar-4667"><a href="#ToChar-4667"><span class="linenos">4667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nlsparam&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="ToChar-4694"><a href="#ToChar-4694"><span class="linenos">4694</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToChar-4695"><a href="#ToChar-4695"><span class="linenos">4695</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -65300,14 +65810,14 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ToNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToNumber-4672"><a href="#ToNumber-4672"><span class="linenos">4672</span></a><span class="k">class</span> <span class="nc">ToNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToNumber-4673"><a href="#ToNumber-4673"><span class="linenos">4673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="ToNumber-4674"><a href="#ToNumber-4674"><span class="linenos">4674</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="ToNumber-4675"><a href="#ToNumber-4675"><span class="linenos">4675</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ToNumber-4676"><a href="#ToNumber-4676"><span class="linenos">4676</span></a> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ToNumber-4677"><a href="#ToNumber-4677"><span class="linenos">4677</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ToNumber-4678"><a href="#ToNumber-4678"><span class="linenos">4678</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="ToNumber-4679"><a href="#ToNumber-4679"><span class="linenos">4679</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToNumber-4700"><a href="#ToNumber-4700"><span class="linenos">4700</span></a><span class="k">class</span> <span class="nc">ToNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToNumber-4701"><a href="#ToNumber-4701"><span class="linenos">4701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="ToNumber-4702"><a href="#ToNumber-4702"><span class="linenos">4702</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="ToNumber-4703"><a href="#ToNumber-4703"><span class="linenos">4703</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ToNumber-4704"><a href="#ToNumber-4704"><span class="linenos">4704</span></a> <span class="s2">&quot;nlsparam&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ToNumber-4705"><a href="#ToNumber-4705"><span class="linenos">4705</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ToNumber-4706"><a href="#ToNumber-4706"><span class="linenos">4706</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="ToNumber-4707"><a href="#ToNumber-4707"><span class="linenos">4707</span></a> <span class="p">}</span>
</span></pre></div>
@@ -65434,8 +65944,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Convert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Convert-4683"><a href="#Convert-4683"><span class="linenos">4683</span></a><span class="k">class</span> <span class="nc">Convert</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Convert-4684"><a href="#Convert-4684"><span class="linenos">4684</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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;style&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="Convert-4711"><a href="#Convert-4711"><span class="linenos">4711</span></a><span class="k">class</span> <span class="nc">Convert</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Convert-4712"><a href="#Convert-4712"><span class="linenos">4712</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;style&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -65562,8 +66072,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-4687"><a href="#GenerateSeries-4687"><span class="linenos">4687</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-4688"><a href="#GenerateSeries-4688"><span class="linenos">4688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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 class="s2">&quot;is_end_exclusive&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-4715"><a href="#GenerateSeries-4715"><span class="linenos">4715</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-4716"><a href="#GenerateSeries-4716"><span class="linenos">4716</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 class="s2">&quot;is_end_exclusive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -65690,8 +66200,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-4691"><a href="#ArrayAgg-4691"><span class="linenos">4691</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-4692"><a href="#ArrayAgg-4692"><span class="linenos">4692</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-4719"><a href="#ArrayAgg-4719"><span class="linenos">4719</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-4720"><a href="#ArrayAgg-4720"><span class="linenos">4720</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65807,8 +66317,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayUniqueAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUniqueAgg-4695"><a href="#ArrayUniqueAgg-4695"><span class="linenos">4695</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="ArrayUniqueAgg-4696"><a href="#ArrayUniqueAgg-4696"><span class="linenos">4696</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUniqueAgg-4723"><a href="#ArrayUniqueAgg-4723"><span class="linenos">4723</span></a><span class="k">class</span> <span class="nc">ArrayUniqueAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="ArrayUniqueAgg-4724"><a href="#ArrayUniqueAgg-4724"><span class="linenos">4724</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -65924,8 +66434,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-4699"><a href="#ArrayAll-4699"><span class="linenos">4699</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-4700"><a href="#ArrayAll-4700"><span class="linenos">4700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4727"><a href="#ArrayAll-4727"><span class="linenos">4727</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-4728"><a href="#ArrayAll-4728"><span class="linenos">4728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -66052,8 +66562,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-4704"><a href="#ArrayAny-4704"><span class="linenos">4704</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-4705"><a href="#ArrayAny-4705"><span class="linenos">4705</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4732"><a href="#ArrayAny-4732"><span class="linenos">4732</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-4733"><a href="#ArrayAny-4733"><span class="linenos">4733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -66180,10 +66690,10 @@ 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-4708"><a href="#ArrayConcat-4708"><span class="linenos">4708</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-4709"><a href="#ArrayConcat-4709"><span class="linenos">4709</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
-</span><span id="ArrayConcat-4710"><a href="#ArrayConcat-4710"><span class="linenos">4710</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4711"><a href="#ArrayConcat-4711"><span class="linenos">4711</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-4736"><a href="#ArrayConcat-4736"><span class="linenos">4736</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-4737"><a href="#ArrayConcat-4737"><span class="linenos">4737</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_CONCAT&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_CAT&quot;</span><span class="p">]</span>
+</span><span id="ArrayConcat-4738"><a href="#ArrayConcat-4738"><span class="linenos">4738</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-4739"><a href="#ArrayConcat-4739"><span class="linenos">4739</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -66321,8 +66831,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-4714"><a href="#ArrayContains-4714"><span class="linenos">4714</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-4715"><a href="#ArrayContains-4715"><span class="linenos">4715</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-4742"><a href="#ArrayContains-4742"><span class="linenos">4742</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-4743"><a href="#ArrayContains-4743"><span class="linenos">4743</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66443,8 +66953,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayContained"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-4718"><a href="#ArrayContained-4718"><span class="linenos">4718</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-4719"><a href="#ArrayContained-4719"><span class="linenos">4719</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-4746"><a href="#ArrayContained-4746"><span class="linenos">4746</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-4747"><a href="#ArrayContained-4747"><span class="linenos">4747</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66557,9 +67067,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-4722"><a href="#ArrayFilter-4722"><span class="linenos">4722</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-4723"><a href="#ArrayFilter-4723"><span class="linenos">4723</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4724"><a href="#ArrayFilter-4724"><span class="linenos">4724</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-4750"><a href="#ArrayFilter-4750"><span class="linenos">4750</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-4751"><a href="#ArrayFilter-4751"><span class="linenos">4751</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4752"><a href="#ArrayFilter-4752"><span class="linenos">4752</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>
@@ -66686,9 +67196,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayToString"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayToString-4727"><a href="#ArrayToString-4727"><span class="linenos">4727</span></a><span class="k">class</span> <span class="nc">ArrayToString</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayToString-4728"><a href="#ArrayToString-4728"><span class="linenos">4728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ArrayToString-4729"><a href="#ArrayToString-4729"><span class="linenos">4729</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_TO_STRING&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_JOIN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayToString-4755"><a href="#ArrayToString-4755"><span class="linenos">4755</span></a><span class="k">class</span> <span class="nc">ArrayToString</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayToString-4756"><a href="#ArrayToString-4756"><span class="linenos">4756</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ArrayToString-4757"><a href="#ArrayToString-4757"><span class="linenos">4757</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_TO_STRING&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_JOIN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -66815,8 +67325,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#ArrayOverlaps"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-4732"><a href="#ArrayOverlaps-4732"><span class="linenos">4732</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 class="n">Func</span><span class="p">):</span>
-</span><span id="ArrayOverlaps-4733"><a href="#ArrayOverlaps-4733"><span class="linenos">4733</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-4760"><a href="#ArrayOverlaps-4760"><span class="linenos">4760</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 class="n">Func</span><span class="p">):</span>
+</span><span id="ArrayOverlaps-4761"><a href="#ArrayOverlaps-4761"><span class="linenos">4761</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -66937,9 +67447,9 @@ 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-4736"><a href="#ArraySize-4736"><span class="linenos">4736</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-4737"><a href="#ArraySize-4737"><span class="linenos">4737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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="ArraySize-4738"><a href="#ArraySize-4738"><span class="linenos">4738</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_SIZE&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_LENGTH&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-4764"><a href="#ArraySize-4764"><span class="linenos">4764</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-4765"><a href="#ArraySize-4765"><span class="linenos">4765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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="ArraySize-4766"><a href="#ArraySize-4766"><span class="linenos">4766</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;ARRAY_SIZE&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_LENGTH&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -67066,8 +67576,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-4741"><a href="#ArraySort-4741"><span class="linenos">4741</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-4742"><a href="#ArraySort-4742"><span class="linenos">4742</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4769"><a href="#ArraySort-4769"><span class="linenos">4769</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-4770"><a href="#ArraySort-4770"><span class="linenos">4770</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -67194,8 +67704,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-4745"><a href="#ArraySum-4745"><span class="linenos">4745</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-4746"><a href="#ArraySum-4746"><span class="linenos">4746</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ArraySum-4773"><a href="#ArraySum-4773"><span class="linenos">4773</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-4774"><a href="#ArraySum-4774"><span class="linenos">4774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -67322,8 +67832,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-4749"><a href="#ArrayUnionAgg-4749"><span class="linenos">4749</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-4750"><a href="#ArrayUnionAgg-4750"><span class="linenos">4750</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-4777"><a href="#ArrayUnionAgg-4777"><span class="linenos">4777</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-4778"><a href="#ArrayUnionAgg-4778"><span class="linenos">4778</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -67439,8 +67949,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-4753"><a href="#Avg-4753"><span class="linenos">4753</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-4754"><a href="#Avg-4754"><span class="linenos">4754</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-4781"><a href="#Avg-4781"><span class="linenos">4781</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-4782"><a href="#Avg-4782"><span class="linenos">4782</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -67556,8 +68066,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-4757"><a href="#AnyValue-4757"><span class="linenos">4757</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-4758"><a href="#AnyValue-4758"><span class="linenos">4758</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-4785"><a href="#AnyValue-4785"><span class="linenos">4785</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-4786"><a href="#AnyValue-4786"><span class="linenos">4786</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -67673,8 +68183,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Lag"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lag-4761"><a href="#Lag-4761"><span class="linenos">4761</span></a><span class="k">class</span> <span class="nc">Lag</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Lag-4762"><a href="#Lag-4762"><span class="linenos">4762</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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="Lag-4789"><a href="#Lag-4789"><span class="linenos">4789</span></a><span class="k">class</span> <span class="nc">Lag</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Lag-4790"><a href="#Lag-4790"><span class="linenos">4790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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>
@@ -67801,8 +68311,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Lead"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lead-4765"><a href="#Lead-4765"><span class="linenos">4765</span></a><span class="k">class</span> <span class="nc">Lead</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Lead-4766"><a href="#Lead-4766"><span class="linenos">4766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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="Lead-4793"><a href="#Lead-4793"><span class="linenos">4793</span></a><span class="k">class</span> <span class="nc">Lead</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Lead-4794"><a href="#Lead-4794"><span class="linenos">4794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</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>
@@ -67929,8 +68439,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#First"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="First-4771"><a href="#First-4771"><span class="linenos">4771</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="First-4772"><a href="#First-4772"><span class="linenos">4772</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="First-4799"><a href="#First-4799"><span class="linenos">4799</span></a><span class="k">class</span> <span class="nc">First</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="First-4800"><a href="#First-4800"><span class="linenos">4800</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -68046,8 +68556,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Last"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Last-4775"><a href="#Last-4775"><span class="linenos">4775</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Last-4776"><a href="#Last-4776"><span class="linenos">4776</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Last-4803"><a href="#Last-4803"><span class="linenos">4803</span></a><span class="k">class</span> <span class="nc">Last</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Last-4804"><a href="#Last-4804"><span class="linenos">4804</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -68163,8 +68673,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#FirstValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FirstValue-4779"><a href="#FirstValue-4779"><span class="linenos">4779</span></a><span class="k">class</span> <span class="nc">FirstValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="FirstValue-4780"><a href="#FirstValue-4780"><span class="linenos">4780</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FirstValue-4807"><a href="#FirstValue-4807"><span class="linenos">4807</span></a><span class="k">class</span> <span class="nc">FirstValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="FirstValue-4808"><a href="#FirstValue-4808"><span class="linenos">4808</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -68280,8 +68790,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#LastValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LastValue-4783"><a href="#LastValue-4783"><span class="linenos">4783</span></a><span class="k">class</span> <span class="nc">LastValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="LastValue-4784"><a href="#LastValue-4784"><span class="linenos">4784</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LastValue-4811"><a href="#LastValue-4811"><span class="linenos">4811</span></a><span class="k">class</span> <span class="nc">LastValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="LastValue-4812"><a href="#LastValue-4812"><span class="linenos">4812</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -68397,8 +68907,8 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#NthValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NthValue-4787"><a href="#NthValue-4787"><span class="linenos">4787</span></a><span class="k">class</span> <span class="nc">NthValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="NthValue-4788"><a href="#NthValue-4788"><span class="linenos">4788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&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="NthValue-4815"><a href="#NthValue-4815"><span class="linenos">4815</span></a><span class="k">class</span> <span class="nc">NthValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="NthValue-4816"><a href="#NthValue-4816"><span class="linenos">4816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -68525,24 +69035,24 @@ 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-4791"><a href="#Case-4791"><span class="linenos">4791</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-4792"><a href="#Case-4792"><span class="linenos">4792</span></a> <span class="n">arg_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="Case-4793"><a href="#Case-4793"><span class="linenos">4793</span></a>
-</span><span id="Case-4794"><a href="#Case-4794"><span class="linenos">4794</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case-4795"><a href="#Case-4795"><span class="linenos">4795</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case-4796"><a href="#Case-4796"><span class="linenos">4796</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Case-4797"><a href="#Case-4797"><span class="linenos">4797</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="Case-4798"><a href="#Case-4798"><span class="linenos">4798</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="Case-4799"><a href="#Case-4799"><span class="linenos">4799</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case-4800"><a href="#Case-4800"><span class="linenos">4800</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case-4801"><a href="#Case-4801"><span class="linenos">4801</span></a> <span class="p">),</span>
-</span><span id="Case-4802"><a href="#Case-4802"><span class="linenos">4802</span></a> <span class="p">)</span>
-</span><span id="Case-4803"><a href="#Case-4803"><span class="linenos">4803</span></a> <span class="k">return</span> <span class="n">instance</span>
-</span><span id="Case-4804"><a href="#Case-4804"><span class="linenos">4804</span></a>
-</span><span id="Case-4805"><a href="#Case-4805"><span class="linenos">4805</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case-4806"><a href="#Case-4806"><span class="linenos">4806</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case-4807"><a href="#Case-4807"><span class="linenos">4807</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="Case-4808"><a href="#Case-4808"><span class="linenos">4808</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case-4819"><a href="#Case-4819"><span class="linenos">4819</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-4820"><a href="#Case-4820"><span class="linenos">4820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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="Case-4821"><a href="#Case-4821"><span class="linenos">4821</span></a>
+</span><span id="Case-4822"><a href="#Case-4822"><span class="linenos">4822</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case-4823"><a href="#Case-4823"><span class="linenos">4823</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case-4824"><a href="#Case-4824"><span class="linenos">4824</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Case-4825"><a href="#Case-4825"><span class="linenos">4825</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="Case-4826"><a href="#Case-4826"><span class="linenos">4826</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="Case-4827"><a href="#Case-4827"><span class="linenos">4827</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case-4828"><a href="#Case-4828"><span class="linenos">4828</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case-4829"><a href="#Case-4829"><span class="linenos">4829</span></a> <span class="p">),</span>
+</span><span id="Case-4830"><a href="#Case-4830"><span class="linenos">4830</span></a> <span class="p">)</span>
+</span><span id="Case-4831"><a href="#Case-4831"><span class="linenos">4831</span></a> <span class="k">return</span> <span class="n">instance</span>
+</span><span id="Case-4832"><a href="#Case-4832"><span class="linenos">4832</span></a>
+</span><span id="Case-4833"><a href="#Case-4833"><span class="linenos">4833</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case-4834"><a href="#Case-4834"><span class="linenos">4834</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case-4835"><a href="#Case-4835"><span class="linenos">4835</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="Case-4836"><a href="#Case-4836"><span class="linenos">4836</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -68571,16 +69081,16 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case.when"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case.when-4794"><a href="#Case.when-4794"><span class="linenos">4794</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case.when-4795"><a href="#Case.when-4795"><span class="linenos">4795</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case.when-4796"><a href="#Case.when-4796"><span class="linenos">4796</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
-</span><span id="Case.when-4797"><a href="#Case.when-4797"><span class="linenos">4797</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
-</span><span id="Case.when-4798"><a href="#Case.when-4798"><span class="linenos">4798</span></a> <span class="n">If</span><span class="p">(</span>
-</span><span id="Case.when-4799"><a href="#Case.when-4799"><span class="linenos">4799</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case.when-4800"><a href="#Case.when-4800"><span class="linenos">4800</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
-</span><span id="Case.when-4801"><a href="#Case.when-4801"><span class="linenos">4801</span></a> <span class="p">),</span>
-</span><span id="Case.when-4802"><a href="#Case.when-4802"><span class="linenos">4802</span></a> <span class="p">)</span>
-</span><span id="Case.when-4803"><a href="#Case.when-4803"><span class="linenos">4803</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case.when-4822"><a href="#Case.when-4822"><span class="linenos">4822</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case.when-4823"><a href="#Case.when-4823"><span class="linenos">4823</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case.when-4824"><a href="#Case.when-4824"><span class="linenos">4824</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
+</span><span id="Case.when-4825"><a href="#Case.when-4825"><span class="linenos">4825</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
+</span><span id="Case.when-4826"><a href="#Case.when-4826"><span class="linenos">4826</span></a> <span class="n">If</span><span class="p">(</span>
+</span><span id="Case.when-4827"><a href="#Case.when-4827"><span class="linenos">4827</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case.when-4828"><a href="#Case.when-4828"><span class="linenos">4828</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
+</span><span id="Case.when-4829"><a href="#Case.when-4829"><span class="linenos">4829</span></a> <span class="p">),</span>
+</span><span id="Case.when-4830"><a href="#Case.when-4830"><span class="linenos">4830</span></a> <span class="p">)</span>
+</span><span id="Case.when-4831"><a href="#Case.when-4831"><span class="linenos">4831</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -68598,10 +69108,10 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Case.else_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Case.else_-4805"><a href="#Case.else_-4805"><span class="linenos">4805</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="Case.else_-4806"><a href="#Case.else_-4806"><span class="linenos">4806</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="Case.else_-4807"><a href="#Case.else_-4807"><span class="linenos">4807</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="Case.else_-4808"><a href="#Case.else_-4808"><span class="linenos">4808</span></a> <span class="k">return</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Case.else_-4833"><a href="#Case.else_-4833"><span class="linenos">4833</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="Case.else_-4834"><a href="#Case.else_-4834"><span class="linenos">4834</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="Case.else_-4835"><a href="#Case.else_-4835"><span class="linenos">4835</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="Case.else_-4836"><a href="#Case.else_-4836"><span class="linenos">4836</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
@@ -68717,40 +69227,40 @@ 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-4811"><a href="#Cast-4811"><span class="linenos">4811</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-4812"><a href="#Cast-4812"><span class="linenos">4812</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Cast-4813"><a href="#Cast-4813"><span class="linenos">4813</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="Cast-4814"><a href="#Cast-4814"><span class="linenos">4814</span></a> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Cast-4815"><a href="#Cast-4815"><span class="linenos">4815</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Cast-4816"><a href="#Cast-4816"><span class="linenos">4816</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Cast-4817"><a href="#Cast-4817"><span class="linenos">4817</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Cast-4818"><a href="#Cast-4818"><span class="linenos">4818</span></a> <span class="p">}</span>
-</span><span id="Cast-4819"><a href="#Cast-4819"><span class="linenos">4819</span></a>
-</span><span id="Cast-4820"><a href="#Cast-4820"><span class="linenos">4820</span></a> <span class="nd">@property</span>
-</span><span id="Cast-4821"><a href="#Cast-4821"><span class="linenos">4821</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-4822"><a href="#Cast-4822"><span class="linenos">4822</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-4823"><a href="#Cast-4823"><span class="linenos">4823</span></a>
-</span><span id="Cast-4824"><a href="#Cast-4824"><span class="linenos">4824</span></a> <span class="nd">@property</span>
-</span><span id="Cast-4825"><a href="#Cast-4825"><span class="linenos">4825</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 class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="Cast-4826"><a href="#Cast-4826"><span class="linenos">4826</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-4827"><a href="#Cast-4827"><span class="linenos">4827</span></a>
-</span><span id="Cast-4828"><a href="#Cast-4828"><span class="linenos">4828</span></a> <span class="nd">@property</span>
-</span><span id="Cast-4829"><a href="#Cast-4829"><span class="linenos">4829</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Cast-4830"><a href="#Cast-4830"><span class="linenos">4830</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-4831"><a href="#Cast-4831"><span class="linenos">4831</span></a>
-</span><span id="Cast-4832"><a href="#Cast-4832"><span class="linenos">4832</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
-</span><span id="Cast-4833"><a href="#Cast-4833"><span class="linenos">4833</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Cast-4834"><a href="#Cast-4834"><span class="linenos">4834</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
-</span><span id="Cast-4835"><a href="#Cast-4835"><span class="linenos">4835</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
-</span><span id="Cast-4836"><a href="#Cast-4836"><span class="linenos">4836</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="Cast-4837"><a href="#Cast-4837"><span class="linenos">4837</span></a>
-</span><span id="Cast-4838"><a href="#Cast-4838"><span class="linenos">4838</span></a><span class="sd"> Args:</span>
-</span><span id="Cast-4839"><a href="#Cast-4839"><span class="linenos">4839</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
-</span><span id="Cast-4840"><a href="#Cast-4840"><span class="linenos">4840</span></a>
-</span><span id="Cast-4841"><a href="#Cast-4841"><span class="linenos">4841</span></a><span class="sd"> Returns:</span>
-</span><span id="Cast-4842"><a href="#Cast-4842"><span class="linenos">4842</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
-</span><span id="Cast-4843"><a href="#Cast-4843"><span class="linenos">4843</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Cast-4844"><a href="#Cast-4844"><span class="linenos">4844</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="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-4839"><a href="#Cast-4839"><span class="linenos">4839</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-4840"><a href="#Cast-4840"><span class="linenos">4840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Cast-4841"><a href="#Cast-4841"><span class="linenos">4841</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="Cast-4842"><a href="#Cast-4842"><span class="linenos">4842</span></a> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Cast-4843"><a href="#Cast-4843"><span class="linenos">4843</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Cast-4844"><a href="#Cast-4844"><span class="linenos">4844</span></a> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Cast-4845"><a href="#Cast-4845"><span class="linenos">4845</span></a> <span class="s2">&quot;action&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Cast-4846"><a href="#Cast-4846"><span class="linenos">4846</span></a> <span class="p">}</span>
+</span><span id="Cast-4847"><a href="#Cast-4847"><span class="linenos">4847</span></a>
+</span><span id="Cast-4848"><a href="#Cast-4848"><span class="linenos">4848</span></a> <span class="nd">@property</span>
+</span><span id="Cast-4849"><a href="#Cast-4849"><span class="linenos">4849</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-4850"><a href="#Cast-4850"><span class="linenos">4850</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-4851"><a href="#Cast-4851"><span class="linenos">4851</span></a>
+</span><span id="Cast-4852"><a href="#Cast-4852"><span class="linenos">4852</span></a> <span class="nd">@property</span>
+</span><span id="Cast-4853"><a href="#Cast-4853"><span class="linenos">4853</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 class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="Cast-4854"><a href="#Cast-4854"><span class="linenos">4854</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-4855"><a href="#Cast-4855"><span class="linenos">4855</span></a>
+</span><span id="Cast-4856"><a href="#Cast-4856"><span class="linenos">4856</span></a> <span class="nd">@property</span>
+</span><span id="Cast-4857"><a href="#Cast-4857"><span class="linenos">4857</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Cast-4858"><a href="#Cast-4858"><span class="linenos">4858</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-4859"><a href="#Cast-4859"><span class="linenos">4859</span></a>
+</span><span id="Cast-4860"><a href="#Cast-4860"><span class="linenos">4860</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
+</span><span id="Cast-4861"><a href="#Cast-4861"><span class="linenos">4861</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Cast-4862"><a href="#Cast-4862"><span class="linenos">4862</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
+</span><span id="Cast-4863"><a href="#Cast-4863"><span class="linenos">4863</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
+</span><span id="Cast-4864"><a href="#Cast-4864"><span class="linenos">4864</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="Cast-4865"><a href="#Cast-4865"><span class="linenos">4865</span></a>
+</span><span id="Cast-4866"><a href="#Cast-4866"><span class="linenos">4866</span></a><span class="sd"> Args:</span>
+</span><span id="Cast-4867"><a href="#Cast-4867"><span class="linenos">4867</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
+</span><span id="Cast-4868"><a href="#Cast-4868"><span class="linenos">4868</span></a>
+</span><span id="Cast-4869"><a href="#Cast-4869"><span class="linenos">4869</span></a><span class="sd"> Returns:</span>
+</span><span id="Cast-4870"><a href="#Cast-4870"><span class="linenos">4870</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
+</span><span id="Cast-4871"><a href="#Cast-4871"><span class="linenos">4871</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Cast-4872"><a href="#Cast-4872"><span class="linenos">4872</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="o">*</span><span class="n">dtypes</span><span class="p">)</span>
</span></pre></div>
@@ -68777,9 +69287,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.name-4820"><a href="#Cast.name-4820"><span class="linenos">4820</span></a> <span class="nd">@property</span>
-</span><span id="Cast.name-4821"><a href="#Cast.name-4821"><span class="linenos">4821</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.name-4822"><a href="#Cast.name-4822"><span class="linenos">4822</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.name-4848"><a href="#Cast.name-4848"><span class="linenos">4848</span></a> <span class="nd">@property</span>
+</span><span id="Cast.name-4849"><a href="#Cast.name-4849"><span class="linenos">4849</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.name-4850"><a href="#Cast.name-4850"><span class="linenos">4850</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></pre></div>
@@ -68795,9 +69305,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.to"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.to-4824"><a href="#Cast.to-4824"><span class="linenos">4824</span></a> <span class="nd">@property</span>
-</span><span id="Cast.to-4825"><a href="#Cast.to-4825"><span class="linenos">4825</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 class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="Cast.to-4826"><a href="#Cast.to-4826"><span class="linenos">4826</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.to-4852"><a href="#Cast.to-4852"><span class="linenos">4852</span></a> <span class="nd">@property</span>
+</span><span id="Cast.to-4853"><a href="#Cast.to-4853"><span class="linenos">4853</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 class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="Cast.to-4854"><a href="#Cast.to-4854"><span class="linenos">4854</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></pre></div>
@@ -68813,9 +69323,9 @@ name is set to the expression's class name transformed to snake case.</li>
</div>
<a class="headerlink" href="#Cast.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.output_name-4828"><a href="#Cast.output_name-4828"><span class="linenos">4828</span></a> <span class="nd">@property</span>
-</span><span id="Cast.output_name-4829"><a href="#Cast.output_name-4829"><span class="linenos">4829</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="Cast.output_name-4830"><a href="#Cast.output_name-4830"><span class="linenos">4830</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.output_name-4856"><a href="#Cast.output_name-4856"><span class="linenos">4856</span></a> <span class="nd">@property</span>
+</span><span id="Cast.output_name-4857"><a href="#Cast.output_name-4857"><span class="linenos">4857</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="Cast.output_name-4858"><a href="#Cast.output_name-4858"><span class="linenos">4858</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
@@ -68852,19 +69362,19 @@ 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-4832"><a href="#Cast.is_type-4832"><span class="linenos">4832</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_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-4833"><a href="#Cast.is_type-4833"><span class="linenos">4833</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="Cast.is_type-4834"><a href="#Cast.is_type-4834"><span class="linenos">4834</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
-</span><span id="Cast.is_type-4835"><a href="#Cast.is_type-4835"><span class="linenos">4835</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
-</span><span id="Cast.is_type-4836"><a href="#Cast.is_type-4836"><span class="linenos">4836</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
-</span><span id="Cast.is_type-4837"><a href="#Cast.is_type-4837"><span class="linenos">4837</span></a>
-</span><span id="Cast.is_type-4838"><a href="#Cast.is_type-4838"><span class="linenos">4838</span></a><span class="sd"> Args:</span>
-</span><span id="Cast.is_type-4839"><a href="#Cast.is_type-4839"><span class="linenos">4839</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
-</span><span id="Cast.is_type-4840"><a href="#Cast.is_type-4840"><span class="linenos">4840</span></a>
-</span><span id="Cast.is_type-4841"><a href="#Cast.is_type-4841"><span class="linenos">4841</span></a><span class="sd"> Returns:</span>
-</span><span id="Cast.is_type-4842"><a href="#Cast.is_type-4842"><span class="linenos">4842</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
-</span><span id="Cast.is_type-4843"><a href="#Cast.is_type-4843"><span class="linenos">4843</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="Cast.is_type-4844"><a href="#Cast.is_type-4844"><span class="linenos">4844</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="o">*</span><span class="n">dtypes</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-4860"><a href="#Cast.is_type-4860"><span class="linenos">4860</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="o">*</span><span class="n">dtypes</span><span class="p">:</span> <span class="n">DATA_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-4861"><a href="#Cast.is_type-4861"><span class="linenos">4861</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="Cast.is_type-4862"><a href="#Cast.is_type-4862"><span class="linenos">4862</span></a><span class="sd"> Checks whether this Cast&#39;s DataType matches one of the provided data types. Nested types</span>
+</span><span id="Cast.is_type-4863"><a href="#Cast.is_type-4863"><span class="linenos">4863</span></a><span class="sd"> like arrays or structs will be compared using &quot;structural equivalence&quot; semantics, so e.g.</span>
+</span><span id="Cast.is_type-4864"><a href="#Cast.is_type-4864"><span class="linenos">4864</span></a><span class="sd"> array&lt;int&gt; != array&lt;float&gt;.</span>
+</span><span id="Cast.is_type-4865"><a href="#Cast.is_type-4865"><span class="linenos">4865</span></a>
+</span><span id="Cast.is_type-4866"><a href="#Cast.is_type-4866"><span class="linenos">4866</span></a><span class="sd"> Args:</span>
+</span><span id="Cast.is_type-4867"><a href="#Cast.is_type-4867"><span class="linenos">4867</span></a><span class="sd"> dtypes: the data types to compare this Cast&#39;s DataType to.</span>
+</span><span id="Cast.is_type-4868"><a href="#Cast.is_type-4868"><span class="linenos">4868</span></a>
+</span><span id="Cast.is_type-4869"><a href="#Cast.is_type-4869"><span class="linenos">4869</span></a><span class="sd"> Returns:</span>
+</span><span id="Cast.is_type-4870"><a href="#Cast.is_type-4870"><span class="linenos">4870</span></a><span class="sd"> True, if and only if there is a type in `dtypes` which is equal to this Cast&#39;s DataType.</span>
+</span><span id="Cast.is_type-4871"><a href="#Cast.is_type-4871"><span class="linenos">4871</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="Cast.is_type-4872"><a href="#Cast.is_type-4872"><span class="linenos">4872</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="o">*</span><span class="n">dtypes</span><span class="p">)</span>
</span></pre></div>
@@ -68993,8 +69503,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TryCast"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-4847"><a href="#TryCast-4847"><span class="linenos">4847</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-4848"><a href="#TryCast-4848"><span class="linenos">4848</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-4875"><a href="#TryCast-4875"><span class="linenos">4875</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-4876"><a href="#TryCast-4876"><span class="linenos">4876</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -69103,6 +69613,123 @@ array<int> != array<float>.</p>
</dl>
</div>
</section>
+ <section id="Try">
+ <input id="Try-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">Try</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
+
+ <label class="view-source-button" for="Try-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#Try"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Try-4879"><a href="#Try-4879"><span class="linenos">4879</span></a><span class="k">class</span> <span class="nc">Try</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Try-4880"><a href="#Try-4880"><span class="linenos">4880</span></a> <span class="k">pass</span>
+</span></pre></div>
+
+
+
+
+ <div id="Try.key" class="classattr">
+ <div class="attr variable">
+ <span class="name">key</span> =
+<span class="default_value">&#39;try&#39;</span>
+
+
+ </div>
+ <a class="headerlink" href="#Try.key"></a>
+
+
+
+ </div>
+ <div class="inherited">
+ <h5>Inherited Members</h5>
+ <dl>
+ <div><dt><a href="#Expression">Expression</a></dt>
+ <dd id="Try.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
+ <dd id="Try.arg_types" class="variable"><a href="#Expression.arg_types">arg_types</a></dd>
+ <dd id="Try.args" class="variable"><a href="#Expression.args">args</a></dd>
+ <dd id="Try.parent" class="variable"><a href="#Expression.parent">parent</a></dd>
+ <dd id="Try.arg_key" class="variable"><a href="#Expression.arg_key">arg_key</a></dd>
+ <dd id="Try.index" class="variable"><a href="#Expression.index">index</a></dd>
+ <dd id="Try.comments" class="variable"><a href="#Expression.comments">comments</a></dd>
+ <dd id="Try.hashable_args" class="variable"><a href="#Expression.hashable_args">hashable_args</a></dd>
+ <dd id="Try.this" class="variable"><a href="#Expression.this">this</a></dd>
+ <dd id="Try.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
+ <dd id="Try.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
+ <dd id="Try.text" class="function"><a href="#Expression.text">text</a></dd>
+ <dd id="Try.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
+ <dd id="Try.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
+ <dd id="Try.is_negative" class="variable"><a href="#Expression.is_negative">is_negative</a></dd>
+ <dd id="Try.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
+ <dd id="Try.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
+ <dd id="Try.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
+ <dd id="Try.alias_column_names" class="variable"><a href="#Expression.alias_column_names">alias_column_names</a></dd>
+ <dd id="Try.name" class="variable"><a href="#Expression.name">name</a></dd>
+ <dd id="Try.alias_or_name" class="variable"><a href="#Expression.alias_or_name">alias_or_name</a></dd>
+ <dd id="Try.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
+ <dd id="Try.type" class="variable"><a href="#Expression.type">type</a></dd>
+ <dd id="Try.is_type" class="function"><a href="#Expression.is_type">is_type</a></dd>
+ <dd id="Try.is_leaf" class="function"><a href="#Expression.is_leaf">is_leaf</a></dd>
+ <dd id="Try.meta" class="variable"><a href="#Expression.meta">meta</a></dd>
+ <dd id="Try.copy" class="function"><a href="#Expression.copy">copy</a></dd>
+ <dd id="Try.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
+ <dd id="Try.pop_comments" class="function"><a href="#Expression.pop_comments">pop_comments</a></dd>
+ <dd id="Try.append" class="function"><a href="#Expression.append">append</a></dd>
+ <dd id="Try.set" class="function"><a href="#Expression.set">set</a></dd>
+ <dd id="Try.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
+ <dd id="Try.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
+ <dd id="Try.find" class="function"><a href="#Expression.find">find</a></dd>
+ <dd id="Try.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
+ <dd id="Try.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
+ <dd id="Try.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
+ <dd id="Try.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
+ <dd id="Try.root" class="function"><a href="#Expression.root">root</a></dd>
+ <dd id="Try.walk" class="function"><a href="#Expression.walk">walk</a></dd>
+ <dd id="Try.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
+ <dd id="Try.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
+ <dd id="Try.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
+ <dd id="Try.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
+ <dd id="Try.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
+ <dd id="Try.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
+ <dd id="Try.to_s" class="function"><a href="#Expression.to_s">to_s</a></dd>
+ <dd id="Try.sql" class="function"><a href="#Expression.sql">sql</a></dd>
+ <dd id="Try.transform" class="function"><a href="#Expression.transform">transform</a></dd>
+ <dd id="Try.replace" class="function"><a href="#Expression.replace">replace</a></dd>
+ <dd id="Try.pop" class="function"><a href="#Expression.pop">pop</a></dd>
+ <dd id="Try.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
+ <dd id="Try.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
+ <dd id="Try.dump" class="function"><a href="#Expression.dump">dump</a></dd>
+ <dd id="Try.load" class="function"><a href="#Expression.load">load</a></dd>
+ <dd id="Try.and_" class="function"><a href="#Expression.and_">and_</a></dd>
+ <dd id="Try.or_" class="function"><a href="#Expression.or_">or_</a></dd>
+ <dd id="Try.not_" class="function"><a href="#Expression.not_">not_</a></dd>
+ <dd id="Try.as_" class="function"><a href="#Expression.as_">as_</a></dd>
+ <dd id="Try.isin" class="function"><a href="#Expression.isin">isin</a></dd>
+ <dd id="Try.between" class="function"><a href="#Expression.between">between</a></dd>
+ <dd id="Try.is_" class="function"><a href="#Expression.is_">is_</a></dd>
+ <dd id="Try.like" class="function"><a href="#Expression.like">like</a></dd>
+ <dd id="Try.ilike" class="function"><a href="#Expression.ilike">ilike</a></dd>
+ <dd id="Try.eq" class="function"><a href="#Expression.eq">eq</a></dd>
+ <dd id="Try.neq" class="function"><a href="#Expression.neq">neq</a></dd>
+ <dd id="Try.rlike" class="function"><a href="#Expression.rlike">rlike</a></dd>
+ <dd id="Try.div" class="function"><a href="#Expression.div">div</a></dd>
+ <dd id="Try.asc" class="function"><a href="#Expression.asc">asc</a></dd>
+ <dd id="Try.desc" class="function"><a href="#Expression.desc">desc</a></dd>
+
+ </div>
+ <div><dt><a href="#Func">Func</a></dt>
+ <dd id="Try.is_var_len_args" class="variable"><a href="#Func.is_var_len_args">is_var_len_args</a></dd>
+ <dd id="Try.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
+ <dd id="Try.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
+ <dd id="Try.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
+ <dd id="Try.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
+
+ </div>
+ </dl>
+ </div>
+ </section>
<section id="CastToStrType">
<input id="CastToStrType-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
@@ -69114,8 +69741,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CastToStrType"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CastToStrType-4851"><a href="#CastToStrType-4851"><span class="linenos">4851</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CastToStrType-4852"><a href="#CastToStrType-4852"><span class="linenos">4852</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CastToStrType-4883"><a href="#CastToStrType-4883"><span class="linenos">4883</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CastToStrType-4884"><a href="#CastToStrType-4884"><span class="linenos">4884</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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></pre></div>
@@ -69242,8 +69869,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Collate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-4855"><a href="#Collate-4855"><span class="linenos">4855</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 class="n">Func</span><span class="p">):</span>
-</span><span id="Collate-4856"><a href="#Collate-4856"><span class="linenos">4856</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-4887"><a href="#Collate-4887"><span class="linenos">4887</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 class="n">Func</span><span class="p">):</span>
+</span><span id="Collate-4888"><a href="#Collate-4888"><span class="linenos">4888</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -69364,9 +69991,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Ceil"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-4859"><a href="#Ceil-4859"><span class="linenos">4859</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-4860"><a href="#Ceil-4860"><span class="linenos">4860</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Ceil-4861"><a href="#Ceil-4861"><span class="linenos">4861</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-4891"><a href="#Ceil-4891"><span class="linenos">4891</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-4892"><a href="#Ceil-4892"><span class="linenos">4892</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4893"><a href="#Ceil-4893"><span class="linenos">4893</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -69493,10 +70120,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Coalesce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-4864"><a href="#Coalesce-4864"><span class="linenos">4864</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-4865"><a href="#Coalesce-4865"><span class="linenos">4865</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4866"><a href="#Coalesce-4866"><span class="linenos">4866</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Coalesce-4867"><a href="#Coalesce-4867"><span class="linenos">4867</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</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="Coalesce-4896"><a href="#Coalesce-4896"><span class="linenos">4896</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-4897"><a href="#Coalesce-4897"><span class="linenos">4897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Coalesce-4898"><a href="#Coalesce-4898"><span class="linenos">4898</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Coalesce-4899"><a href="#Coalesce-4899"><span class="linenos">4899</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COALESCE&quot;</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>
@@ -69634,10 +70261,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Chr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Chr-4870"><a href="#Chr-4870"><span class="linenos">4870</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Chr-4871"><a href="#Chr-4871"><span class="linenos">4871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Chr-4872"><a href="#Chr-4872"><span class="linenos">4872</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="Chr-4873"><a href="#Chr-4873"><span class="linenos">4873</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Chr-4902"><a href="#Chr-4902"><span class="linenos">4902</span></a><span class="k">class</span> <span class="nc">Chr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Chr-4903"><a href="#Chr-4903"><span class="linenos">4903</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Chr-4904"><a href="#Chr-4904"><span class="linenos">4904</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="Chr-4905"><a href="#Chr-4905"><span class="linenos">4905</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CHR&quot;</span><span class="p">,</span> <span class="s2">&quot;CHAR&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -69775,9 +70402,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Concat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-4876"><a href="#Concat-4876"><span class="linenos">4876</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-4877"><a href="#Concat-4877"><span class="linenos">4877</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Concat-4878"><a href="#Concat-4878"><span class="linenos">4878</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-4908"><a href="#Concat-4908"><span class="linenos">4908</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-4909"><a href="#Concat-4909"><span class="linenos">4909</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;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;coalesce&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Concat-4910"><a href="#Concat-4910"><span class="linenos">4910</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -69915,8 +70542,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ConcatWs"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-4881"><a href="#ConcatWs-4881"><span class="linenos">4881</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-4882"><a href="#ConcatWs-4882"><span class="linenos">4882</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-4913"><a href="#ConcatWs-4913"><span class="linenos">4913</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-4914"><a href="#ConcatWs-4914"><span class="linenos">4914</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>
@@ -70035,8 +70662,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ConnectByRoot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ConnectByRoot-4886"><a href="#ConnectByRoot-4886"><span class="linenos">4886</span></a><span class="k">class</span> <span class="nc">ConnectByRoot</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ConnectByRoot-4887"><a href="#ConnectByRoot-4887"><span class="linenos">4887</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ConnectByRoot-4918"><a href="#ConnectByRoot-4918"><span class="linenos">4918</span></a><span class="k">class</span> <span class="nc">ConnectByRoot</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ConnectByRoot-4919"><a href="#ConnectByRoot-4919"><span class="linenos">4919</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -70152,9 +70779,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Count"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Count-4890"><a href="#Count-4890"><span class="linenos">4890</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-4891"><a href="#Count-4891"><span class="linenos">4891</span></a> <span class="n">arg_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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Count-4892"><a href="#Count-4892"><span class="linenos">4892</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="Count-4922"><a href="#Count-4922"><span class="linenos">4922</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-4923"><a href="#Count-4923"><span class="linenos">4923</span></a> <span class="n">arg_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;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Count-4924"><a href="#Count-4924"><span class="linenos">4924</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -70292,8 +70919,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CountIf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-4895"><a href="#CountIf-4895"><span class="linenos">4895</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="CountIf-4896"><a href="#CountIf-4896"><span class="linenos">4896</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COUNT_IF&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNTIF&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-4927"><a href="#CountIf-4927"><span class="linenos">4927</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="CountIf-4928"><a href="#CountIf-4928"><span class="linenos">4928</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;COUNT_IF&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNTIF&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -70409,8 +71036,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Cbrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Cbrt-4900"><a href="#Cbrt-4900"><span class="linenos">4900</span></a><span class="k">class</span> <span class="nc">Cbrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Cbrt-4901"><a href="#Cbrt-4901"><span class="linenos">4901</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Cbrt-4932"><a href="#Cbrt-4932"><span class="linenos">4932</span></a><span class="k">class</span> <span class="nc">Cbrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Cbrt-4933"><a href="#Cbrt-4933"><span class="linenos">4933</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -70526,8 +71153,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-4904"><a href="#CurrentDate-4904"><span class="linenos">4904</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-4905"><a href="#CurrentDate-4905"><span class="linenos">4905</span></a> <span class="n">arg_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-4936"><a href="#CurrentDate-4936"><span class="linenos">4936</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-4937"><a href="#CurrentDate-4937"><span class="linenos">4937</span></a> <span class="n">arg_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>
@@ -70654,8 +71281,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentDatetime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-4908"><a href="#CurrentDatetime-4908"><span class="linenos">4908</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-4909"><a href="#CurrentDatetime-4909"><span class="linenos">4909</span></a> <span class="n">arg_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-4940"><a href="#CurrentDatetime-4940"><span class="linenos">4940</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-4941"><a href="#CurrentDatetime-4941"><span class="linenos">4941</span></a> <span class="n">arg_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>
@@ -70782,8 +71409,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-4912"><a href="#CurrentTime-4912"><span class="linenos">4912</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-4913"><a href="#CurrentTime-4913"><span class="linenos">4913</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-4944"><a href="#CurrentTime-4944"><span class="linenos">4944</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-4945"><a href="#CurrentTime-4945"><span class="linenos">4945</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -70910,8 +71537,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentTimestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-4916"><a href="#CurrentTimestamp-4916"><span class="linenos">4916</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-4917"><a href="#CurrentTimestamp-4917"><span class="linenos">4917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;transaction&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-4948"><a href="#CurrentTimestamp-4948"><span class="linenos">4948</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-4949"><a href="#CurrentTimestamp-4949"><span class="linenos">4949</span></a> <span class="n">arg_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;transaction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -71038,8 +71665,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CurrentUser"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-4920"><a href="#CurrentUser-4920"><span class="linenos">4920</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="CurrentUser-4921"><a href="#CurrentUser-4921"><span class="linenos">4921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-4952"><a href="#CurrentUser-4952"><span class="linenos">4952</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="CurrentUser-4953"><a href="#CurrentUser-4953"><span class="linenos">4953</span></a> <span class="n">arg_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>
@@ -71166,8 +71793,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-4924"><a href="#DateAdd-4924"><span class="linenos">4924</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">IntervalOp</span><span class="p">):</span>
-</span><span id="DateAdd-4925"><a href="#DateAdd-4925"><span class="linenos">4925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-4956"><a href="#DateAdd-4956"><span class="linenos">4956</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">IntervalOp</span><span class="p">):</span>
+</span><span id="DateAdd-4957"><a href="#DateAdd-4957"><span class="linenos">4957</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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>
@@ -71304,8 +71931,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-4928"><a href="#DateSub-4928"><span class="linenos">4928</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">IntervalOp</span><span class="p">):</span>
-</span><span id="DateSub-4929"><a href="#DateSub-4929"><span class="linenos">4929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">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-4960"><a href="#DateSub-4960"><span class="linenos">4960</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">IntervalOp</span><span class="p">):</span>
+</span><span id="DateSub-4961"><a href="#DateSub-4961"><span class="linenos">4961</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -71442,9 +72069,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-4932"><a href="#DateDiff-4932"><span class="linenos">4932</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-4933"><a href="#DateDiff-4933"><span class="linenos">4933</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
-</span><span id="DateDiff-4934"><a href="#DateDiff-4934"><span class="linenos">4934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span 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-4964"><a href="#DateDiff-4964"><span class="linenos">4964</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-4965"><a href="#DateDiff-4965"><span class="linenos">4965</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-4966"><a href="#DateDiff-4966"><span class="linenos">4966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -71577,23 +72204,23 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-4937"><a href="#DateTrunc-4937"><span class="linenos">4937</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-4938"><a href="#DateTrunc-4938"><span class="linenos">4938</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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="DateTrunc-4939"><a href="#DateTrunc-4939"><span class="linenos">4939</span></a>
-</span><span id="DateTrunc-4940"><a href="#DateTrunc-4940"><span class="linenos">4940</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="DateTrunc-4941"><a href="#DateTrunc-4941"><span class="linenos">4941</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="DateTrunc-4942"><a href="#DateTrunc-4942"><span class="linenos">4942</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">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="DateTrunc-4943"><a href="#DateTrunc-4943"><span class="linenos">4943</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
-</span><span id="DateTrunc-4944"><a href="#DateTrunc-4944"><span class="linenos">4944</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="DateTrunc-4945"><a href="#DateTrunc-4945"><span class="linenos">4945</span></a> <span class="p">)</span>
-</span><span id="DateTrunc-4946"><a href="#DateTrunc-4946"><span class="linenos">4946</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="DateTrunc-4947"><a href="#DateTrunc-4947"><span class="linenos">4947</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
-</span><span id="DateTrunc-4948"><a href="#DateTrunc-4948"><span class="linenos">4948</span></a>
-</span><span id="DateTrunc-4949"><a href="#DateTrunc-4949"><span class="linenos">4949</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="DateTrunc-4950"><a href="#DateTrunc-4950"><span class="linenos">4950</span></a>
-</span><span id="DateTrunc-4951"><a href="#DateTrunc-4951"><span class="linenos">4951</span></a> <span class="nd">@property</span>
-</span><span id="DateTrunc-4952"><a href="#DateTrunc-4952"><span class="linenos">4952</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="DateTrunc-4953"><a href="#DateTrunc-4953"><span class="linenos">4953</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;unit&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-4969"><a href="#DateTrunc-4969"><span class="linenos">4969</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-4970"><a href="#DateTrunc-4970"><span class="linenos">4970</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="DateTrunc-4971"><a href="#DateTrunc-4971"><span class="linenos">4971</span></a>
+</span><span id="DateTrunc-4972"><a href="#DateTrunc-4972"><span class="linenos">4972</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="DateTrunc-4973"><a href="#DateTrunc-4973"><span class="linenos">4973</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="DateTrunc-4974"><a href="#DateTrunc-4974"><span class="linenos">4974</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">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="DateTrunc-4975"><a href="#DateTrunc-4975"><span class="linenos">4975</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="DateTrunc-4976"><a href="#DateTrunc-4976"><span class="linenos">4976</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="DateTrunc-4977"><a href="#DateTrunc-4977"><span class="linenos">4977</span></a> <span class="p">)</span>
+</span><span id="DateTrunc-4978"><a href="#DateTrunc-4978"><span class="linenos">4978</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="DateTrunc-4979"><a href="#DateTrunc-4979"><span class="linenos">4979</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="DateTrunc-4980"><a href="#DateTrunc-4980"><span class="linenos">4980</span></a>
+</span><span id="DateTrunc-4981"><a href="#DateTrunc-4981"><span class="linenos">4981</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="DateTrunc-4982"><a href="#DateTrunc-4982"><span class="linenos">4982</span></a>
+</span><span id="DateTrunc-4983"><a href="#DateTrunc-4983"><span class="linenos">4983</span></a> <span class="nd">@property</span>
+</span><span id="DateTrunc-4984"><a href="#DateTrunc-4984"><span class="linenos">4984</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="DateTrunc-4985"><a href="#DateTrunc-4985"><span class="linenos">4985</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;unit&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -71609,16 +72236,16 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateTrunc.__init__"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc.__init__-4940"><a href="#DateTrunc.__init__-4940"><span class="linenos">4940</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="DateTrunc.__init__-4941"><a href="#DateTrunc.__init__-4941"><span class="linenos">4941</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="DateTrunc.__init__-4942"><a href="#DateTrunc.__init__-4942"><span class="linenos">4942</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">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
-</span><span id="DateTrunc.__init__-4943"><a href="#DateTrunc.__init__-4943"><span class="linenos">4943</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
-</span><span id="DateTrunc.__init__-4944"><a href="#DateTrunc.__init__-4944"><span class="linenos">4944</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
-</span><span id="DateTrunc.__init__-4945"><a href="#DateTrunc.__init__-4945"><span class="linenos">4945</span></a> <span class="p">)</span>
-</span><span id="DateTrunc.__init__-4946"><a href="#DateTrunc.__init__-4946"><span class="linenos">4946</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="DateTrunc.__init__-4947"><a href="#DateTrunc.__init__-4947"><span class="linenos">4947</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
-</span><span id="DateTrunc.__init__-4948"><a href="#DateTrunc.__init__-4948"><span class="linenos">4948</span></a>
-</span><span id="DateTrunc.__init__-4949"><a href="#DateTrunc.__init__-4949"><span class="linenos">4949</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="DateTrunc.__init__-4972"><a href="#DateTrunc.__init__-4972"><span class="linenos">4972</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="DateTrunc.__init__-4973"><a href="#DateTrunc.__init__-4973"><span class="linenos">4973</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="DateTrunc.__init__-4974"><a href="#DateTrunc.__init__-4974"><span class="linenos">4974</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">TimeUnit</span><span class="o">.</span><span class="n">VAR_LIKE</span><span class="p">):</span>
+</span><span id="DateTrunc.__init__-4975"><a href="#DateTrunc.__init__-4975"><span class="linenos">4975</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
+</span><span id="DateTrunc.__init__-4976"><a href="#DateTrunc.__init__-4976"><span class="linenos">4976</span></a> <span class="p">(</span><span class="n">TimeUnit</span><span class="o">.</span><span class="n">UNABBREVIATED_UNIT_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
+</span><span id="DateTrunc.__init__-4977"><a href="#DateTrunc.__init__-4977"><span class="linenos">4977</span></a> <span class="p">)</span>
+</span><span id="DateTrunc.__init__-4978"><a href="#DateTrunc.__init__-4978"><span class="linenos">4978</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="DateTrunc.__init__-4979"><a href="#DateTrunc.__init__-4979"><span class="linenos">4979</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</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="o">.</span><span class="n">upper</span><span class="p">()))</span>
+</span><span id="DateTrunc.__init__-4980"><a href="#DateTrunc.__init__-4980"><span class="linenos">4980</span></a>
+</span><span id="DateTrunc.__init__-4981"><a href="#DateTrunc.__init__-4981"><span class="linenos">4981</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>
@@ -71646,9 +72273,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateTrunc.unit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc.unit-4951"><a href="#DateTrunc.unit-4951"><span class="linenos">4951</span></a> <span class="nd">@property</span>
-</span><span id="DateTrunc.unit-4952"><a href="#DateTrunc.unit-4952"><span class="linenos">4952</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="DateTrunc.unit-4953"><a href="#DateTrunc.unit-4953"><span class="linenos">4953</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;unit&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc.unit-4983"><a href="#DateTrunc.unit-4983"><span class="linenos">4983</span></a> <span class="nd">@property</span>
+</span><span id="DateTrunc.unit-4984"><a href="#DateTrunc.unit-4984"><span class="linenos">4984</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="DateTrunc.unit-4985"><a href="#DateTrunc.unit-4985"><span class="linenos">4985</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;unit&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -71763,8 +72390,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-4956"><a href="#DatetimeAdd-4956"><span class="linenos">4956</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">IntervalOp</span><span class="p">):</span>
-</span><span id="DatetimeAdd-4957"><a href="#DatetimeAdd-4957"><span class="linenos">4957</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">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-4988"><a href="#DatetimeAdd-4988"><span class="linenos">4988</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">IntervalOp</span><span class="p">):</span>
+</span><span id="DatetimeAdd-4989"><a href="#DatetimeAdd-4989"><span class="linenos">4989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -71901,8 +72528,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-4960"><a href="#DatetimeSub-4960"><span class="linenos">4960</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">IntervalOp</span><span class="p">):</span>
-</span><span id="DatetimeSub-4961"><a href="#DatetimeSub-4961"><span class="linenos">4961</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4992"><a href="#DatetimeSub-4992"><span class="linenos">4992</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">IntervalOp</span><span class="p">):</span>
+</span><span id="DatetimeSub-4993"><a href="#DatetimeSub-4993"><span class="linenos">4993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -72039,8 +72666,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-4964"><a href="#DatetimeDiff-4964"><span class="linenos">4964</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-4965"><a href="#DatetimeDiff-4965"><span class="linenos">4965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-4996"><a href="#DatetimeDiff-4996"><span class="linenos">4996</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-4997"><a href="#DatetimeDiff-4997"><span class="linenos">4997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -72173,8 +72800,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DatetimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-4968"><a href="#DatetimeTrunc-4968"><span class="linenos">4968</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-4969"><a href="#DatetimeTrunc-4969"><span class="linenos">4969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5000"><a href="#DatetimeTrunc-5000"><span class="linenos">5000</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-5001"><a href="#DatetimeTrunc-5001"><span class="linenos">5001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -72307,8 +72934,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DayOfWeek"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-4972"><a href="#DayOfWeek-4972"><span class="linenos">4972</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-4973"><a href="#DayOfWeek-4973"><span class="linenos">4973</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-5004"><a href="#DayOfWeek-5004"><span class="linenos">5004</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-5005"><a href="#DayOfWeek-5005"><span class="linenos">5005</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>
@@ -72424,8 +73051,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DayOfMonth"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-4976"><a href="#DayOfMonth-4976"><span class="linenos">4976</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-4977"><a href="#DayOfMonth-4977"><span class="linenos">4977</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-5008"><a href="#DayOfMonth-5008"><span class="linenos">5008</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-5009"><a href="#DayOfMonth-5009"><span class="linenos">5009</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>
@@ -72541,8 +73168,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DayOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-4980"><a href="#DayOfYear-4980"><span class="linenos">4980</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-4981"><a href="#DayOfYear-4981"><span class="linenos">4981</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-5012"><a href="#DayOfYear-5012"><span class="linenos">5012</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-5013"><a href="#DayOfYear-5013"><span class="linenos">5013</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>
@@ -72658,8 +73285,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ToDays"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToDays-4984"><a href="#ToDays-4984"><span class="linenos">4984</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToDays-4985"><a href="#ToDays-4985"><span class="linenos">4985</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToDays-5016"><a href="#ToDays-5016"><span class="linenos">5016</span></a><span class="k">class</span> <span class="nc">ToDays</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToDays-5017"><a href="#ToDays-5017"><span class="linenos">5017</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -72775,8 +73402,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#WeekOfYear"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-4988"><a href="#WeekOfYear-4988"><span class="linenos">4988</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-4989"><a href="#WeekOfYear-4989"><span class="linenos">4989</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-5020"><a href="#WeekOfYear-5020"><span class="linenos">5020</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-5021"><a href="#WeekOfYear-5021"><span class="linenos">5021</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>
@@ -72892,8 +73519,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MonthsBetween"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MonthsBetween-4992"><a href="#MonthsBetween-4992"><span class="linenos">4992</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MonthsBetween-4993"><a href="#MonthsBetween-4993"><span class="linenos">4993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;roundoff&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="MonthsBetween-5024"><a href="#MonthsBetween-5024"><span class="linenos">5024</span></a><span class="k">class</span> <span class="nc">MonthsBetween</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MonthsBetween-5025"><a href="#MonthsBetween-5025"><span class="linenos">5025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;roundoff&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -73020,9 +73647,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LastDay"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LastDay-4996"><a href="#LastDay-4996"><span class="linenos">4996</span></a><span class="k">class</span> <span class="nc">LastDay</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="LastDay-4997"><a href="#LastDay-4997"><span class="linenos">4997</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LAST_DAY&quot;</span><span class="p">,</span> <span class="s2">&quot;LAST_DAY_OF_MONTH&quot;</span><span class="p">]</span>
-</span><span id="LastDay-4998"><a href="#LastDay-4998"><span class="linenos">4998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LastDay-5028"><a href="#LastDay-5028"><span class="linenos">5028</span></a><span class="k">class</span> <span class="nc">LastDay</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="LastDay-5029"><a href="#LastDay-5029"><span class="linenos">5029</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LAST_DAY&quot;</span><span class="p">,</span> <span class="s2">&quot;LAST_DAY_OF_MONTH&quot;</span><span class="p">]</span>
+</span><span id="LastDay-5030"><a href="#LastDay-5030"><span class="linenos">5030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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">False</span><span class="p">}</span>
</span></pre></div>
@@ -73155,8 +73782,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Extract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-5001"><a href="#Extract-5001"><span class="linenos">5001</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-5002"><a href="#Extract-5002"><span class="linenos">5002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5033"><a href="#Extract-5033"><span class="linenos">5033</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-5034"><a href="#Extract-5034"><span class="linenos">5034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -73283,8 +73910,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Timestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Timestamp-5005"><a href="#Timestamp-5005"><span class="linenos">5005</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Timestamp-5006"><a href="#Timestamp-5006"><span class="linenos">5006</span></a> <span class="n">arg_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;with_tz&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="Timestamp-5037"><a href="#Timestamp-5037"><span class="linenos">5037</span></a><span class="k">class</span> <span class="nc">Timestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Timestamp-5038"><a href="#Timestamp-5038"><span class="linenos">5038</span></a> <span class="n">arg_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;with_tz&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -73411,8 +74038,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-5009"><a href="#TimestampAdd-5009"><span class="linenos">5009</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-5010"><a href="#TimestampAdd-5010"><span class="linenos">5010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5041"><a href="#TimestampAdd-5041"><span class="linenos">5041</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-5042"><a href="#TimestampAdd-5042"><span class="linenos">5042</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -73545,8 +74172,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-5013"><a href="#TimestampSub-5013"><span class="linenos">5013</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-5014"><a href="#TimestampSub-5014"><span class="linenos">5014</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5045"><a href="#TimestampSub-5045"><span class="linenos">5045</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-5046"><a href="#TimestampSub-5046"><span class="linenos">5046</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -73679,9 +74306,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-5017"><a href="#TimestampDiff-5017"><span class="linenos">5017</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-5018"><a href="#TimestampDiff-5018"><span class="linenos">5018</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMPDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMP_DIFF&quot;</span><span class="p">]</span>
-</span><span id="TimestampDiff-5019"><a href="#TimestampDiff-5019"><span class="linenos">5019</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5049"><a href="#TimestampDiff-5049"><span class="linenos">5049</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-5050"><a href="#TimestampDiff-5050"><span class="linenos">5050</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMPDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMP_DIFF&quot;</span><span class="p">]</span>
+</span><span id="TimestampDiff-5051"><a href="#TimestampDiff-5051"><span class="linenos">5051</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -73814,8 +74441,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-5022"><a href="#TimestampTrunc-5022"><span class="linenos">5022</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-5023"><a href="#TimestampTrunc-5023"><span class="linenos">5023</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5054"><a href="#TimestampTrunc-5054"><span class="linenos">5054</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-5055"><a href="#TimestampTrunc-5055"><span class="linenos">5055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -73948,8 +74575,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-5026"><a href="#TimeAdd-5026"><span class="linenos">5026</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-5027"><a href="#TimeAdd-5027"><span class="linenos">5027</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5058"><a href="#TimeAdd-5058"><span class="linenos">5058</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-5059"><a href="#TimeAdd-5059"><span class="linenos">5059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -74082,8 +74709,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeSub"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-5030"><a href="#TimeSub-5030"><span class="linenos">5030</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-5031"><a href="#TimeSub-5031"><span class="linenos">5031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5062"><a href="#TimeSub-5062"><span class="linenos">5062</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-5063"><a href="#TimeSub-5063"><span class="linenos">5063</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -74216,8 +74843,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-5034"><a href="#TimeDiff-5034"><span class="linenos">5034</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-5035"><a href="#TimeDiff-5035"><span class="linenos">5035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5066"><a href="#TimeDiff-5066"><span class="linenos">5066</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-5067"><a href="#TimeDiff-5067"><span class="linenos">5067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -74350,8 +74977,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeTrunc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-5038"><a href="#TimeTrunc-5038"><span class="linenos">5038</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-5039"><a href="#TimeTrunc-5039"><span class="linenos">5039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5070"><a href="#TimeTrunc-5070"><span class="linenos">5070</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-5071"><a href="#TimeTrunc-5071"><span class="linenos">5071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -74484,9 +75111,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-5042"><a href="#DateFromParts-5042"><span class="linenos">5042</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-5043"><a href="#DateFromParts-5043"><span class="linenos">5043</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATE_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="DateFromParts-5044"><a href="#DateFromParts-5044"><span class="linenos">5044</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;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-5074"><a href="#DateFromParts-5074"><span class="linenos">5074</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-5075"><a href="#DateFromParts-5075"><span class="linenos">5075</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATE_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="DateFromParts-5076"><a href="#DateFromParts-5076"><span class="linenos">5076</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>
@@ -74613,16 +75240,16 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeFromParts-5047"><a href="#TimeFromParts-5047"><span class="linenos">5047</span></a><span class="k">class</span> <span class="nc">TimeFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimeFromParts-5048"><a href="#TimeFromParts-5048"><span class="linenos">5048</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIME_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMEFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="TimeFromParts-5049"><a href="#TimeFromParts-5049"><span class="linenos">5049</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TimeFromParts-5050"><a href="#TimeFromParts-5050"><span class="linenos">5050</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimeFromParts-5051"><a href="#TimeFromParts-5051"><span class="linenos">5051</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimeFromParts-5052"><a href="#TimeFromParts-5052"><span class="linenos">5052</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimeFromParts-5053"><a href="#TimeFromParts-5053"><span class="linenos">5053</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TimeFromParts-5054"><a href="#TimeFromParts-5054"><span class="linenos">5054</span></a> <span class="s2">&quot;fractions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TimeFromParts-5055"><a href="#TimeFromParts-5055"><span class="linenos">5055</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TimeFromParts-5056"><a href="#TimeFromParts-5056"><span class="linenos">5056</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeFromParts-5079"><a href="#TimeFromParts-5079"><span class="linenos">5079</span></a><span class="k">class</span> <span class="nc">TimeFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimeFromParts-5080"><a href="#TimeFromParts-5080"><span class="linenos">5080</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIME_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMEFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="TimeFromParts-5081"><a href="#TimeFromParts-5081"><span class="linenos">5081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TimeFromParts-5082"><a href="#TimeFromParts-5082"><span class="linenos">5082</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimeFromParts-5083"><a href="#TimeFromParts-5083"><span class="linenos">5083</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimeFromParts-5084"><a href="#TimeFromParts-5084"><span class="linenos">5084</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimeFromParts-5085"><a href="#TimeFromParts-5085"><span class="linenos">5085</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimeFromParts-5086"><a href="#TimeFromParts-5086"><span class="linenos">5086</span></a> <span class="s2">&quot;fractions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimeFromParts-5087"><a href="#TimeFromParts-5087"><span class="linenos">5087</span></a> <span class="s2">&quot;precision&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimeFromParts-5088"><a href="#TimeFromParts-5088"><span class="linenos">5088</span></a> <span class="p">}</span>
</span></pre></div>
@@ -74749,8 +75376,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-5059"><a href="#DateStrToDate-5059"><span class="linenos">5059</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-5060"><a href="#DateStrToDate-5060"><span class="linenos">5060</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-5091"><a href="#DateStrToDate-5091"><span class="linenos">5091</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-5092"><a href="#DateStrToDate-5092"><span class="linenos">5092</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -74866,8 +75493,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-5063"><a href="#DateToDateStr-5063"><span class="linenos">5063</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-5064"><a href="#DateToDateStr-5064"><span class="linenos">5064</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-5095"><a href="#DateToDateStr-5095"><span class="linenos">5095</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-5096"><a href="#DateToDateStr-5096"><span class="linenos">5096</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -74983,8 +75610,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DateToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-5067"><a href="#DateToDi-5067"><span class="linenos">5067</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-5068"><a href="#DateToDi-5068"><span class="linenos">5068</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-5099"><a href="#DateToDi-5099"><span class="linenos">5099</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-5100"><a href="#DateToDi-5100"><span class="linenos">5100</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -75100,9 +75727,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Date"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Date-5072"><a href="#Date-5072"><span class="linenos">5072</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Date-5073"><a href="#Date-5073"><span class="linenos">5073</span></a> <span class="n">arg_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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Date-5074"><a href="#Date-5074"><span class="linenos">5074</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="Date-5104"><a href="#Date-5104"><span class="linenos">5104</span></a><span class="k">class</span> <span class="nc">Date</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Date-5105"><a href="#Date-5105"><span class="linenos">5105</span></a> <span class="n">arg_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;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Date-5106"><a href="#Date-5106"><span class="linenos">5106</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -75240,8 +75867,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Day"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Day-5077"><a href="#Day-5077"><span class="linenos">5077</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-5078"><a href="#Day-5078"><span class="linenos">5078</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Day-5109"><a href="#Day-5109"><span class="linenos">5109</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-5110"><a href="#Day-5110"><span class="linenos">5110</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -75357,8 +75984,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Decode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-5081"><a href="#Decode-5081"><span class="linenos">5081</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-5082"><a href="#Decode-5082"><span class="linenos">5082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5113"><a href="#Decode-5113"><span class="linenos">5113</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-5114"><a href="#Decode-5114"><span class="linenos">5114</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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>
@@ -75485,8 +76112,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#DiToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-5085"><a href="#DiToDate-5085"><span class="linenos">5085</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-5086"><a href="#DiToDate-5086"><span class="linenos">5086</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-5117"><a href="#DiToDate-5117"><span class="linenos">5117</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-5118"><a href="#DiToDate-5118"><span class="linenos">5118</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -75602,8 +76229,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Encode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-5089"><a href="#Encode-5089"><span class="linenos">5089</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-5090"><a href="#Encode-5090"><span class="linenos">5090</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;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-5121"><a href="#Encode-5121"><span class="linenos">5121</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-5122"><a href="#Encode-5122"><span class="linenos">5122</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -75730,8 +76357,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Exp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-5093"><a href="#Exp-5093"><span class="linenos">5093</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-5094"><a href="#Exp-5094"><span class="linenos">5094</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-5125"><a href="#Exp-5125"><span class="linenos">5125</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-5126"><a href="#Exp-5126"><span class="linenos">5126</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -75847,9 +76474,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Explode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-5098"><a href="#Explode-5098"><span class="linenos">5098</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-5099"><a href="#Explode-5099"><span class="linenos">5099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Explode-5100"><a href="#Explode-5100"><span class="linenos">5100</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="Explode-5130"><a href="#Explode-5130"><span class="linenos">5130</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-5131"><a href="#Explode-5131"><span class="linenos">5131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Explode-5132"><a href="#Explode-5132"><span class="linenos">5132</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -75987,8 +76614,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ExplodeOuter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ExplodeOuter-5103"><a href="#ExplodeOuter-5103"><span class="linenos">5103</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="ExplodeOuter-5104"><a href="#ExplodeOuter-5104"><span class="linenos">5104</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ExplodeOuter-5135"><a href="#ExplodeOuter-5135"><span class="linenos">5135</span></a><span class="k">class</span> <span class="nc">ExplodeOuter</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="ExplodeOuter-5136"><a href="#ExplodeOuter-5136"><span class="linenos">5136</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76107,8 +76734,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Posexplode"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-5107"><a href="#Posexplode-5107"><span class="linenos">5107</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
-</span><span id="Posexplode-5108"><a href="#Posexplode-5108"><span class="linenos">5108</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-5139"><a href="#Posexplode-5139"><span class="linenos">5139</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Explode</span><span class="p">):</span>
+</span><span id="Posexplode-5140"><a href="#Posexplode-5140"><span class="linenos">5140</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76227,8 +76854,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PosexplodeOuter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PosexplodeOuter-5111"><a href="#PosexplodeOuter-5111"><span class="linenos">5111</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">,</span> <span class="n">ExplodeOuter</span><span class="p">):</span>
-</span><span id="PosexplodeOuter-5112"><a href="#PosexplodeOuter-5112"><span class="linenos">5112</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PosexplodeOuter-5143"><a href="#PosexplodeOuter-5143"><span class="linenos">5143</span></a><span class="k">class</span> <span class="nc">PosexplodeOuter</span><span class="p">(</span><span class="n">Posexplode</span><span class="p">,</span> <span class="n">ExplodeOuter</span><span class="p">):</span>
+</span><span id="PosexplodeOuter-5144"><a href="#PosexplodeOuter-5144"><span class="linenos">5144</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76347,8 +76974,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Floor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-5115"><a href="#Floor-5115"><span class="linenos">5115</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-5116"><a href="#Floor-5116"><span class="linenos">5116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5147"><a href="#Floor-5147"><span class="linenos">5147</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-5148"><a href="#Floor-5148"><span class="linenos">5148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -76475,8 +77102,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FromBase64"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-5119"><a href="#FromBase64-5119"><span class="linenos">5119</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="FromBase64-5120"><a href="#FromBase64-5120"><span class="linenos">5120</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-5151"><a href="#FromBase64-5151"><span class="linenos">5151</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="FromBase64-5152"><a href="#FromBase64-5152"><span class="linenos">5152</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76592,8 +77219,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ToBase64"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-5123"><a href="#ToBase64-5123"><span class="linenos">5123</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToBase64-5124"><a href="#ToBase64-5124"><span class="linenos">5124</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-5155"><a href="#ToBase64-5155"><span class="linenos">5155</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToBase64-5156"><a href="#ToBase64-5156"><span class="linenos">5156</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -76709,8 +77336,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#GenerateDateArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GenerateDateArray-5127"><a href="#GenerateDateArray-5127"><span class="linenos">5127</span></a><span class="k">class</span> <span class="nc">GenerateDateArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="GenerateDateArray-5128"><a href="#GenerateDateArray-5128"><span class="linenos">5128</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;interval&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="GenerateDateArray-5159"><a href="#GenerateDateArray-5159"><span class="linenos">5159</span></a><span class="k">class</span> <span class="nc">GenerateDateArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="GenerateDateArray-5160"><a href="#GenerateDateArray-5160"><span class="linenos">5160</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;interval&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -76837,9 +77464,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Greatest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-5131"><a href="#Greatest-5131"><span class="linenos">5131</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-5132"><a href="#Greatest-5132"><span class="linenos">5132</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5133"><a href="#Greatest-5133"><span class="linenos">5133</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-5163"><a href="#Greatest-5163"><span class="linenos">5163</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-5164"><a href="#Greatest-5164"><span class="linenos">5164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5165"><a href="#Greatest-5165"><span class="linenos">5165</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -76977,8 +77604,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#GroupConcat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-5136"><a href="#GroupConcat-5136"><span class="linenos">5136</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="GroupConcat-5137"><a href="#GroupConcat-5137"><span class="linenos">5137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5168"><a href="#GroupConcat-5168"><span class="linenos">5168</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="GroupConcat-5169"><a href="#GroupConcat-5169"><span class="linenos">5169</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -77105,8 +77732,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Hex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-5140"><a href="#Hex-5140"><span class="linenos">5140</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-5141"><a href="#Hex-5141"><span class="linenos">5141</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-5172"><a href="#Hex-5172"><span class="linenos">5172</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-5173"><a href="#Hex-5173"><span class="linenos">5173</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -77222,8 +77849,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Xor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Xor-5144"><a href="#Xor-5144"><span class="linenos">5144</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="Xor-5145"><a href="#Xor-5145"><span class="linenos">5145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Xor-5176"><a href="#Xor-5176"><span class="linenos">5176</span></a><span class="k">class</span> <span class="nc">Xor</span><span class="p">(</span><span class="n">Connector</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="Xor-5177"><a href="#Xor-5177"><span class="linenos">5177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -77355,9 +77982,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#If"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="If-5148"><a href="#If-5148"><span class="linenos">5148</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-5149"><a href="#If-5149"><span class="linenos">5149</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="If-5150"><a href="#If-5150"><span class="linenos">5150</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IF&quot;</span><span class="p">,</span> <span class="s2">&quot;IIF&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="If-5180"><a href="#If-5180"><span class="linenos">5180</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-5181"><a href="#If-5181"><span class="linenos">5181</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="If-5182"><a href="#If-5182"><span class="linenos">5182</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IF&quot;</span><span class="p">,</span> <span class="s2">&quot;IIF&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -77484,8 +78111,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Nullif"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nullif-5153"><a href="#Nullif-5153"><span class="linenos">5153</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Nullif-5154"><a href="#Nullif-5154"><span class="linenos">5154</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="Nullif-5185"><a href="#Nullif-5185"><span class="linenos">5185</span></a><span class="k">class</span> <span class="nc">Nullif</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Nullif-5186"><a href="#Nullif-5186"><span class="linenos">5186</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -77612,8 +78239,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Initcap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-5157"><a href="#Initcap-5157"><span class="linenos">5157</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-5158"><a href="#Initcap-5158"><span class="linenos">5158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-5189"><a href="#Initcap-5189"><span class="linenos">5189</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-5190"><a href="#Initcap-5190"><span class="linenos">5190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -77740,8 +78367,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#IsNan"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsNan-5161"><a href="#IsNan-5161"><span class="linenos">5161</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IsNan-5162"><a href="#IsNan-5162"><span class="linenos">5162</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsNan-5193"><a href="#IsNan-5193"><span class="linenos">5193</span></a><span class="k">class</span> <span class="nc">IsNan</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IsNan-5194"><a href="#IsNan-5194"><span class="linenos">5194</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_NAN&quot;</span><span class="p">,</span> <span class="s2">&quot;ISNAN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -77857,8 +78484,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#IsInf"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="IsInf-5165"><a href="#IsInf-5165"><span class="linenos">5165</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="IsInf-5166"><a href="#IsInf-5166"><span class="linenos">5166</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="IsInf-5197"><a href="#IsInf-5197"><span class="linenos">5197</span></a><span class="k">class</span> <span class="nc">IsInf</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="IsInf-5198"><a href="#IsInf-5198"><span class="linenos">5198</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IS_INF&quot;</span><span class="p">,</span> <span class="s2">&quot;ISINF&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -77974,13 +78601,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPath"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPath-5169"><a href="#JSONPath-5169"><span class="linenos">5169</span></a><span class="k">class</span> <span class="nc">JSONPath</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONPath-5170"><a href="#JSONPath-5170"><span class="linenos">5170</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="JSONPath-5171"><a href="#JSONPath-5171"><span class="linenos">5171</span></a>
-</span><span id="JSONPath-5172"><a href="#JSONPath-5172"><span class="linenos">5172</span></a> <span class="nd">@property</span>
-</span><span id="JSONPath-5173"><a href="#JSONPath-5173"><span class="linenos">5173</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="JSONPath-5174"><a href="#JSONPath-5174"><span class="linenos">5174</span></a> <span class="n">last_segment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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">this</span>
-</span><span id="JSONPath-5175"><a href="#JSONPath-5175"><span class="linenos">5175</span></a> <span class="k">return</span> <span class="n">last_segment</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">last_segment</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPath-5201"><a href="#JSONPath-5201"><span class="linenos">5201</span></a><span class="k">class</span> <span class="nc">JSONPath</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONPath-5202"><a href="#JSONPath-5202"><span class="linenos">5202</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="JSONPath-5203"><a href="#JSONPath-5203"><span class="linenos">5203</span></a>
+</span><span id="JSONPath-5204"><a href="#JSONPath-5204"><span class="linenos">5204</span></a> <span class="nd">@property</span>
+</span><span id="JSONPath-5205"><a href="#JSONPath-5205"><span class="linenos">5205</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="JSONPath-5206"><a href="#JSONPath-5206"><span class="linenos">5206</span></a> <span class="n">last_segment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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">this</span>
+</span><span id="JSONPath-5207"><a href="#JSONPath-5207"><span class="linenos">5207</span></a> <span class="k">return</span> <span class="n">last_segment</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">last_segment</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
@@ -78007,10 +78634,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPath.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPath.output_name-5172"><a href="#JSONPath.output_name-5172"><span class="linenos">5172</span></a> <span class="nd">@property</span>
-</span><span id="JSONPath.output_name-5173"><a href="#JSONPath.output_name-5173"><span class="linenos">5173</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="JSONPath.output_name-5174"><a href="#JSONPath.output_name-5174"><span class="linenos">5174</span></a> <span class="n">last_segment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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">this</span>
-</span><span id="JSONPath.output_name-5175"><a href="#JSONPath.output_name-5175"><span class="linenos">5175</span></a> <span class="k">return</span> <span class="n">last_segment</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">last_segment</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPath.output_name-5204"><a href="#JSONPath.output_name-5204"><span class="linenos">5204</span></a> <span class="nd">@property</span>
+</span><span id="JSONPath.output_name-5205"><a href="#JSONPath.output_name-5205"><span class="linenos">5205</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="JSONPath.output_name-5206"><a href="#JSONPath.output_name-5206"><span class="linenos">5206</span></a> <span class="n">last_segment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</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">this</span>
+</span><span id="JSONPath.output_name-5207"><a href="#JSONPath.output_name-5207"><span class="linenos">5207</span></a> <span class="k">return</span> <span class="n">last_segment</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">last_segment</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
@@ -78136,8 +78763,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathPart"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathPart-5178"><a href="#JSONPathPart-5178"><span class="linenos">5178</span></a><span class="k">class</span> <span class="nc">JSONPathPart</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONPathPart-5179"><a href="#JSONPathPart-5179"><span class="linenos">5179</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathPart-5210"><a href="#JSONPathPart-5210"><span class="linenos">5210</span></a><span class="k">class</span> <span class="nc">JSONPathPart</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONPathPart-5211"><a href="#JSONPathPart-5211"><span class="linenos">5211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
@@ -78256,8 +78883,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathFilter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathFilter-5182"><a href="#JSONPathFilter-5182"><span class="linenos">5182</span></a><span class="k">class</span> <span class="nc">JSONPathFilter</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathFilter-5183"><a href="#JSONPathFilter-5183"><span class="linenos">5183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="JSONPathFilter-5214"><a href="#JSONPathFilter-5214"><span class="linenos">5214</span></a><span class="k">class</span> <span class="nc">JSONPathFilter</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathFilter-5215"><a href="#JSONPathFilter-5215"><span class="linenos">5215</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -78376,8 +79003,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathKey"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathKey-5186"><a href="#JSONPathKey-5186"><span class="linenos">5186</span></a><span class="k">class</span> <span class="nc">JSONPathKey</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathKey-5187"><a href="#JSONPathKey-5187"><span class="linenos">5187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="JSONPathKey-5218"><a href="#JSONPathKey-5218"><span class="linenos">5218</span></a><span class="k">class</span> <span class="nc">JSONPathKey</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathKey-5219"><a href="#JSONPathKey-5219"><span class="linenos">5219</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -78496,8 +79123,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathRecursive"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathRecursive-5190"><a href="#JSONPathRecursive-5190"><span class="linenos">5190</span></a><span class="k">class</span> <span class="nc">JSONPathRecursive</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathRecursive-5191"><a href="#JSONPathRecursive-5191"><span class="linenos">5191</span></a> <span class="n">arg_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="JSONPathRecursive-5222"><a href="#JSONPathRecursive-5222"><span class="linenos">5222</span></a><span class="k">class</span> <span class="nc">JSONPathRecursive</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathRecursive-5223"><a href="#JSONPathRecursive-5223"><span class="linenos">5223</span></a> <span class="n">arg_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>
@@ -78616,8 +79243,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathRoot"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathRoot-5194"><a href="#JSONPathRoot-5194"><span class="linenos">5194</span></a><span class="k">class</span> <span class="nc">JSONPathRoot</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathRoot-5195"><a href="#JSONPathRoot-5195"><span class="linenos">5195</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathRoot-5226"><a href="#JSONPathRoot-5226"><span class="linenos">5226</span></a><span class="k">class</span> <span class="nc">JSONPathRoot</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathRoot-5227"><a href="#JSONPathRoot-5227"><span class="linenos">5227</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -78728,8 +79355,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathScript"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathScript-5198"><a href="#JSONPathScript-5198"><span class="linenos">5198</span></a><span class="k">class</span> <span class="nc">JSONPathScript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathScript-5199"><a href="#JSONPathScript-5199"><span class="linenos">5199</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="JSONPathScript-5230"><a href="#JSONPathScript-5230"><span class="linenos">5230</span></a><span class="k">class</span> <span class="nc">JSONPathScript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathScript-5231"><a href="#JSONPathScript-5231"><span class="linenos">5231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -78848,8 +79475,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathSlice"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathSlice-5202"><a href="#JSONPathSlice-5202"><span class="linenos">5202</span></a><span class="k">class</span> <span class="nc">JSONPathSlice</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathSlice-5203"><a href="#JSONPathSlice-5203"><span class="linenos">5203</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">False</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</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="JSONPathSlice-5234"><a href="#JSONPathSlice-5234"><span class="linenos">5234</span></a><span class="k">class</span> <span class="nc">JSONPathSlice</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathSlice-5235"><a href="#JSONPathSlice-5235"><span class="linenos">5235</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">False</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</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>
@@ -78968,8 +79595,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathSelector"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathSelector-5206"><a href="#JSONPathSelector-5206"><span class="linenos">5206</span></a><span class="k">class</span> <span class="nc">JSONPathSelector</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathSelector-5207"><a href="#JSONPathSelector-5207"><span class="linenos">5207</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="JSONPathSelector-5238"><a href="#JSONPathSelector-5238"><span class="linenos">5238</span></a><span class="k">class</span> <span class="nc">JSONPathSelector</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathSelector-5239"><a href="#JSONPathSelector-5239"><span class="linenos">5239</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -79088,8 +79715,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathSubscript"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathSubscript-5210"><a href="#JSONPathSubscript-5210"><span class="linenos">5210</span></a><span class="k">class</span> <span class="nc">JSONPathSubscript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathSubscript-5211"><a href="#JSONPathSubscript-5211"><span class="linenos">5211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&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="JSONPathSubscript-5242"><a href="#JSONPathSubscript-5242"><span class="linenos">5242</span></a><span class="k">class</span> <span class="nc">JSONPathSubscript</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathSubscript-5243"><a href="#JSONPathSubscript-5243"><span class="linenos">5243</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -79208,8 +79835,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathUnion"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathUnion-5214"><a href="#JSONPathUnion-5214"><span class="linenos">5214</span></a><span class="k">class</span> <span class="nc">JSONPathUnion</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathUnion-5215"><a href="#JSONPathUnion-5215"><span class="linenos">5215</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathUnion-5246"><a href="#JSONPathUnion-5246"><span class="linenos">5246</span></a><span class="k">class</span> <span class="nc">JSONPathUnion</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathUnion-5247"><a href="#JSONPathUnion-5247"><span class="linenos">5247</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -79328,8 +79955,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONPathWildcard"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathWildcard-5218"><a href="#JSONPathWildcard-5218"><span class="linenos">5218</span></a><span class="k">class</span> <span class="nc">JSONPathWildcard</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
-</span><span id="JSONPathWildcard-5219"><a href="#JSONPathWildcard-5219"><span class="linenos">5219</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONPathWildcard-5250"><a href="#JSONPathWildcard-5250"><span class="linenos">5250</span></a><span class="k">class</span> <span class="nc">JSONPathWildcard</span><span class="p">(</span><span class="n">JSONPathPart</span><span class="p">):</span>
+</span><span id="JSONPathWildcard-5251"><a href="#JSONPathWildcard-5251"><span class="linenos">5251</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -79440,8 +80067,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FormatJson"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FormatJson-5222"><a href="#FormatJson-5222"><span class="linenos">5222</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="FormatJson-5223"><a href="#FormatJson-5223"><span class="linenos">5223</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FormatJson-5254"><a href="#FormatJson-5254"><span class="linenos">5254</span></a><span class="k">class</span> <span class="nc">FormatJson</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="FormatJson-5255"><a href="#FormatJson-5255"><span class="linenos">5255</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -79549,8 +80176,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONKeyValue"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-5226"><a href="#JSONKeyValue-5226"><span class="linenos">5226</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONKeyValue-5227"><a href="#JSONKeyValue-5227"><span class="linenos">5227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-5258"><a href="#JSONKeyValue-5258"><span class="linenos">5258</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONKeyValue-5259"><a href="#JSONKeyValue-5259"><span class="linenos">5259</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -79669,14 +80296,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONObject"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-5230"><a href="#JSONObject-5230"><span class="linenos">5230</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONObject-5231"><a href="#JSONObject-5231"><span class="linenos">5231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONObject-5232"><a href="#JSONObject-5232"><span class="linenos">5232</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-5233"><a href="#JSONObject-5233"><span class="linenos">5233</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-5234"><a href="#JSONObject-5234"><span class="linenos">5234</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-5235"><a href="#JSONObject-5235"><span class="linenos">5235</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-5236"><a href="#JSONObject-5236"><span class="linenos">5236</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObject-5237"><a href="#JSONObject-5237"><span class="linenos">5237</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-5262"><a href="#JSONObject-5262"><span class="linenos">5262</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONObject-5263"><a href="#JSONObject-5263"><span class="linenos">5263</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONObject-5264"><a href="#JSONObject-5264"><span class="linenos">5264</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-5265"><a href="#JSONObject-5265"><span class="linenos">5265</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-5266"><a href="#JSONObject-5266"><span class="linenos">5266</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-5267"><a href="#JSONObject-5267"><span class="linenos">5267</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-5268"><a href="#JSONObject-5268"><span class="linenos">5268</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObject-5269"><a href="#JSONObject-5269"><span class="linenos">5269</span></a> <span class="p">}</span>
</span></pre></div>
@@ -79804,14 +80431,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONObjectAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObjectAgg-5240"><a href="#JSONObjectAgg-5240"><span class="linenos">5240</span></a><span class="k">class</span> <span class="nc">JSONObjectAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="JSONObjectAgg-5241"><a href="#JSONObjectAgg-5241"><span class="linenos">5241</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONObjectAgg-5242"><a href="#JSONObjectAgg-5242"><span class="linenos">5242</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="JSONObjectAgg-5243"><a href="#JSONObjectAgg-5243"><span class="linenos">5243</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObjectAgg-5244"><a href="#JSONObjectAgg-5244"><span class="linenos">5244</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObjectAgg-5245"><a href="#JSONObjectAgg-5245"><span class="linenos">5245</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObjectAgg-5246"><a href="#JSONObjectAgg-5246"><span class="linenos">5246</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONObjectAgg-5247"><a href="#JSONObjectAgg-5247"><span class="linenos">5247</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONObjectAgg-5272"><a href="#JSONObjectAgg-5272"><span class="linenos">5272</span></a><span class="k">class</span> <span class="nc">JSONObjectAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="JSONObjectAgg-5273"><a href="#JSONObjectAgg-5273"><span class="linenos">5273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONObjectAgg-5274"><a href="#JSONObjectAgg-5274"><span class="linenos">5274</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="JSONObjectAgg-5275"><a href="#JSONObjectAgg-5275"><span class="linenos">5275</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObjectAgg-5276"><a href="#JSONObjectAgg-5276"><span class="linenos">5276</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObjectAgg-5277"><a href="#JSONObjectAgg-5277"><span class="linenos">5277</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObjectAgg-5278"><a href="#JSONObjectAgg-5278"><span class="linenos">5278</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONObjectAgg-5279"><a href="#JSONObjectAgg-5279"><span class="linenos">5279</span></a> <span class="p">}</span>
</span></pre></div>
@@ -79939,13 +80566,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArray-5251"><a href="#JSONArray-5251"><span class="linenos">5251</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArray-5252"><a href="#JSONArray-5252"><span class="linenos">5252</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONArray-5253"><a href="#JSONArray-5253"><span class="linenos">5253</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONArray-5254"><a href="#JSONArray-5254"><span class="linenos">5254</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-5255"><a href="#JSONArray-5255"><span class="linenos">5255</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-5256"><a href="#JSONArray-5256"><span class="linenos">5256</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArray-5257"><a href="#JSONArray-5257"><span class="linenos">5257</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArray-5283"><a href="#JSONArray-5283"><span class="linenos">5283</span></a><span class="k">class</span> <span class="nc">JSONArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArray-5284"><a href="#JSONArray-5284"><span class="linenos">5284</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONArray-5285"><a href="#JSONArray-5285"><span class="linenos">5285</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONArray-5286"><a href="#JSONArray-5286"><span class="linenos">5286</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-5287"><a href="#JSONArray-5287"><span class="linenos">5287</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-5288"><a href="#JSONArray-5288"><span class="linenos">5288</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArray-5289"><a href="#JSONArray-5289"><span class="linenos">5289</span></a> <span class="p">}</span>
</span></pre></div>
@@ -80072,14 +80699,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArrayAgg"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayAgg-5261"><a href="#JSONArrayAgg-5261"><span class="linenos">5261</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArrayAgg-5262"><a href="#JSONArrayAgg-5262"><span class="linenos">5262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONArrayAgg-5263"><a href="#JSONArrayAgg-5263"><span class="linenos">5263</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-5264"><a href="#JSONArrayAgg-5264"><span class="linenos">5264</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-5265"><a href="#JSONArrayAgg-5265"><span class="linenos">5265</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-5266"><a href="#JSONArrayAgg-5266"><span class="linenos">5266</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-5267"><a href="#JSONArrayAgg-5267"><span class="linenos">5267</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONArrayAgg-5268"><a href="#JSONArrayAgg-5268"><span class="linenos">5268</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayAgg-5293"><a href="#JSONArrayAgg-5293"><span class="linenos">5293</span></a><span class="k">class</span> <span class="nc">JSONArrayAgg</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArrayAgg-5294"><a href="#JSONArrayAgg-5294"><span class="linenos">5294</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONArrayAgg-5295"><a href="#JSONArrayAgg-5295"><span class="linenos">5295</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-5296"><a href="#JSONArrayAgg-5296"><span class="linenos">5296</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-5297"><a href="#JSONArrayAgg-5297"><span class="linenos">5297</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-5298"><a href="#JSONArrayAgg-5298"><span class="linenos">5298</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-5299"><a href="#JSONArrayAgg-5299"><span class="linenos">5299</span></a> <span class="s2">&quot;strict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONArrayAgg-5300"><a href="#JSONArrayAgg-5300"><span class="linenos">5300</span></a> <span class="p">}</span>
</span></pre></div>
@@ -80206,8 +80833,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONColumnDef-5273"><a href="#JSONColumnDef-5273"><span class="linenos">5273</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONColumnDef-5274"><a href="#JSONColumnDef-5274"><span class="linenos">5274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONColumnDef-5305"><a href="#JSONColumnDef-5305"><span class="linenos">5305</span></a><span class="k">class</span> <span class="nc">JSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONColumnDef-5306"><a href="#JSONColumnDef-5306"><span class="linenos">5306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;nested_schema&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -80326,8 +80953,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONSchema"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONSchema-5277"><a href="#JSONSchema-5277"><span class="linenos">5277</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="JSONSchema-5278"><a href="#JSONSchema-5278"><span class="linenos">5278</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONSchema-5309"><a href="#JSONSchema-5309"><span class="linenos">5309</span></a><span class="k">class</span> <span class="nc">JSONSchema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="JSONSchema-5310"><a href="#JSONSchema-5310"><span class="linenos">5310</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -80446,14 +81073,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONTable-5282"><a href="#JSONTable-5282"><span class="linenos">5282</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONTable-5283"><a href="#JSONTable-5283"><span class="linenos">5283</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="JSONTable-5284"><a href="#JSONTable-5284"><span class="linenos">5284</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONTable-5285"><a href="#JSONTable-5285"><span class="linenos">5285</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="JSONTable-5286"><a href="#JSONTable-5286"><span class="linenos">5286</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-5287"><a href="#JSONTable-5287"><span class="linenos">5287</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-5288"><a href="#JSONTable-5288"><span class="linenos">5288</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="JSONTable-5289"><a href="#JSONTable-5289"><span class="linenos">5289</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONTable-5314"><a href="#JSONTable-5314"><span class="linenos">5314</span></a><span class="k">class</span> <span class="nc">JSONTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONTable-5315"><a href="#JSONTable-5315"><span class="linenos">5315</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="JSONTable-5316"><a href="#JSONTable-5316"><span class="linenos">5316</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONTable-5317"><a href="#JSONTable-5317"><span class="linenos">5317</span></a> <span class="s2">&quot;schema&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="JSONTable-5318"><a href="#JSONTable-5318"><span class="linenos">5318</span></a> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-5319"><a href="#JSONTable-5319"><span class="linenos">5319</span></a> <span class="s2">&quot;error_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-5320"><a href="#JSONTable-5320"><span class="linenos">5320</span></a> <span class="s2">&quot;empty_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="JSONTable-5321"><a href="#JSONTable-5321"><span class="linenos">5321</span></a> <span class="p">}</span>
</span></pre></div>
@@ -80580,8 +81207,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#OpenJSONColumnDef"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-5292"><a href="#OpenJSONColumnDef-5292"><span class="linenos">5292</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
-</span><span id="OpenJSONColumnDef-5293"><a href="#OpenJSONColumnDef-5293"><span class="linenos">5293</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-5324"><a href="#OpenJSONColumnDef-5324"><span class="linenos">5324</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
+</span><span id="OpenJSONColumnDef-5325"><a href="#OpenJSONColumnDef-5325"><span class="linenos">5325</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -80700,8 +81327,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#OpenJSON"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-5296"><a href="#OpenJSON-5296"><span class="linenos">5296</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="OpenJSON-5297"><a href="#OpenJSON-5297"><span class="linenos">5297</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-5328"><a href="#OpenJSON-5328"><span class="linenos">5328</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="OpenJSON-5329"><a href="#OpenJSON-5329"><span class="linenos">5329</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -80828,8 +81455,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-5300"><a href="#JSONBContains-5300"><span class="linenos">5300</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-5301"><a href="#JSONBContains-5301"><span class="linenos">5301</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-5332"><a href="#JSONBContains-5332"><span class="linenos">5332</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-5333"><a href="#JSONBContains-5333"><span class="linenos">5333</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>
@@ -80942,14 +81569,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-5304"><a href="#JSONExtract-5304"><span class="linenos">5304</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-5305"><a href="#JSONExtract-5305"><span class="linenos">5305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="JSONExtract-5306"><a href="#JSONExtract-5306"><span class="linenos">5306</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="JSONExtract-5307"><a href="#JSONExtract-5307"><span class="linenos">5307</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="JSONExtract-5308"><a href="#JSONExtract-5308"><span class="linenos">5308</span></a>
-</span><span id="JSONExtract-5309"><a href="#JSONExtract-5309"><span class="linenos">5309</span></a> <span class="nd">@property</span>
-</span><span id="JSONExtract-5310"><a href="#JSONExtract-5310"><span class="linenos">5310</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="JSONExtract-5311"><a href="#JSONExtract-5311"><span class="linenos">5311</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">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-5336"><a href="#JSONExtract-5336"><span class="linenos">5336</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-5337"><a href="#JSONExtract-5337"><span class="linenos">5337</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="JSONExtract-5338"><a href="#JSONExtract-5338"><span class="linenos">5338</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="JSONExtract-5339"><a href="#JSONExtract-5339"><span class="linenos">5339</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="JSONExtract-5340"><a href="#JSONExtract-5340"><span class="linenos">5340</span></a>
+</span><span id="JSONExtract-5341"><a href="#JSONExtract-5341"><span class="linenos">5341</span></a> <span class="nd">@property</span>
+</span><span id="JSONExtract-5342"><a href="#JSONExtract-5342"><span class="linenos">5342</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="JSONExtract-5343"><a href="#JSONExtract-5343"><span class="linenos">5343</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">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
@@ -80988,9 +81615,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtract.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract.output_name-5309"><a href="#JSONExtract.output_name-5309"><span class="linenos">5309</span></a> <span class="nd">@property</span>
-</span><span id="JSONExtract.output_name-5310"><a href="#JSONExtract.output_name-5310"><span class="linenos">5310</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="JSONExtract.output_name-5311"><a href="#JSONExtract.output_name-5311"><span class="linenos">5311</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">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract.output_name-5341"><a href="#JSONExtract.output_name-5341"><span class="linenos">5341</span></a> <span class="nd">@property</span>
+</span><span id="JSONExtract.output_name-5342"><a href="#JSONExtract.output_name-5342"><span class="linenos">5342</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="JSONExtract.output_name-5343"><a href="#JSONExtract.output_name-5343"><span class="linenos">5343</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">output_name</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
@@ -81128,14 +81755,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-5314"><a href="#JSONExtractScalar-5314"><span class="linenos">5314</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</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="JSONExtractScalar-5315"><a href="#JSONExtractScalar-5315"><span class="linenos">5315</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="JSONExtractScalar-5316"><a href="#JSONExtractScalar-5316"><span class="linenos">5316</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="JSONExtractScalar-5317"><a href="#JSONExtractScalar-5317"><span class="linenos">5317</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="JSONExtractScalar-5318"><a href="#JSONExtractScalar-5318"><span class="linenos">5318</span></a>
-</span><span id="JSONExtractScalar-5319"><a href="#JSONExtractScalar-5319"><span class="linenos">5319</span></a> <span class="nd">@property</span>
-</span><span id="JSONExtractScalar-5320"><a href="#JSONExtractScalar-5320"><span class="linenos">5320</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="JSONExtractScalar-5321"><a href="#JSONExtractScalar-5321"><span class="linenos">5321</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">output_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-5346"><a href="#JSONExtractScalar-5346"><span class="linenos">5346</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</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="JSONExtractScalar-5347"><a href="#JSONExtractScalar-5347"><span class="linenos">5347</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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;only_json_types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="JSONExtractScalar-5348"><a href="#JSONExtractScalar-5348"><span class="linenos">5348</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="JSONExtractScalar-5349"><a href="#JSONExtractScalar-5349"><span class="linenos">5349</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="JSONExtractScalar-5350"><a href="#JSONExtractScalar-5350"><span class="linenos">5350</span></a>
+</span><span id="JSONExtractScalar-5351"><a href="#JSONExtractScalar-5351"><span class="linenos">5351</span></a> <span class="nd">@property</span>
+</span><span id="JSONExtractScalar-5352"><a href="#JSONExtractScalar-5352"><span class="linenos">5352</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="JSONExtractScalar-5353"><a href="#JSONExtractScalar-5353"><span class="linenos">5353</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">output_name</span>
</span></pre></div>
@@ -81174,9 +81801,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONExtractScalar.output_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar.output_name-5319"><a href="#JSONExtractScalar.output_name-5319"><span class="linenos">5319</span></a> <span class="nd">@property</span>
-</span><span id="JSONExtractScalar.output_name-5320"><a href="#JSONExtractScalar.output_name-5320"><span class="linenos">5320</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="JSONExtractScalar.output_name-5321"><a href="#JSONExtractScalar.output_name-5321"><span class="linenos">5321</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">output_name</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar.output_name-5351"><a href="#JSONExtractScalar.output_name-5351"><span class="linenos">5351</span></a> <span class="nd">@property</span>
+</span><span id="JSONExtractScalar.output_name-5352"><a href="#JSONExtractScalar.output_name-5352"><span class="linenos">5352</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="JSONExtractScalar.output_name-5353"><a href="#JSONExtractScalar.output_name-5353"><span class="linenos">5353</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">output_name</span>
</span></pre></div>
@@ -81314,8 +81941,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-5324"><a href="#JSONBExtract-5324"><span class="linenos">5324</span></a><span class="k">class</span> <span class="nc">JSONBExtract</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="JSONBExtract-5325"><a href="#JSONBExtract-5325"><span class="linenos">5325</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-5356"><a href="#JSONBExtract-5356"><span class="linenos">5356</span></a><span class="k">class</span> <span class="nc">JSONBExtract</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="JSONBExtract-5357"><a href="#JSONBExtract-5357"><span class="linenos">5357</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>
@@ -81436,8 +82063,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-5328"><a href="#JSONBExtractScalar-5328"><span class="linenos">5328</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</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="JSONBExtractScalar-5329"><a href="#JSONBExtractScalar-5329"><span class="linenos">5329</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-5360"><a href="#JSONBExtractScalar-5360"><span class="linenos">5360</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</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="JSONBExtractScalar-5361"><a href="#JSONBExtractScalar-5361"><span class="linenos">5361</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>
@@ -81558,9 +82185,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONFormat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-5332"><a href="#JSONFormat-5332"><span class="linenos">5332</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONFormat-5333"><a href="#JSONFormat-5333"><span class="linenos">5333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="JSONFormat-5334"><a href="#JSONFormat-5334"><span class="linenos">5334</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-5364"><a href="#JSONFormat-5364"><span class="linenos">5364</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONFormat-5365"><a href="#JSONFormat-5365"><span class="linenos">5365</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="JSONFormat-5366"><a href="#JSONFormat-5366"><span class="linenos">5366</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -81687,8 +82314,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#JSONArrayContains"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayContains-5338"><a href="#JSONArrayContains-5338"><span class="linenos">5338</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="JSONArrayContains-5339"><a href="#JSONArrayContains-5339"><span class="linenos">5339</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="JSONArrayContains-5370"><a href="#JSONArrayContains-5370"><span class="linenos">5370</span></a><span class="k">class</span> <span class="nc">JSONArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="JSONArrayContains-5371"><a href="#JSONArrayContains-5371"><span class="linenos">5371</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_ARRAY_CONTAINS&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -81809,11 +82436,11 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ParseJSON"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ParseJSON-5342"><a href="#ParseJSON-5342"><span class="linenos">5342</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ParseJSON-5343"><a href="#ParseJSON-5343"><span class="linenos">5343</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
-</span><span id="ParseJSON-5344"><a href="#ParseJSON-5344"><span class="linenos">5344</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
-</span><span id="ParseJSON-5345"><a href="#ParseJSON-5345"><span class="linenos">5345</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ParseJSON-5346"><a href="#ParseJSON-5346"><span class="linenos">5346</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="ParseJSON-5374"><a href="#ParseJSON-5374"><span class="linenos">5374</span></a><span class="k">class</span> <span class="nc">ParseJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ParseJSON-5375"><a href="#ParseJSON-5375"><span class="linenos">5375</span></a> <span class="c1"># BigQuery, Snowflake have PARSE_JSON, Presto has JSON_PARSE</span>
+</span><span id="ParseJSON-5376"><a href="#ParseJSON-5376"><span class="linenos">5376</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;PARSE_JSON&quot;</span><span class="p">,</span> <span class="s2">&quot;JSON_PARSE&quot;</span><span class="p">]</span>
+</span><span id="ParseJSON-5377"><a href="#ParseJSON-5377"><span class="linenos">5377</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="ParseJSON-5378"><a href="#ParseJSON-5378"><span class="linenos">5378</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -81951,9 +82578,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Least"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Least-5349"><a href="#Least-5349"><span class="linenos">5349</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-5350"><a href="#Least-5350"><span class="linenos">5350</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="Least-5351"><a href="#Least-5351"><span class="linenos">5351</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-5381"><a href="#Least-5381"><span class="linenos">5381</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-5382"><a href="#Least-5382"><span class="linenos">5382</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="Least-5383"><a href="#Least-5383"><span class="linenos">5383</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -82091,8 +82718,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Left"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Left-5354"><a href="#Left-5354"><span class="linenos">5354</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Left-5355"><a href="#Left-5355"><span class="linenos">5355</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Left-5386"><a href="#Left-5386"><span class="linenos">5386</span></a><span class="k">class</span> <span class="nc">Left</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Left-5387"><a href="#Left-5387"><span class="linenos">5387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -82219,8 +82846,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Right"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Right-5358"><a href="#Right-5358"><span class="linenos">5358</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Right-5359"><a href="#Right-5359"><span class="linenos">5359</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Right-5390"><a href="#Right-5390"><span class="linenos">5390</span></a><span class="k">class</span> <span class="nc">Right</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Right-5391"><a href="#Right-5391"><span class="linenos">5391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -82347,8 +82974,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Length"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Length-5362"><a href="#Length-5362"><span class="linenos">5362</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-5363"><a href="#Length-5363"><span class="linenos">5363</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Length-5394"><a href="#Length-5394"><span class="linenos">5394</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-5395"><a href="#Length-5395"><span class="linenos">5395</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LENGTH&quot;</span><span class="p">,</span> <span class="s2">&quot;LEN&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -82464,14 +83091,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Levenshtein"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-5366"><a href="#Levenshtein-5366"><span class="linenos">5366</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-5367"><a href="#Levenshtein-5367"><span class="linenos">5367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Levenshtein-5368"><a href="#Levenshtein-5368"><span class="linenos">5368</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-5369"><a href="#Levenshtein-5369"><span class="linenos">5369</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-5370"><a href="#Levenshtein-5370"><span class="linenos">5370</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-5371"><a href="#Levenshtein-5371"><span class="linenos">5371</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-5372"><a href="#Levenshtein-5372"><span class="linenos">5372</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-5373"><a href="#Levenshtein-5373"><span class="linenos">5373</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-5398"><a href="#Levenshtein-5398"><span class="linenos">5398</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-5399"><a href="#Levenshtein-5399"><span class="linenos">5399</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Levenshtein-5400"><a href="#Levenshtein-5400"><span class="linenos">5400</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-5401"><a href="#Levenshtein-5401"><span class="linenos">5401</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-5402"><a href="#Levenshtein-5402"><span class="linenos">5402</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-5403"><a href="#Levenshtein-5403"><span class="linenos">5403</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-5404"><a href="#Levenshtein-5404"><span class="linenos">5404</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-5405"><a href="#Levenshtein-5405"><span class="linenos">5405</span></a> <span class="p">}</span>
</span></pre></div>
@@ -82598,8 +83225,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Ln"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-5376"><a href="#Ln-5376"><span class="linenos">5376</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-5377"><a href="#Ln-5377"><span class="linenos">5377</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-5408"><a href="#Ln-5408"><span class="linenos">5408</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-5409"><a href="#Ln-5409"><span class="linenos">5409</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -82715,8 +83342,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Log"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Log-5380"><a href="#Log-5380"><span class="linenos">5380</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-5381"><a href="#Log-5381"><span class="linenos">5381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5412"><a href="#Log-5412"><span class="linenos">5412</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-5413"><a href="#Log-5413"><span class="linenos">5413</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -82843,8 +83470,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LogicalOr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-5384"><a href="#LogicalOr-5384"><span class="linenos">5384</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-5385"><a href="#LogicalOr-5385"><span class="linenos">5385</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-5416"><a href="#LogicalOr-5416"><span class="linenos">5416</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-5417"><a href="#LogicalOr-5417"><span class="linenos">5417</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -82960,8 +83587,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#LogicalAnd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-5388"><a href="#LogicalAnd-5388"><span class="linenos">5388</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="LogicalAnd-5389"><a href="#LogicalAnd-5389"><span class="linenos">5389</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-5420"><a href="#LogicalAnd-5420"><span class="linenos">5420</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="LogicalAnd-5421"><a href="#LogicalAnd-5421"><span class="linenos">5421</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -83077,8 +83704,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Lower"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-5392"><a href="#Lower-5392"><span class="linenos">5392</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-5393"><a href="#Lower-5393"><span class="linenos">5393</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-5424"><a href="#Lower-5424"><span class="linenos">5424</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-5425"><a href="#Lower-5425"><span class="linenos">5425</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>
@@ -83194,18 +83821,18 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Map"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map-5396"><a href="#Map-5396"><span class="linenos">5396</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-5397"><a href="#Map-5397"><span class="linenos">5397</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="Map-5398"><a href="#Map-5398"><span class="linenos">5398</span></a>
-</span><span id="Map-5399"><a href="#Map-5399"><span class="linenos">5399</span></a> <span class="nd">@property</span>
-</span><span id="Map-5400"><a href="#Map-5400"><span class="linenos">5400</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Map-5401"><a href="#Map-5401"><span class="linenos">5401</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
-</span><span id="Map-5402"><a href="#Map-5402"><span class="linenos">5402</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
-</span><span id="Map-5403"><a href="#Map-5403"><span class="linenos">5403</span></a>
-</span><span id="Map-5404"><a href="#Map-5404"><span class="linenos">5404</span></a> <span class="nd">@property</span>
-</span><span id="Map-5405"><a href="#Map-5405"><span class="linenos">5405</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Map-5406"><a href="#Map-5406"><span class="linenos">5406</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
-</span><span id="Map-5407"><a href="#Map-5407"><span class="linenos">5407</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map-5428"><a href="#Map-5428"><span class="linenos">5428</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-5429"><a href="#Map-5429"><span class="linenos">5429</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="Map-5430"><a href="#Map-5430"><span class="linenos">5430</span></a>
+</span><span id="Map-5431"><a href="#Map-5431"><span class="linenos">5431</span></a> <span class="nd">@property</span>
+</span><span id="Map-5432"><a href="#Map-5432"><span class="linenos">5432</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map-5433"><a href="#Map-5433"><span class="linenos">5433</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
+</span><span id="Map-5434"><a href="#Map-5434"><span class="linenos">5434</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
+</span><span id="Map-5435"><a href="#Map-5435"><span class="linenos">5435</span></a>
+</span><span id="Map-5436"><a href="#Map-5436"><span class="linenos">5436</span></a> <span class="nd">@property</span>
+</span><span id="Map-5437"><a href="#Map-5437"><span class="linenos">5437</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map-5438"><a href="#Map-5438"><span class="linenos">5438</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
+</span><span id="Map-5439"><a href="#Map-5439"><span class="linenos">5439</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
</span></pre></div>
@@ -83232,10 +83859,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Map.keys"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map.keys-5399"><a href="#Map.keys-5399"><span class="linenos">5399</span></a> <span class="nd">@property</span>
-</span><span id="Map.keys-5400"><a href="#Map.keys-5400"><span class="linenos">5400</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Map.keys-5401"><a href="#Map.keys-5401"><span class="linenos">5401</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
-</span><span id="Map.keys-5402"><a href="#Map.keys-5402"><span class="linenos">5402</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map.keys-5431"><a href="#Map.keys-5431"><span class="linenos">5431</span></a> <span class="nd">@property</span>
+</span><span id="Map.keys-5432"><a href="#Map.keys-5432"><span class="linenos">5432</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map.keys-5433"><a href="#Map.keys-5433"><span class="linenos">5433</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;keys&quot;</span><span class="p">)</span>
+</span><span id="Map.keys-5434"><a href="#Map.keys-5434"><span class="linenos">5434</span></a> <span class="k">return</span> <span class="n">keys</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="p">[]</span>
</span></pre></div>
@@ -83251,10 +83878,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Map.values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Map.values-5404"><a href="#Map.values-5404"><span class="linenos">5404</span></a> <span class="nd">@property</span>
-</span><span id="Map.values-5405"><a href="#Map.values-5405"><span class="linenos">5405</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="Map.values-5406"><a href="#Map.values-5406"><span class="linenos">5406</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
-</span><span id="Map.values-5407"><a href="#Map.values-5407"><span class="linenos">5407</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Map.values-5436"><a href="#Map.values-5436"><span class="linenos">5436</span></a> <span class="nd">@property</span>
+</span><span id="Map.values-5437"><a href="#Map.values-5437"><span class="linenos">5437</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="Map.values-5438"><a href="#Map.values-5438"><span class="linenos">5438</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;values&quot;</span><span class="p">)</span>
+</span><span id="Map.values-5439"><a href="#Map.values-5439"><span class="linenos">5439</span></a> <span class="k">return</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">values</span> <span class="k">else</span> <span class="p">[]</span>
</span></pre></div>
@@ -83370,8 +83997,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ToMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ToMap-5411"><a href="#ToMap-5411"><span class="linenos">5411</span></a><span class="k">class</span> <span class="nc">ToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="ToMap-5412"><a href="#ToMap-5412"><span class="linenos">5412</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="ToMap-5443"><a href="#ToMap-5443"><span class="linenos">5443</span></a><span class="k">class</span> <span class="nc">ToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="ToMap-5444"><a href="#ToMap-5444"><span class="linenos">5444</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -83487,8 +84114,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MapFromEntries"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MapFromEntries-5415"><a href="#MapFromEntries-5415"><span class="linenos">5415</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MapFromEntries-5416"><a href="#MapFromEntries-5416"><span class="linenos">5416</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MapFromEntries-5447"><a href="#MapFromEntries-5447"><span class="linenos">5447</span></a><span class="k">class</span> <span class="nc">MapFromEntries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MapFromEntries-5448"><a href="#MapFromEntries-5448"><span class="linenos">5448</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -83604,8 +84231,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-5419"><a href="#StarMap-5419"><span class="linenos">5419</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StarMap-5420"><a href="#StarMap-5420"><span class="linenos">5420</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-5451"><a href="#StarMap-5451"><span class="linenos">5451</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StarMap-5452"><a href="#StarMap-5452"><span class="linenos">5452</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -83721,17 +84348,17 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VarMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-5423"><a href="#VarMap-5423"><span class="linenos">5423</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-5424"><a href="#VarMap-5424"><span class="linenos">5424</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-5425"><a href="#VarMap-5425"><span class="linenos">5425</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="VarMap-5426"><a href="#VarMap-5426"><span class="linenos">5426</span></a>
-</span><span id="VarMap-5427"><a href="#VarMap-5427"><span class="linenos">5427</span></a> <span class="nd">@property</span>
-</span><span id="VarMap-5428"><a href="#VarMap-5428"><span class="linenos">5428</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="VarMap-5429"><a href="#VarMap-5429"><span class="linenos">5429</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
-</span><span id="VarMap-5430"><a href="#VarMap-5430"><span class="linenos">5430</span></a>
-</span><span id="VarMap-5431"><a href="#VarMap-5431"><span class="linenos">5431</span></a> <span class="nd">@property</span>
-</span><span id="VarMap-5432"><a href="#VarMap-5432"><span class="linenos">5432</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="VarMap-5433"><a href="#VarMap-5433"><span class="linenos">5433</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-5455"><a href="#VarMap-5455"><span class="linenos">5455</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-5456"><a href="#VarMap-5456"><span class="linenos">5456</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-5457"><a href="#VarMap-5457"><span class="linenos">5457</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="VarMap-5458"><a href="#VarMap-5458"><span class="linenos">5458</span></a>
+</span><span id="VarMap-5459"><a href="#VarMap-5459"><span class="linenos">5459</span></a> <span class="nd">@property</span>
+</span><span id="VarMap-5460"><a href="#VarMap-5460"><span class="linenos">5460</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap-5461"><a href="#VarMap-5461"><span class="linenos">5461</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+</span><span id="VarMap-5462"><a href="#VarMap-5462"><span class="linenos">5462</span></a>
+</span><span id="VarMap-5463"><a href="#VarMap-5463"><span class="linenos">5463</span></a> <span class="nd">@property</span>
+</span><span id="VarMap-5464"><a href="#VarMap-5464"><span class="linenos">5464</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap-5465"><a href="#VarMap-5465"><span class="linenos">5465</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -83770,9 +84397,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VarMap.keys"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap.keys-5427"><a href="#VarMap.keys-5427"><span class="linenos">5427</span></a> <span class="nd">@property</span>
-</span><span id="VarMap.keys-5428"><a href="#VarMap.keys-5428"><span class="linenos">5428</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="VarMap.keys-5429"><a href="#VarMap.keys-5429"><span class="linenos">5429</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap.keys-5459"><a href="#VarMap.keys-5459"><span class="linenos">5459</span></a> <span class="nd">@property</span>
+</span><span id="VarMap.keys-5460"><a href="#VarMap.keys-5460"><span class="linenos">5460</span></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap.keys-5461"><a href="#VarMap.keys-5461"><span class="linenos">5461</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;keys&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -83788,9 +84415,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VarMap.values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap.values-5431"><a href="#VarMap.values-5431"><span class="linenos">5431</span></a> <span class="nd">@property</span>
-</span><span id="VarMap.values-5432"><a href="#VarMap.values-5432"><span class="linenos">5432</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
-</span><span id="VarMap.values-5433"><a href="#VarMap.values-5433"><span class="linenos">5433</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap.values-5463"><a href="#VarMap.values-5463"><span class="linenos">5463</span></a> <span class="nd">@property</span>
+</span><span id="VarMap.values-5464"><a href="#VarMap.values-5464"><span class="linenos">5464</span></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
+</span><span id="VarMap.values-5465"><a href="#VarMap.values-5465"><span class="linenos">5465</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;values&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
@@ -83905,8 +84532,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MatchAgainst"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-5437"><a href="#MatchAgainst-5437"><span class="linenos">5437</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MatchAgainst-5438"><a href="#MatchAgainst-5438"><span class="linenos">5438</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-5469"><a href="#MatchAgainst-5469"><span class="linenos">5469</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MatchAgainst-5470"><a href="#MatchAgainst-5470"><span class="linenos">5470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -84033,9 +84660,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Max"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Max-5441"><a href="#Max-5441"><span class="linenos">5441</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-5442"><a href="#Max-5442"><span class="linenos">5442</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5443"><a href="#Max-5443"><span class="linenos">5443</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-5473"><a href="#Max-5473"><span class="linenos">5473</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-5474"><a href="#Max-5474"><span class="linenos">5474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5475"><a href="#Max-5475"><span class="linenos">5475</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -84173,8 +84800,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MD5"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-5446"><a href="#MD5-5446"><span class="linenos">5446</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MD5-5447"><a href="#MD5-5447"><span class="linenos">5447</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5-5478"><a href="#MD5-5478"><span class="linenos">5478</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MD5-5479"><a href="#MD5-5479"><span class="linenos">5479</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -84290,8 +84917,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#MD5Digest"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="MD5Digest-5451"><a href="#MD5Digest-5451"><span class="linenos">5451</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="MD5Digest-5452"><a href="#MD5Digest-5452"><span class="linenos">5452</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="MD5Digest-5483"><a href="#MD5Digest-5483"><span class="linenos">5483</span></a><span class="k">class</span> <span class="nc">MD5Digest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="MD5Digest-5484"><a href="#MD5Digest-5484"><span class="linenos">5484</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5_DIGEST&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -84407,9 +85034,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Min"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Min-5455"><a href="#Min-5455"><span class="linenos">5455</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-5456"><a href="#Min-5456"><span class="linenos">5456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5457"><a href="#Min-5457"><span class="linenos">5457</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-5487"><a href="#Min-5487"><span class="linenos">5487</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-5488"><a href="#Min-5488"><span class="linenos">5488</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5489"><a href="#Min-5489"><span class="linenos">5489</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -84547,8 +85174,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Month"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Month-5460"><a href="#Month-5460"><span class="linenos">5460</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-5461"><a href="#Month-5461"><span class="linenos">5461</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Month-5492"><a href="#Month-5492"><span class="linenos">5492</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-5493"><a href="#Month-5493"><span class="linenos">5493</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -84664,8 +85291,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#AddMonths"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="AddMonths-5464"><a href="#AddMonths-5464"><span class="linenos">5464</span></a><span class="k">class</span> <span class="nc">AddMonths</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="AddMonths-5465"><a href="#AddMonths-5465"><span class="linenos">5465</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="AddMonths-5496"><a href="#AddMonths-5496"><span class="linenos">5496</span></a><span class="k">class</span> <span class="nc">AddMonths</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="AddMonths-5497"><a href="#AddMonths-5497"><span class="linenos">5497</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -84792,8 +85419,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Nvl2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-5468"><a href="#Nvl2-5468"><span class="linenos">5468</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-5469"><a href="#Nvl2-5469"><span class="linenos">5469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5500"><a href="#Nvl2-5500"><span class="linenos">5500</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-5501"><a href="#Nvl2-5501"><span class="linenos">5501</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -84920,8 +85547,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Predict"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Predict-5473"><a href="#Predict-5473"><span class="linenos">5473</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Predict-5474"><a href="#Predict-5474"><span class="linenos">5474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Predict-5505"><a href="#Predict-5505"><span class="linenos">5505</span></a><span class="k">class</span> <span class="nc">Predict</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Predict-5506"><a href="#Predict-5506"><span class="linenos">5506</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params_struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -85048,8 +85675,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Pow"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-5477"><a href="#Pow-5477"><span class="linenos">5477</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-5478"><a href="#Pow-5478"><span class="linenos">5478</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-5509"><a href="#Pow-5509"><span class="linenos">5509</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-5510"><a href="#Pow-5510"><span class="linenos">5510</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>
@@ -85170,8 +85797,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PercentileCont"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-5481"><a href="#PercentileCont-5481"><span class="linenos">5481</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-5482"><a href="#PercentileCont-5482"><span class="linenos">5482</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-5513"><a href="#PercentileCont-5513"><span class="linenos">5513</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-5514"><a href="#PercentileCont-5514"><span class="linenos">5514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -85298,8 +85925,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-5485"><a href="#PercentileDisc-5485"><span class="linenos">5485</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-5486"><a href="#PercentileDisc-5486"><span class="linenos">5486</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-5517"><a href="#PercentileDisc-5517"><span class="linenos">5517</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-5518"><a href="#PercentileDisc-5518"><span class="linenos">5518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -85426,8 +86053,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Quantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-5489"><a href="#Quantile-5489"><span class="linenos">5489</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-5490"><a href="#Quantile-5490"><span class="linenos">5490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5521"><a href="#Quantile-5521"><span class="linenos">5521</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-5522"><a href="#Quantile-5522"><span class="linenos">5522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -85554,8 +86181,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-5493"><a href="#ApproxQuantile-5493"><span class="linenos">5493</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-5494"><a href="#ApproxQuantile-5494"><span class="linenos">5494</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5525"><a href="#ApproxQuantile-5525"><span class="linenos">5525</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-5526"><a href="#ApproxQuantile-5526"><span class="linenos">5526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -85682,8 +86309,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Quarter"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Quarter-5497"><a href="#Quarter-5497"><span class="linenos">5497</span></a><span class="k">class</span> <span class="nc">Quarter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Quarter-5498"><a href="#Quarter-5498"><span class="linenos">5498</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Quarter-5529"><a href="#Quarter-5529"><span class="linenos">5529</span></a><span class="k">class</span> <span class="nc">Quarter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Quarter-5530"><a href="#Quarter-5530"><span class="linenos">5530</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -85799,9 +86426,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Rand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Rand-5501"><a href="#Rand-5501"><span class="linenos">5501</span></a><span class="k">class</span> <span class="nc">Rand</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Rand-5502"><a href="#Rand-5502"><span class="linenos">5502</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RAND&quot;</span><span class="p">,</span> <span class="s2">&quot;RANDOM&quot;</span><span class="p">]</span>
-</span><span id="Rand-5503"><a href="#Rand-5503"><span class="linenos">5503</span></a> <span class="n">arg_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="Rand-5533"><a href="#Rand-5533"><span class="linenos">5533</span></a><span class="k">class</span> <span class="nc">Rand</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Rand-5534"><a href="#Rand-5534"><span class="linenos">5534</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RAND&quot;</span><span class="p">,</span> <span class="s2">&quot;RANDOM&quot;</span><span class="p">]</span>
+</span><span id="Rand-5535"><a href="#Rand-5535"><span class="linenos">5535</span></a> <span class="n">arg_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>
@@ -85928,8 +86555,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Randn"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Randn-5506"><a href="#Randn-5506"><span class="linenos">5506</span></a><span class="k">class</span> <span class="nc">Randn</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Randn-5507"><a href="#Randn-5507"><span class="linenos">5507</span></a> <span class="n">arg_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="Randn-5538"><a href="#Randn-5538"><span class="linenos">5538</span></a><span class="k">class</span> <span class="nc">Randn</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Randn-5539"><a href="#Randn-5539"><span class="linenos">5539</span></a> <span class="n">arg_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>
@@ -86056,8 +86683,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RangeN"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-5510"><a href="#RangeN-5510"><span class="linenos">5510</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-5511"><a href="#RangeN-5511"><span class="linenos">5511</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5542"><a href="#RangeN-5542"><span class="linenos">5542</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-5543"><a href="#RangeN-5543"><span class="linenos">5543</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -86184,10 +86811,10 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#ReadCSV"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-5514"><a href="#ReadCSV-5514"><span class="linenos">5514</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-5515"><a href="#ReadCSV-5515"><span class="linenos">5515</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-5516"><a href="#ReadCSV-5516"><span class="linenos">5516</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="ReadCSV-5517"><a href="#ReadCSV-5517"><span class="linenos">5517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5546"><a href="#ReadCSV-5546"><span class="linenos">5546</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-5547"><a href="#ReadCSV-5547"><span class="linenos">5547</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-5548"><a href="#ReadCSV-5548"><span class="linenos">5548</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="ReadCSV-5549"><a href="#ReadCSV-5549"><span class="linenos">5549</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -86325,8 +86952,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Reduce"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-5520"><a href="#Reduce-5520"><span class="linenos">5520</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-5521"><a href="#Reduce-5521"><span class="linenos">5521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5552"><a href="#Reduce-5552"><span class="linenos">5552</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-5553"><a href="#Reduce-5553"><span class="linenos">5553</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -86453,15 +87080,15 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-5524"><a href="#RegexpExtract-5524"><span class="linenos">5524</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-5525"><a href="#RegexpExtract-5525"><span class="linenos">5525</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpExtract-5526"><a href="#RegexpExtract-5526"><span class="linenos">5526</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-5527"><a href="#RegexpExtract-5527"><span class="linenos">5527</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-5528"><a href="#RegexpExtract-5528"><span class="linenos">5528</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-5529"><a href="#RegexpExtract-5529"><span class="linenos">5529</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-5530"><a href="#RegexpExtract-5530"><span class="linenos">5530</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpExtract-5531"><a href="#RegexpExtract-5531"><span class="linenos">5531</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-5532"><a href="#RegexpExtract-5532"><span class="linenos">5532</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-5556"><a href="#RegexpExtract-5556"><span class="linenos">5556</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-5557"><a href="#RegexpExtract-5557"><span class="linenos">5557</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpExtract-5558"><a href="#RegexpExtract-5558"><span class="linenos">5558</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-5559"><a href="#RegexpExtract-5559"><span class="linenos">5559</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-5560"><a href="#RegexpExtract-5560"><span class="linenos">5560</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-5561"><a href="#RegexpExtract-5561"><span class="linenos">5561</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-5562"><a href="#RegexpExtract-5562"><span class="linenos">5562</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpExtract-5563"><a href="#RegexpExtract-5563"><span class="linenos">5563</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-5564"><a href="#RegexpExtract-5564"><span class="linenos">5564</span></a> <span class="p">}</span>
</span></pre></div>
@@ -86589,16 +87216,15 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpReplace"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpReplace-5535"><a href="#RegexpReplace-5535"><span class="linenos">5535</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpReplace-5536"><a href="#RegexpReplace-5536"><span class="linenos">5536</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="RegexpReplace-5537"><a href="#RegexpReplace-5537"><span class="linenos">5537</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-5538"><a href="#RegexpReplace-5538"><span class="linenos">5538</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="RegexpReplace-5539"><a href="#RegexpReplace-5539"><span class="linenos">5539</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5540"><a href="#RegexpReplace-5540"><span class="linenos">5540</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5541"><a href="#RegexpReplace-5541"><span class="linenos">5541</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5542"><a href="#RegexpReplace-5542"><span class="linenos">5542</span></a> <span class="s2">&quot;parameters&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5543"><a href="#RegexpReplace-5543"><span class="linenos">5543</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="RegexpReplace-5544"><a href="#RegexpReplace-5544"><span class="linenos">5544</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpReplace-5567"><a href="#RegexpReplace-5567"><span class="linenos">5567</span></a><span class="k">class</span> <span class="nc">RegexpReplace</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpReplace-5568"><a href="#RegexpReplace-5568"><span class="linenos">5568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="RegexpReplace-5569"><a href="#RegexpReplace-5569"><span class="linenos">5569</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-5570"><a href="#RegexpReplace-5570"><span class="linenos">5570</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="RegexpReplace-5571"><a href="#RegexpReplace-5571"><span class="linenos">5571</span></a> <span class="s2">&quot;replacement&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5572"><a href="#RegexpReplace-5572"><span class="linenos">5572</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5573"><a href="#RegexpReplace-5573"><span class="linenos">5573</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5574"><a href="#RegexpReplace-5574"><span class="linenos">5574</span></a> <span class="s2">&quot;modifiers&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="RegexpReplace-5575"><a href="#RegexpReplace-5575"><span class="linenos">5575</span></a> <span class="p">}</span>
</span></pre></div>
@@ -86608,7 +87234,7 @@ array<int> != array<float>.</p>
<div class="attr variable">
<span class="name">arg_types</span> =
<input id="RegexpReplace.arg_types-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="RegexpReplace.arg_types-view-value"></label><span class="default_value">{&#39;this&#39;: True, &#39;expression&#39;: True, &#39;replacement&#39;: False, &#39;position&#39;: False, &#39;occurrence&#39;: False, &#39;parameters&#39;: False, &#39;modifiers&#39;: False}</span>
+ <label class="view-value-button pdoc-button" for="RegexpReplace.arg_types-view-value"></label><span class="default_value">{&#39;this&#39;: True, &#39;expression&#39;: True, &#39;replacement&#39;: False, &#39;position&#39;: False, &#39;occurrence&#39;: False, &#39;modifiers&#39;: False}</span>
</div>
@@ -86726,8 +87352,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpLike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-5547"><a href="#RegexpLike-5547"><span class="linenos">5547</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
-</span><span id="RegexpLike-5548"><a href="#RegexpLike-5548"><span class="linenos">5548</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5578"><a href="#RegexpLike-5578"><span class="linenos">5578</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
+</span><span id="RegexpLike-5579"><a href="#RegexpLike-5579"><span class="linenos">5579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -86859,8 +87485,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpILike"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-5551"><a href="#RegexpILike-5551"><span class="linenos">5551</span></a><span class="k">class</span> <span class="nc">RegexpILike</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="RegexpILike-5552"><a href="#RegexpILike-5552"><span class="linenos">5552</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5582"><a href="#RegexpILike-5582"><span class="linenos">5582</span></a><span class="k">class</span> <span class="nc">RegexpILike</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="RegexpILike-5583"><a href="#RegexpILike-5583"><span class="linenos">5583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -86992,8 +87618,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-5557"><a href="#RegexpSplit-5557"><span class="linenos">5557</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-5558"><a href="#RegexpSplit-5558"><span class="linenos">5558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-5588"><a href="#RegexpSplit-5588"><span class="linenos">5588</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-5589"><a href="#RegexpSplit-5589"><span class="linenos">5589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -87120,8 +87746,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Repeat"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-5561"><a href="#Repeat-5561"><span class="linenos">5561</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-5562"><a href="#Repeat-5562"><span class="linenos">5562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5592"><a href="#Repeat-5592"><span class="linenos">5592</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-5593"><a href="#Repeat-5593"><span class="linenos">5593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -87248,8 +87874,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Round"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Round-5567"><a href="#Round-5567"><span class="linenos">5567</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-5568"><a href="#Round-5568"><span class="linenos">5568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;truncate&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-5598"><a href="#Round-5598"><span class="linenos">5598</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-5599"><a href="#Round-5599"><span class="linenos">5599</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;truncate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -87376,8 +88002,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#RowNumber"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-5571"><a href="#RowNumber-5571"><span class="linenos">5571</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-5572"><a href="#RowNumber-5572"><span class="linenos">5572</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-5602"><a href="#RowNumber-5602"><span class="linenos">5602</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-5603"><a href="#RowNumber-5603"><span class="linenos">5603</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>
@@ -87504,8 +88130,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SafeDivide"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-5575"><a href="#SafeDivide-5575"><span class="linenos">5575</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-5576"><a href="#SafeDivide-5576"><span class="linenos">5576</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5606"><a href="#SafeDivide-5606"><span class="linenos">5606</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-5607"><a href="#SafeDivide-5607"><span class="linenos">5607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -87632,8 +88258,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SHA"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-5579"><a href="#SHA-5579"><span class="linenos">5579</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="SHA-5580"><a href="#SHA-5580"><span class="linenos">5580</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA-5610"><a href="#SHA-5610"><span class="linenos">5610</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="SHA-5611"><a href="#SHA-5611"><span class="linenos">5611</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -87749,9 +88375,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SHA2"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-5583"><a href="#SHA2-5583"><span class="linenos">5583</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="SHA2-5584"><a href="#SHA2-5584"><span class="linenos">5584</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
-</span><span id="SHA2-5585"><a href="#SHA2-5585"><span class="linenos">5585</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-5614"><a href="#SHA2-5614"><span class="linenos">5614</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="SHA2-5615"><a href="#SHA2-5615"><span class="linenos">5615</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
+</span><span id="SHA2-5616"><a href="#SHA2-5616"><span class="linenos">5616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -87878,8 +88504,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sign"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sign-5588"><a href="#Sign-5588"><span class="linenos">5588</span></a><span class="k">class</span> <span class="nc">Sign</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Sign-5589"><a href="#Sign-5589"><span class="linenos">5589</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SIGN&quot;</span><span class="p">,</span> <span class="s2">&quot;SIGNUM&quot;</span><span class="p">]</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sign-5619"><a href="#Sign-5619"><span class="linenos">5619</span></a><span class="k">class</span> <span class="nc">Sign</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Sign-5620"><a href="#Sign-5620"><span class="linenos">5620</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SIGN&quot;</span><span class="p">,</span> <span class="s2">&quot;SIGNUM&quot;</span><span class="p">]</span>
</span></pre></div>
@@ -87995,8 +88621,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#SortArray"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-5592"><a href="#SortArray-5592"><span class="linenos">5592</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-5593"><a href="#SortArray-5593"><span class="linenos">5593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5623"><a href="#SortArray-5623"><span class="linenos">5623</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-5624"><a href="#SortArray-5624"><span class="linenos">5624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -88123,8 +88749,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Split"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Split-5596"><a href="#Split-5596"><span class="linenos">5596</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-5597"><a href="#Split-5597"><span class="linenos">5597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5627"><a href="#Split-5627"><span class="linenos">5627</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-5628"><a href="#Split-5628"><span class="linenos">5628</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -88251,8 +88877,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Substring"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-5602"><a href="#Substring-5602"><span class="linenos">5602</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-5603"><a href="#Substring-5603"><span class="linenos">5603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5633"><a href="#Substring-5633"><span class="linenos">5633</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-5634"><a href="#Substring-5634"><span class="linenos">5634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -88379,8 +89005,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StandardHash"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-5606"><a href="#StandardHash-5606"><span class="linenos">5606</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StandardHash-5607"><a href="#StandardHash-5607"><span class="linenos">5607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-5637"><a href="#StandardHash-5637"><span class="linenos">5637</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StandardHash-5638"><a href="#StandardHash-5638"><span class="linenos">5638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -88507,9 +89133,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StartsWith"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StartsWith-5610"><a href="#StartsWith-5610"><span class="linenos">5610</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StartsWith-5611"><a href="#StartsWith-5611"><span class="linenos">5611</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
-</span><span id="StartsWith-5612"><a href="#StartsWith-5612"><span class="linenos">5612</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StartsWith-5641"><a href="#StartsWith-5641"><span class="linenos">5641</span></a><span class="k">class</span> <span class="nc">StartsWith</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StartsWith-5642"><a href="#StartsWith-5642"><span class="linenos">5642</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STARTS_WITH&quot;</span><span class="p">,</span> <span class="s2">&quot;STARTSWITH&quot;</span><span class="p">]</span>
+</span><span id="StartsWith-5643"><a href="#StartsWith-5643"><span class="linenos">5643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -88636,13 +89262,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrPosition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-5615"><a href="#StrPosition-5615"><span class="linenos">5615</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-5616"><a href="#StrPosition-5616"><span class="linenos">5616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrPosition-5617"><a href="#StrPosition-5617"><span class="linenos">5617</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-5618"><a href="#StrPosition-5618"><span class="linenos">5618</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-5619"><a href="#StrPosition-5619"><span class="linenos">5619</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-5620"><a href="#StrPosition-5620"><span class="linenos">5620</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-5621"><a href="#StrPosition-5621"><span class="linenos">5621</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-5646"><a href="#StrPosition-5646"><span class="linenos">5646</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-5647"><a href="#StrPosition-5647"><span class="linenos">5647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrPosition-5648"><a href="#StrPosition-5648"><span class="linenos">5648</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-5649"><a href="#StrPosition-5649"><span class="linenos">5649</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-5650"><a href="#StrPosition-5650"><span class="linenos">5650</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-5651"><a href="#StrPosition-5651"><span class="linenos">5651</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-5652"><a href="#StrPosition-5652"><span class="linenos">5652</span></a> <span class="p">}</span>
</span></pre></div>
@@ -88769,8 +89395,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-5624"><a href="#StrToDate-5624"><span class="linenos">5624</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-5625"><a href="#StrToDate-5625"><span class="linenos">5625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5655"><a href="#StrToDate-5655"><span class="linenos">5655</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-5656"><a href="#StrToDate-5656"><span class="linenos">5656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -88897,8 +89523,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-5628"><a href="#StrToTime-5628"><span class="linenos">5628</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-5629"><a href="#StrToTime-5629"><span class="linenos">5629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-5659"><a href="#StrToTime-5659"><span class="linenos">5659</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-5660"><a href="#StrToTime-5660"><span class="linenos">5660</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -89025,8 +89651,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-5634"><a href="#StrToUnix-5634"><span class="linenos">5634</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-5635"><a href="#StrToUnix-5635"><span class="linenos">5635</span></a> <span class="n">arg_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-5665"><a href="#StrToUnix-5665"><span class="linenos">5665</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-5666"><a href="#StrToUnix-5666"><span class="linenos">5666</span></a> <span class="n">arg_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>
@@ -89153,13 +89779,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StrToMap"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StrToMap-5640"><a href="#StrToMap-5640"><span class="linenos">5640</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="StrToMap-5641"><a href="#StrToMap-5641"><span class="linenos">5641</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="StrToMap-5642"><a href="#StrToMap-5642"><span class="linenos">5642</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="StrToMap-5643"><a href="#StrToMap-5643"><span class="linenos">5643</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-5644"><a href="#StrToMap-5644"><span class="linenos">5644</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-5645"><a href="#StrToMap-5645"><span class="linenos">5645</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="StrToMap-5646"><a href="#StrToMap-5646"><span class="linenos">5646</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StrToMap-5671"><a href="#StrToMap-5671"><span class="linenos">5671</span></a><span class="k">class</span> <span class="nc">StrToMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="StrToMap-5672"><a href="#StrToMap-5672"><span class="linenos">5672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="StrToMap-5673"><a href="#StrToMap-5673"><span class="linenos">5673</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="StrToMap-5674"><a href="#StrToMap-5674"><span class="linenos">5674</span></a> <span class="s2">&quot;pair_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-5675"><a href="#StrToMap-5675"><span class="linenos">5675</span></a> <span class="s2">&quot;key_value_delim&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-5676"><a href="#StrToMap-5676"><span class="linenos">5676</span></a> <span class="s2">&quot;duplicate_resolution_callback&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="StrToMap-5677"><a href="#StrToMap-5677"><span class="linenos">5677</span></a> <span class="p">}</span>
</span></pre></div>
@@ -89287,8 +89913,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#NumberToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-5649"><a href="#NumberToStr-5649"><span class="linenos">5649</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-5650"><a href="#NumberToStr-5650"><span class="linenos">5650</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-5680"><a href="#NumberToStr-5680"><span class="linenos">5680</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-5681"><a href="#NumberToStr-5681"><span class="linenos">5681</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -89415,8 +90041,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#FromBase"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase-5653"><a href="#FromBase-5653"><span class="linenos">5653</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="FromBase-5654"><a href="#FromBase-5654"><span class="linenos">5654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="FromBase-5684"><a href="#FromBase-5684"><span class="linenos">5684</span></a><span class="k">class</span> <span class="nc">FromBase</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="FromBase-5685"><a href="#FromBase-5685"><span class="linenos">5685</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -89543,9 +90169,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Struct"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-5657"><a href="#Struct-5657"><span class="linenos">5657</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-5658"><a href="#Struct-5658"><span class="linenos">5658</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="Struct-5659"><a href="#Struct-5659"><span class="linenos">5659</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-5688"><a href="#Struct-5688"><span class="linenos">5688</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-5689"><a href="#Struct-5689"><span class="linenos">5689</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="Struct-5690"><a href="#Struct-5690"><span class="linenos">5690</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
@@ -89683,8 +90309,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StructExtract"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-5662"><a href="#StructExtract-5662"><span class="linenos">5662</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-5663"><a href="#StructExtract-5663"><span class="linenos">5663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5693"><a href="#StructExtract-5693"><span class="linenos">5693</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-5694"><a href="#StructExtract-5694"><span class="linenos">5694</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -89811,9 +90437,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Stuff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stuff-5668"><a href="#Stuff-5668"><span class="linenos">5668</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="Stuff-5669"><a href="#Stuff-5669"><span class="linenos">5669</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
-</span><span id="Stuff-5670"><a href="#Stuff-5670"><span class="linenos">5670</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stuff-5699"><a href="#Stuff-5699"><span class="linenos">5699</span></a><span class="k">class</span> <span class="nc">Stuff</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="Stuff-5700"><a href="#Stuff-5700"><span class="linenos">5700</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;STUFF&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT&quot;</span><span class="p">]</span>
+</span><span id="Stuff-5701"><a href="#Stuff-5701"><span class="linenos">5701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
@@ -89940,8 +90566,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sum"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-5673"><a href="#Sum-5673"><span class="linenos">5673</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-5674"><a href="#Sum-5674"><span class="linenos">5674</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-5704"><a href="#Sum-5704"><span class="linenos">5704</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-5705"><a href="#Sum-5705"><span class="linenos">5705</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90057,8 +90683,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Sqrt"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-5677"><a href="#Sqrt-5677"><span class="linenos">5677</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-5678"><a href="#Sqrt-5678"><span class="linenos">5678</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-5708"><a href="#Sqrt-5708"><span class="linenos">5708</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-5709"><a href="#Sqrt-5709"><span class="linenos">5709</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90174,8 +90800,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Stddev"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-5681"><a href="#Stddev-5681"><span class="linenos">5681</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-5682"><a href="#Stddev-5682"><span class="linenos">5682</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-5712"><a href="#Stddev-5712"><span class="linenos">5712</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-5713"><a href="#Stddev-5713"><span class="linenos">5713</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90291,8 +90917,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StddevPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-5685"><a href="#StddevPop-5685"><span class="linenos">5685</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-5686"><a href="#StddevPop-5686"><span class="linenos">5686</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-5716"><a href="#StddevPop-5716"><span class="linenos">5716</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-5717"><a href="#StddevPop-5717"><span class="linenos">5717</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90408,8 +91034,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#StddevSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-5689"><a href="#StddevSamp-5689"><span class="linenos">5689</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-5690"><a href="#StddevSamp-5690"><span class="linenos">5690</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-5720"><a href="#StddevSamp-5720"><span class="linenos">5720</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-5721"><a href="#StddevSamp-5721"><span class="linenos">5721</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90525,8 +91151,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-5693"><a href="#TimeToStr-5693"><span class="linenos">5693</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-5694"><a href="#TimeToStr-5694"><span class="linenos">5694</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;timezone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-5724"><a href="#TimeToStr-5724"><span class="linenos">5724</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-5725"><a href="#TimeToStr-5725"><span class="linenos">5725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;culture&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;timezone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -90653,8 +91279,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-5697"><a href="#TimeToTimeStr-5697"><span class="linenos">5697</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-5698"><a href="#TimeToTimeStr-5698"><span class="linenos">5698</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-5728"><a href="#TimeToTimeStr-5728"><span class="linenos">5728</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-5729"><a href="#TimeToTimeStr-5729"><span class="linenos">5729</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90770,8 +91396,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-5701"><a href="#TimeToUnix-5701"><span class="linenos">5701</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-5702"><a href="#TimeToUnix-5702"><span class="linenos">5702</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-5732"><a href="#TimeToUnix-5732"><span class="linenos">5732</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-5733"><a href="#TimeToUnix-5733"><span class="linenos">5733</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -90887,8 +91513,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-5705"><a href="#TimeStrToDate-5705"><span class="linenos">5705</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-5706"><a href="#TimeStrToDate-5706"><span class="linenos">5706</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-5736"><a href="#TimeStrToDate-5736"><span class="linenos">5736</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-5737"><a href="#TimeStrToDate-5737"><span class="linenos">5737</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -91004,8 +91630,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-5709"><a href="#TimeStrToTime-5709"><span class="linenos">5709</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-5710"><a href="#TimeStrToTime-5710"><span class="linenos">5710</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-5740"><a href="#TimeStrToTime-5740"><span class="linenos">5740</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-5741"><a href="#TimeStrToTime-5741"><span class="linenos">5741</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -91121,8 +91747,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-5713"><a href="#TimeStrToUnix-5713"><span class="linenos">5713</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-5714"><a href="#TimeStrToUnix-5714"><span class="linenos">5714</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-5744"><a href="#TimeStrToUnix-5744"><span class="linenos">5744</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-5745"><a href="#TimeStrToUnix-5745"><span class="linenos">5745</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -91238,13 +91864,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Trim"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-5717"><a href="#Trim-5717"><span class="linenos">5717</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-5718"><a href="#Trim-5718"><span class="linenos">5718</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Trim-5719"><a href="#Trim-5719"><span class="linenos">5719</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-5720"><a href="#Trim-5720"><span class="linenos">5720</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-5721"><a href="#Trim-5721"><span class="linenos">5721</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-5722"><a href="#Trim-5722"><span class="linenos">5722</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-5723"><a href="#Trim-5723"><span class="linenos">5723</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-5748"><a href="#Trim-5748"><span class="linenos">5748</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-5749"><a href="#Trim-5749"><span class="linenos">5749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Trim-5750"><a href="#Trim-5750"><span class="linenos">5750</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-5751"><a href="#Trim-5751"><span class="linenos">5751</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-5752"><a href="#Trim-5752"><span class="linenos">5752</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-5753"><a href="#Trim-5753"><span class="linenos">5753</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-5754"><a href="#Trim-5754"><span class="linenos">5754</span></a> <span class="p">}</span>
</span></pre></div>
@@ -91371,13 +91997,13 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-5726"><a href="#TsOrDsAdd-5726"><span class="linenos">5726</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-5727"><a href="#TsOrDsAdd-5727"><span class="linenos">5727</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
-</span><span id="TsOrDsAdd-5728"><a href="#TsOrDsAdd-5728"><span class="linenos">5728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
-</span><span id="TsOrDsAdd-5729"><a href="#TsOrDsAdd-5729"><span class="linenos">5729</span></a>
-</span><span id="TsOrDsAdd-5730"><a href="#TsOrDsAdd-5730"><span class="linenos">5730</span></a> <span class="nd">@property</span>
-</span><span id="TsOrDsAdd-5731"><a href="#TsOrDsAdd-5731"><span class="linenos">5731</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="TsOrDsAdd-5732"><a href="#TsOrDsAdd-5732"><span class="linenos">5732</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-5757"><a href="#TsOrDsAdd-5757"><span class="linenos">5757</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-5758"><a href="#TsOrDsAdd-5758"><span class="linenos">5758</span></a> <span class="c1"># return_type is used to correctly cast the arguments of this expression when transpiling it</span>
+</span><span id="TsOrDsAdd-5759"><a href="#TsOrDsAdd-5759"><span class="linenos">5759</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+</span><span id="TsOrDsAdd-5760"><a href="#TsOrDsAdd-5760"><span class="linenos">5760</span></a>
+</span><span id="TsOrDsAdd-5761"><a href="#TsOrDsAdd-5761"><span class="linenos">5761</span></a> <span class="nd">@property</span>
+</span><span id="TsOrDsAdd-5762"><a href="#TsOrDsAdd-5762"><span class="linenos">5762</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="TsOrDsAdd-5763"><a href="#TsOrDsAdd-5763"><span class="linenos">5763</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
</span></pre></div>
@@ -91404,9 +92030,9 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsAdd.return_type"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd.return_type-5730"><a href="#TsOrDsAdd.return_type-5730"><span class="linenos">5730</span></a> <span class="nd">@property</span>
-</span><span id="TsOrDsAdd.return_type-5731"><a href="#TsOrDsAdd.return_type-5731"><span class="linenos">5731</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
-</span><span id="TsOrDsAdd.return_type-5732"><a href="#TsOrDsAdd.return_type-5732"><span class="linenos">5732</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd.return_type-5761"><a href="#TsOrDsAdd.return_type-5761"><span class="linenos">5761</span></a> <span class="nd">@property</span>
+</span><span id="TsOrDsAdd.return_type-5762"><a href="#TsOrDsAdd.return_type-5762"><span class="linenos">5762</span></a> <span class="k">def</span> <span class="nf">return_type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
+</span><span id="TsOrDsAdd.return_type-5763"><a href="#TsOrDsAdd.return_type-5763"><span class="linenos">5763</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;return_type&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">)</span>
</span></pre></div>
@@ -91528,8 +92154,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsDiff"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsDiff-5735"><a href="#TsOrDsDiff-5735"><span class="linenos">5735</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</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="TsOrDsDiff-5736"><a href="#TsOrDsDiff-5736"><span class="linenos">5736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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="TsOrDsDiff-5766"><a href="#TsOrDsDiff-5766"><span class="linenos">5766</span></a><span class="k">class</span> <span class="nc">TsOrDsDiff</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="TsOrDsDiff-5767"><a href="#TsOrDsDiff-5767"><span class="linenos">5767</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -91662,8 +92288,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-5739"><a href="#TsOrDsToDateStr-5739"><span class="linenos">5739</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-5740"><a href="#TsOrDsToDateStr-5740"><span class="linenos">5740</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-5770"><a href="#TsOrDsToDateStr-5770"><span class="linenos">5770</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-5771"><a href="#TsOrDsToDateStr-5771"><span class="linenos">5771</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -91779,8 +92405,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-5743"><a href="#TsOrDsToDate-5743"><span class="linenos">5743</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-5744"><a href="#TsOrDsToDate-5744"><span class="linenos">5744</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;safe&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-5774"><a href="#TsOrDsToDate-5774"><span class="linenos">5774</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-5775"><a href="#TsOrDsToDate-5775"><span class="linenos">5775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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 class="s2">&quot;safe&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -91907,8 +92533,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToTime-5747"><a href="#TsOrDsToTime-5747"><span class="linenos">5747</span></a><span class="k">class</span> <span class="nc">TsOrDsToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TsOrDsToTime-5748"><a href="#TsOrDsToTime-5748"><span class="linenos">5748</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToTime-5778"><a href="#TsOrDsToTime-5778"><span class="linenos">5778</span></a><span class="k">class</span> <span class="nc">TsOrDsToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TsOrDsToTime-5779"><a href="#TsOrDsToTime-5779"><span class="linenos">5779</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -92024,8 +92650,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDsToTimestamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToTimestamp-5751"><a href="#TsOrDsToTimestamp-5751"><span class="linenos">5751</span></a><span class="k">class</span> <span class="nc">TsOrDsToTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TsOrDsToTimestamp-5752"><a href="#TsOrDsToTimestamp-5752"><span class="linenos">5752</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToTimestamp-5782"><a href="#TsOrDsToTimestamp-5782"><span class="linenos">5782</span></a><span class="k">class</span> <span class="nc">TsOrDsToTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TsOrDsToTimestamp-5783"><a href="#TsOrDsToTimestamp-5783"><span class="linenos">5783</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -92141,8 +92767,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-5755"><a href="#TsOrDiToDi-5755"><span class="linenos">5755</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-5756"><a href="#TsOrDiToDi-5756"><span class="linenos">5756</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-5786"><a href="#TsOrDiToDi-5786"><span class="linenos">5786</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-5787"><a href="#TsOrDiToDi-5787"><span class="linenos">5787</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -92258,8 +92884,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Unhex"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-5759"><a href="#Unhex-5759"><span class="linenos">5759</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-5760"><a href="#Unhex-5760"><span class="linenos">5760</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-5790"><a href="#Unhex-5790"><span class="linenos">5790</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-5791"><a href="#Unhex-5791"><span class="linenos">5791</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -92375,8 +93001,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixDate"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixDate-5764"><a href="#UnixDate-5764"><span class="linenos">5764</span></a><span class="k">class</span> <span class="nc">UnixDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="UnixDate-5765"><a href="#UnixDate-5765"><span class="linenos">5765</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixDate-5795"><a href="#UnixDate-5795"><span class="linenos">5795</span></a><span class="k">class</span> <span class="nc">UnixDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="UnixDate-5796"><a href="#UnixDate-5796"><span class="linenos">5796</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -92492,8 +93118,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-5768"><a href="#UnixToStr-5768"><span class="linenos">5768</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-5769"><a href="#UnixToStr-5769"><span class="linenos">5769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5799"><a href="#UnixToStr-5799"><span class="linenos">5799</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-5800"><a href="#UnixToStr-5800"><span class="linenos">5800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -92620,26 +93246,26 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToTime"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-5774"><a href="#UnixToTime-5774"><span class="linenos">5774</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-5775"><a href="#UnixToTime-5775"><span class="linenos">5775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="UnixToTime-5776"><a href="#UnixToTime-5776"><span class="linenos">5776</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="UnixToTime-5777"><a href="#UnixToTime-5777"><span class="linenos">5777</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="UnixToTime-5778"><a href="#UnixToTime-5778"><span class="linenos">5778</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="UnixToTime-5779"><a href="#UnixToTime-5779"><span class="linenos">5779</span></a> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="UnixToTime-5780"><a href="#UnixToTime-5780"><span class="linenos">5780</span></a> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="UnixToTime-5781"><a href="#UnixToTime-5781"><span class="linenos">5781</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="UnixToTime-5782"><a href="#UnixToTime-5782"><span class="linenos">5782</span></a> <span class="p">}</span>
-</span><span id="UnixToTime-5783"><a href="#UnixToTime-5783"><span class="linenos">5783</span></a>
-</span><span id="UnixToTime-5784"><a href="#UnixToTime-5784"><span class="linenos">5784</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
-</span><span id="UnixToTime-5785"><a href="#UnixToTime-5785"><span class="linenos">5785</span></a> <span class="n">DECIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
-</span><span id="UnixToTime-5786"><a href="#UnixToTime-5786"><span class="linenos">5786</span></a> <span class="n">CENTIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
-</span><span id="UnixToTime-5787"><a href="#UnixToTime-5787"><span class="linenos">5787</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
-</span><span id="UnixToTime-5788"><a href="#UnixToTime-5788"><span class="linenos">5788</span></a> <span class="n">DECIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
-</span><span id="UnixToTime-5789"><a href="#UnixToTime-5789"><span class="linenos">5789</span></a> <span class="n">CENTIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
-</span><span id="UnixToTime-5790"><a href="#UnixToTime-5790"><span class="linenos">5790</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span>
-</span><span id="UnixToTime-5791"><a href="#UnixToTime-5791"><span class="linenos">5791</span></a> <span class="n">DECIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span>
-</span><span id="UnixToTime-5792"><a href="#UnixToTime-5792"><span class="linenos">5792</span></a> <span class="n">CENTIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
-</span><span id="UnixToTime-5793"><a href="#UnixToTime-5793"><span class="linenos">5793</span></a> <span class="n">NANOS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-5805"><a href="#UnixToTime-5805"><span class="linenos">5805</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-5806"><a href="#UnixToTime-5806"><span class="linenos">5806</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="UnixToTime-5807"><a href="#UnixToTime-5807"><span class="linenos">5807</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="UnixToTime-5808"><a href="#UnixToTime-5808"><span class="linenos">5808</span></a> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="UnixToTime-5809"><a href="#UnixToTime-5809"><span class="linenos">5809</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="UnixToTime-5810"><a href="#UnixToTime-5810"><span class="linenos">5810</span></a> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="UnixToTime-5811"><a href="#UnixToTime-5811"><span class="linenos">5811</span></a> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="UnixToTime-5812"><a href="#UnixToTime-5812"><span class="linenos">5812</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="UnixToTime-5813"><a href="#UnixToTime-5813"><span class="linenos">5813</span></a> <span class="p">}</span>
+</span><span id="UnixToTime-5814"><a href="#UnixToTime-5814"><span class="linenos">5814</span></a>
+</span><span id="UnixToTime-5815"><a href="#UnixToTime-5815"><span class="linenos">5815</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+</span><span id="UnixToTime-5816"><a href="#UnixToTime-5816"><span class="linenos">5816</span></a> <span class="n">DECIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+</span><span id="UnixToTime-5817"><a href="#UnixToTime-5817"><span class="linenos">5817</span></a> <span class="n">CENTIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+</span><span id="UnixToTime-5818"><a href="#UnixToTime-5818"><span class="linenos">5818</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
+</span><span id="UnixToTime-5819"><a href="#UnixToTime-5819"><span class="linenos">5819</span></a> <span class="n">DECIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
+</span><span id="UnixToTime-5820"><a href="#UnixToTime-5820"><span class="linenos">5820</span></a> <span class="n">CENTIMILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
+</span><span id="UnixToTime-5821"><a href="#UnixToTime-5821"><span class="linenos">5821</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span>
+</span><span id="UnixToTime-5822"><a href="#UnixToTime-5822"><span class="linenos">5822</span></a> <span class="n">DECIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">7</span><span class="p">)</span>
+</span><span id="UnixToTime-5823"><a href="#UnixToTime-5823"><span class="linenos">5823</span></a> <span class="n">CENTIMICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
+</span><span id="UnixToTime-5824"><a href="#UnixToTime-5824"><span class="linenos">5824</span></a> <span class="n">NANOS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">9</span><span class="p">)</span>
</span></pre></div>
@@ -92886,8 +93512,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-5796"><a href="#UnixToTimeStr-5796"><span class="linenos">5796</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-5797"><a href="#UnixToTimeStr-5797"><span class="linenos">5797</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-5827"><a href="#UnixToTimeStr-5827"><span class="linenos">5827</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-5828"><a href="#UnixToTimeStr-5828"><span class="linenos">5828</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -93003,19 +93629,19 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#TimestampFromParts"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampFromParts-5800"><a href="#TimestampFromParts-5800"><span class="linenos">5800</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="TimestampFromParts-5801"><a href="#TimestampFromParts-5801"><span class="linenos">5801</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMP_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMPFROMPARTS&quot;</span><span class="p">]</span>
-</span><span id="TimestampFromParts-5802"><a href="#TimestampFromParts-5802"><span class="linenos">5802</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="TimestampFromParts-5803"><a href="#TimestampFromParts-5803"><span class="linenos">5803</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5804"><a href="#TimestampFromParts-5804"><span class="linenos">5804</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5805"><a href="#TimestampFromParts-5805"><span class="linenos">5805</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5806"><a href="#TimestampFromParts-5806"><span class="linenos">5806</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5807"><a href="#TimestampFromParts-5807"><span class="linenos">5807</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5808"><a href="#TimestampFromParts-5808"><span class="linenos">5808</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5809"><a href="#TimestampFromParts-5809"><span class="linenos">5809</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5810"><a href="#TimestampFromParts-5810"><span class="linenos">5810</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5811"><a href="#TimestampFromParts-5811"><span class="linenos">5811</span></a> <span class="s2">&quot;milli&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="TimestampFromParts-5812"><a href="#TimestampFromParts-5812"><span class="linenos">5812</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampFromParts-5831"><a href="#TimestampFromParts-5831"><span class="linenos">5831</span></a><span class="k">class</span> <span class="nc">TimestampFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="TimestampFromParts-5832"><a href="#TimestampFromParts-5832"><span class="linenos">5832</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;TIMESTAMP_FROM_PARTS&quot;</span><span class="p">,</span> <span class="s2">&quot;TIMESTAMPFROMPARTS&quot;</span><span class="p">]</span>
+</span><span id="TimestampFromParts-5833"><a href="#TimestampFromParts-5833"><span class="linenos">5833</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="TimestampFromParts-5834"><a href="#TimestampFromParts-5834"><span class="linenos">5834</span></a> <span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5835"><a href="#TimestampFromParts-5835"><span class="linenos">5835</span></a> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5836"><a href="#TimestampFromParts-5836"><span class="linenos">5836</span></a> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5837"><a href="#TimestampFromParts-5837"><span class="linenos">5837</span></a> <span class="s2">&quot;hour&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5838"><a href="#TimestampFromParts-5838"><span class="linenos">5838</span></a> <span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5839"><a href="#TimestampFromParts-5839"><span class="linenos">5839</span></a> <span class="s2">&quot;sec&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5840"><a href="#TimestampFromParts-5840"><span class="linenos">5840</span></a> <span class="s2">&quot;nano&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5841"><a href="#TimestampFromParts-5841"><span class="linenos">5841</span></a> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5842"><a href="#TimestampFromParts-5842"><span class="linenos">5842</span></a> <span class="s2">&quot;milli&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="TimestampFromParts-5843"><a href="#TimestampFromParts-5843"><span class="linenos">5843</span></a> <span class="p">}</span>
</span></pre></div>
@@ -93143,8 +93769,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Upper"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-5815"><a href="#Upper-5815"><span class="linenos">5815</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-5816"><a href="#Upper-5816"><span class="linenos">5816</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-5846"><a href="#Upper-5846"><span class="linenos">5846</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-5847"><a href="#Upper-5847"><span class="linenos">5847</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>
@@ -93260,8 +93886,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Corr"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Corr-5819"><a href="#Corr-5819"><span class="linenos">5819</span></a><span class="k">class</span> <span class="nc">Corr</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="Corr-5820"><a href="#Corr-5820"><span class="linenos">5820</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Corr-5850"><a href="#Corr-5850"><span class="linenos">5850</span></a><span class="k">class</span> <span class="nc">Corr</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="Corr-5851"><a href="#Corr-5851"><span class="linenos">5851</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -93382,8 +94008,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Variance"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-5823"><a href="#Variance-5823"><span class="linenos">5823</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-5824"><a href="#Variance-5824"><span class="linenos">5824</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-5854"><a href="#Variance-5854"><span class="linenos">5854</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-5855"><a href="#Variance-5855"><span class="linenos">5855</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>
@@ -93499,8 +94125,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#VariancePop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-5827"><a href="#VariancePop-5827"><span class="linenos">5827</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-5828"><a href="#VariancePop-5828"><span class="linenos">5828</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-5858"><a href="#VariancePop-5858"><span class="linenos">5858</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-5859"><a href="#VariancePop-5859"><span class="linenos">5859</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>
@@ -93616,8 +94242,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CovarSamp"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CovarSamp-5831"><a href="#CovarSamp-5831"><span class="linenos">5831</span></a><span class="k">class</span> <span class="nc">CovarSamp</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="CovarSamp-5832"><a href="#CovarSamp-5832"><span class="linenos">5832</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CovarSamp-5862"><a href="#CovarSamp-5862"><span class="linenos">5862</span></a><span class="k">class</span> <span class="nc">CovarSamp</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="CovarSamp-5863"><a href="#CovarSamp-5863"><span class="linenos">5863</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -93738,8 +94364,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#CovarPop"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="CovarPop-5835"><a href="#CovarPop-5835"><span class="linenos">5835</span></a><span class="k">class</span> <span class="nc">CovarPop</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
-</span><span id="CovarPop-5836"><a href="#CovarPop-5836"><span class="linenos">5836</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="CovarPop-5866"><a href="#CovarPop-5866"><span class="linenos">5866</span></a><span class="k">class</span> <span class="nc">CovarPop</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">AggFunc</span><span class="p">):</span>
+</span><span id="CovarPop-5867"><a href="#CovarPop-5867"><span class="linenos">5867</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -93860,8 +94486,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Week"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Week-5839"><a href="#Week-5839"><span class="linenos">5839</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-5840"><a href="#Week-5840"><span class="linenos">5840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5870"><a href="#Week-5870"><span class="linenos">5870</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-5871"><a href="#Week-5871"><span class="linenos">5871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -93988,8 +94614,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#XMLTable"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-5843"><a href="#XMLTable-5843"><span class="linenos">5843</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-5844"><a href="#XMLTable-5844"><span class="linenos">5844</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5874"><a href="#XMLTable-5874"><span class="linenos">5874</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-5875"><a href="#XMLTable-5875"><span class="linenos">5875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -94116,8 +94742,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Year"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Year-5847"><a href="#Year-5847"><span class="linenos">5847</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-5848"><a href="#Year-5848"><span class="linenos">5848</span></a> <span class="k">pass</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Year-5878"><a href="#Year-5878"><span class="linenos">5878</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-5879"><a href="#Year-5879"><span class="linenos">5879</span></a> <span class="k">pass</span>
</span></pre></div>
@@ -94233,8 +94859,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Use"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Use-5851"><a href="#Use-5851"><span class="linenos">5851</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-5852"><a href="#Use-5852"><span class="linenos">5852</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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-5882"><a href="#Use-5882"><span class="linenos">5882</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-5883"><a href="#Use-5883"><span class="linenos">5883</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><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>
@@ -94353,14 +94979,14 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#Merge"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-5855"><a href="#Merge-5855"><span class="linenos">5855</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-5856"><a href="#Merge-5856"><span class="linenos">5856</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
-</span><span id="Merge-5857"><a href="#Merge-5857"><span class="linenos">5857</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="Merge-5858"><a href="#Merge-5858"><span class="linenos">5858</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Merge-5859"><a href="#Merge-5859"><span class="linenos">5859</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Merge-5860"><a href="#Merge-5860"><span class="linenos">5860</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="Merge-5861"><a href="#Merge-5861"><span class="linenos">5861</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
-</span><span id="Merge-5862"><a href="#Merge-5862"><span class="linenos">5862</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-5886"><a href="#Merge-5886"><span class="linenos">5886</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-5887"><a href="#Merge-5887"><span class="linenos">5887</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
+</span><span id="Merge-5888"><a href="#Merge-5888"><span class="linenos">5888</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="Merge-5889"><a href="#Merge-5889"><span class="linenos">5889</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Merge-5890"><a href="#Merge-5890"><span class="linenos">5890</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Merge-5891"><a href="#Merge-5891"><span class="linenos">5891</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="Merge-5892"><a href="#Merge-5892"><span class="linenos">5892</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
+</span><span id="Merge-5893"><a href="#Merge-5893"><span class="linenos">5893</span></a> <span class="p">}</span>
</span></pre></div>
@@ -94479,8 +95105,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#When"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="When-5865"><a href="#When-5865"><span class="linenos">5865</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-5866"><a href="#When-5866"><span class="linenos">5866</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-5896"><a href="#When-5896"><span class="linenos">5896</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-5897"><a href="#When-5897"><span class="linenos">5897</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>
@@ -94607,8 +95233,8 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#NextValueFor"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-5871"><a href="#NextValueFor-5871"><span class="linenos">5871</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
-</span><span id="NextValueFor-5872"><a href="#NextValueFor-5872"><span class="linenos">5872</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-5902"><a href="#NextValueFor-5902"><span class="linenos">5902</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
+</span><span id="NextValueFor-5903"><a href="#NextValueFor-5903"><span class="linenos">5903</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
@@ -94728,7 +95354,7 @@ array<int> != array<float>.</p>
<div class="attr variable">
<span class="name">ALL_FUNCTIONS</span> =
<input id="ALL_FUNCTIONS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="ALL_FUNCTIONS-view-value"></label><span class="default_value">[&lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &lt;class &#39;<a href="#AddMonths">AddMonths</a>&#39;&gt;, &lt;class &#39;<a href="#AnonymousAggFunc">AnonymousAggFunc</a>&#39;&gt;, &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayOverlaps">ArrayOverlaps</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayToString">ArrayToString</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &lt;class &#39;<a href="#Cbrt">Cbrt</a>&#39;&gt;, &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &lt;class &#39;<a href="#CombinedAggFunc">CombinedAggFunc</a>&#39;&gt;, &lt;class &#39;<a href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &lt;class &#39;<a href="#ConnectByRoot">ConnectByRoot</a>&#39;&gt;, &lt;class &#39;<a href="#Convert">Convert</a>&#39;&gt;, &lt;class &#39;<a href="#Corr">Corr</a>&#39;&gt;, &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &lt;class &#39;<a href="#CovarPop">CovarPop</a>&#39;&gt;, &lt;class &#39;<a href="#CovarSamp">CovarSamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &lt;class &#39;<a href="#FirstValue">FirstValue</a>&#39;&gt;, &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateDateArray">GenerateDateArray</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObjectAgg">JSONObjectAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &lt;class &#39;<a href="#Lag">Lag</a>&#39;&gt;, &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &lt;class &#39;<a href="#LastValue">LastValue</a>&#39;&gt;, &lt;class &#39;<a href="#Lead">Lead</a>&#39;&gt;, &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &lt;class &#39;<a href="#NthValue">NthValue</a>&#39;&gt;, &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &lt;class &#39;<a href="#Quarter">Quarter</a>&#39;&gt;, &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &lt;class &#39;<a href="#Randn">Randn</a>&#39;&gt;, &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &lt;class &#39;<a href="#Sign">Sign</a>&#39;&gt;, &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#ToArray">ToArray</a>&#39;&gt;, &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &lt;class &#39;<a href="#ToMap">ToMap</a>&#39;&gt;, &lt;class &#39;<a href="#ToNumber">ToNumber</a>&#39;&gt;, &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToTime">TsOrDsToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToTimestamp">TsOrDsToTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &lt;class &#39;<a href="#UnixDate">UnixDate</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;]</span>
+ <label class="view-value-button pdoc-button" for="ALL_FUNCTIONS-view-value"></label><span class="default_value">[&lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &lt;class &#39;<a href="#AddMonths">AddMonths</a>&#39;&gt;, &lt;class &#39;<a href="#AnonymousAggFunc">AnonymousAggFunc</a>&#39;&gt;, &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayOverlaps">ArrayOverlaps</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayToString">ArrayToString</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &lt;class &#39;<a href="#Cbrt">Cbrt</a>&#39;&gt;, &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &lt;class &#39;<a href="#CombinedAggFunc">CombinedAggFunc</a>&#39;&gt;, &lt;class &#39;<a href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &lt;class &#39;<a href="#ConnectByRoot">ConnectByRoot</a>&#39;&gt;, &lt;class &#39;<a href="#Convert">Convert</a>&#39;&gt;, &lt;class &#39;<a href="#Corr">Corr</a>&#39;&gt;, &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &lt;class &#39;<a href="#CovarPop">CovarPop</a>&#39;&gt;, &lt;class &#39;<a href="#CovarSamp">CovarSamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &lt;class &#39;<a href="#FirstValue">FirstValue</a>&#39;&gt;, &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateDateArray">GenerateDateArray</a>&#39;&gt;, &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &lt;class &#39;<a href="#JSONObjectAgg">JSONObjectAgg</a>&#39;&gt;, &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &lt;class &#39;<a href="#Lag">Lag</a>&#39;&gt;, &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &lt;class &#39;<a href="#LastValue">LastValue</a>&#39;&gt;, &lt;class &#39;<a href="#Lead">Lead</a>&#39;&gt;, &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &lt;class &#39;<a href="#NthValue">NthValue</a>&#39;&gt;, &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &lt;class &#39;<a href="#Quarter">Quarter</a>&#39;&gt;, &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &lt;class &#39;<a href="#Randn">Randn</a>&#39;&gt;, &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &lt;class &#39;<a href="#Sign">Sign</a>&#39;&gt;, &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &lt;class &#39;<a href="#ToArray">ToArray</a>&#39;&gt;, &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &lt;class &#39;<a href="#ToMap">ToMap</a>&#39;&gt;, &lt;class &#39;<a href="#ToNumber">ToNumber</a>&#39;&gt;, &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &lt;class &#39;<a href="#Try">Try</a>&#39;&gt;, &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToTime">TsOrDsToTime</a>&#39;&gt;, &lt;class &#39;<a href="#TsOrDsToTimestamp">TsOrDsToTimestamp</a>&#39;&gt;, &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &lt;class &#39;<a href="#UnixDate">UnixDate</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;]</span>
</div>
@@ -94741,7 +95367,7 @@ array<int> != array<float>.</p>
<div class="attr variable">
<span class="name">FUNCTION_BY_NAME</span> =
<input id="FUNCTION_BY_NAME-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
- <label class="view-value-button pdoc-button" for="FUNCTION_BY_NAME-view-value"></label><span class="default_value">{&#39;ABS&#39;: &lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &#39;ADD_MONTHS&#39;: &lt;class &#39;<a href="#AddMonths">AddMonths</a>&#39;&gt;, &#39;ANONYMOUS_AGG_FUNC&#39;: &lt;class &#39;<a href="#AnonymousAggFunc">AnonymousAggFunc</a>&#39;&gt;, &#39;ANY_VALUE&#39;: &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &#39;APPROX_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_COUNT_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_QUANTILE&#39;: &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &#39;APPROX_TOP_K&#39;: &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &#39;ARG_MAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARGMAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;MAX_BY&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARG_MIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARGMIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;MIN_BY&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARRAY&#39;: &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &#39;ARRAY_AGG&#39;: &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &#39;ARRAY_ALL&#39;: &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &#39;ARRAY_ANY&#39;: &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &#39;ARRAY_CONCAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &#39;FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_OVERLAPS&#39;: &lt;class &#39;<a href="#ArrayOverlaps">ArrayOverlaps</a>&#39;&gt;, &#39;ARRAY_SIZE&#39;: &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &#39;ARRAY_LENGTH&#39;: &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &#39;ARRAY_SORT&#39;: &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &#39;ARRAY_SUM&#39;: &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &#39;ARRAY_TO_STRING&#39;: &lt;class &#39;<a href="#ArrayToString">ArrayToString</a>&#39;&gt;, &#39;ARRAY_JOIN&#39;: &lt;class &#39;<a href="#ArrayToString">ArrayToString</a>&#39;&gt;, &#39;ARRAY_UNION_AGG&#39;: &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &#39;ARRAY_UNIQUE_AGG&#39;: &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &#39;AVG&#39;: &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &#39;CASE&#39;: &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &#39;CAST&#39;: &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &#39;CAST_TO_STR_TYPE&#39;: &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &#39;CBRT&#39;: &lt;class &#39;<a href="#Cbrt">Cbrt</a>&#39;&gt;, &#39;CEIL&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CEILING&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CHR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;CHAR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;COALESCE&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;IFNULL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;NVL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;COLLATE&#39;: &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &#39;COMBINED_AGG_FUNC&#39;: &lt;class &#39;<a href="#CombinedAggFunc">CombinedAggFunc</a>&#39;&gt;, &#39;COMBINED_PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>&#39;&gt;, &#39;CONCAT&#39;: &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &#39;CONCAT_WS&#39;: &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &#39;CONNECT_BY_ROOT&#39;: &lt;class &#39;<a href="#ConnectByRoot">ConnectByRoot</a>&#39;&gt;, &#39;CONVERT&#39;: &lt;class &#39;<a href="#Convert">Convert</a>&#39;&gt;, &#39;CORR&#39;: &lt;class &#39;<a href="#Corr">Corr</a>&#39;&gt;, &#39;COUNT&#39;: &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &#39;COUNT_IF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;COUNTIF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;COVAR_POP&#39;: &lt;class &#39;<a href="#CovarPop">CovarPop</a>&#39;&gt;, &#39;COVAR_SAMP&#39;: &lt;class &#39;<a href="#CovarSamp">CovarSamp</a>&#39;&gt;, &#39;CURRENT_DATE&#39;: &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &#39;CURRENT_DATETIME&#39;: &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &#39;CURRENT_TIME&#39;: &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &#39;CURRENT_TIMESTAMP&#39;: &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &#39;CURRENT_USER&#39;: &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &#39;DATE&#39;: &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &#39;DATE_ADD&#39;: &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &#39;DATEDIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_DIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_FROM_PARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATEFROMPARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATE_STR_TO_DATE&#39;: &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &#39;DATE_SUB&#39;: &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &#39;DATE_TO_DATE_STR&#39;: &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &#39;DATE_TO_DI&#39;: &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &#39;DATE_TRUNC&#39;: &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &#39;DATETIME_ADD&#39;: &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &#39;DATETIME_DIFF&#39;: &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &#39;DATETIME_SUB&#39;: &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &#39;DATETIME_TRUNC&#39;: &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &#39;DAY&#39;: &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &#39;DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAYOFMONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAY_OF_WEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAYOFWEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAY_OF_YEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DAYOFYEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DECODE&#39;: &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &#39;DI_TO_DATE&#39;: &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &#39;ENCODE&#39;: &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &#39;EXP&#39;: &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &#39;EXPLODE&#39;: &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &#39;EXPLODE_OUTER&#39;: &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &#39;EXTRACT&#39;: &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &#39;FIRST&#39;: &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &#39;FIRST_VALUE&#39;: &lt;class &#39;<a href="#FirstValue">FirstValue</a>&#39;&gt;, &#39;FLATTEN&#39;: &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &#39;FLOOR&#39;: &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &#39;FROM_BASE&#39;: &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &#39;FROM_BASE64&#39;: &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &#39;GENERATE_DATE_ARRAY&#39;: &lt;class &#39;<a href="#GenerateDateArray">GenerateDateArray</a>&#39;&gt;, &#39;GENERATE_SERIES&#39;: &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &#39;GREATEST&#39;: &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &#39;GROUP_CONCAT&#39;: &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &#39;HEX&#39;: &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &#39;HLL&#39;: &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &#39;IF&#39;: &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &#39;IIF&#39;: &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &#39;INITCAP&#39;: &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &#39;IS_INF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;ISINF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;IS_NAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;ISNAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;J_S_O_N_ARRAY&#39;: &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &#39;J_S_O_N_ARRAY_AGG&#39;: &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &#39;JSON_ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &#39;JSONB_EXTRACT&#39;: &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &#39;JSONB_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &#39;JSON_EXTRACT&#39;: &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &#39;JSON_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &#39;JSON_FORMAT&#39;: &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &#39;J_S_O_N_OBJECT&#39;: &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &#39;J_S_O_N_OBJECT_AGG&#39;: &lt;class &#39;<a href="#JSONObjectAgg">JSONObjectAgg</a>&#39;&gt;, &#39;J_S_O_N_TABLE&#39;: &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &#39;LAG&#39;: &lt;class &#39;<a href="#Lag">Lag</a>&#39;&gt;, &#39;LAST&#39;: &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &#39;LAST_DAY&#39;: &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &#39;LAST_DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &#39;LAST_VALUE&#39;: &lt;class &#39;<a href="#LastValue">LastValue</a>&#39;&gt;, &#39;LEAD&#39;: &lt;class &#39;<a href="#Lead">Lead</a>&#39;&gt;, &#39;LEAST&#39;: &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &#39;LEFT&#39;: &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &#39;LENGTH&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEN&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEVENSHTEIN&#39;: &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &#39;LN&#39;: &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &#39;LOG&#39;: &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &#39;LOGICAL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOLAND_AGG&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;LOGICAL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOLOR_AGG&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;LOWER&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;LCASE&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;MD5&#39;: &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &#39;MD5_DIGEST&#39;: &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &#39;MAP&#39;: &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &#39;MAP_FROM_ENTRIES&#39;: &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &#39;MATCH_AGAINST&#39;: &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &#39;MAX&#39;: &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &#39;MIN&#39;: &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &#39;MONTH&#39;: &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &#39;MONTHS_BETWEEN&#39;: &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &#39;NEXT_VALUE_FOR&#39;: &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &#39;NTH_VALUE&#39;: &lt;class &#39;<a href="#NthValue">NthValue</a>&#39;&gt;, &#39;NULLIF&#39;: &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &#39;NUMBER_TO_STR&#39;: &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &#39;NVL2&#39;: &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &#39;OPEN_J_S_O_N&#39;: &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &#39;PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &#39;PARSE_JSON&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;JSON_PARSE&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;PERCENTILE_CONT&#39;: &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &#39;PERCENTILE_DISC&#39;: &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &#39;POSEXPLODE&#39;: &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &#39;POSEXPLODE_OUTER&#39;: &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &#39;POWER&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;POW&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;PREDICT&#39;: &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &#39;QUANTILE&#39;: &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &#39;QUARTER&#39;: &lt;class &#39;<a href="#Quarter">Quarter</a>&#39;&gt;, &#39;RAND&#39;: &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &#39;RANDOM&#39;: &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &#39;RANDN&#39;: &lt;class &#39;<a href="#Randn">Randn</a>&#39;&gt;, &#39;RANGE_N&#39;: &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &#39;READ_CSV&#39;: &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &#39;REDUCE&#39;: &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &#39;REGEXP_EXTRACT&#39;: &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &#39;REGEXP_I_LIKE&#39;: &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &#39;REGEXP_LIKE&#39;: &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &#39;REGEXP_REPLACE&#39;: &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &#39;REGEXP_SPLIT&#39;: &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &#39;REPEAT&#39;: &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &#39;RIGHT&#39;: &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &#39;ROUND&#39;: &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &#39;ROW_NUMBER&#39;: &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &#39;SHA&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA1&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA2&#39;: &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &#39;SAFE_DIVIDE&#39;: &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &#39;SIGN&#39;: &lt;class &#39;<a href="#Sign">Sign</a>&#39;&gt;, &#39;SIGNUM&#39;: &lt;class &#39;<a href="#Sign">Sign</a>&#39;&gt;, &#39;SORT_ARRAY&#39;: &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &#39;SPLIT&#39;: &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &#39;SQRT&#39;: &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &#39;STANDARD_HASH&#39;: &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &#39;STAR_MAP&#39;: &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &#39;STARTS_WITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STARTSWITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STDDEV&#39;: &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &#39;STDDEV_POP&#39;: &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &#39;STDDEV_SAMP&#39;: &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &#39;STR_POSITION&#39;: &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &#39;STR_TO_DATE&#39;: &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &#39;STR_TO_MAP&#39;: &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &#39;STR_TO_TIME&#39;: &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &#39;STR_TO_UNIX&#39;: &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &#39;STRUCT&#39;: &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &#39;STRUCT_EXTRACT&#39;: &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &#39;STUFF&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;INSERT&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;SUBSTRING&#39;: &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &#39;SUM&#39;: &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &#39;TIME_ADD&#39;: &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &#39;TIME_DIFF&#39;: &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &#39;TIME_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &#39;TIMEFROMPARTS&#39;: &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &#39;TIME_STR_TO_DATE&#39;: &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &#39;TIME_STR_TO_TIME&#39;: &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &#39;TIME_STR_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &#39;TIME_SUB&#39;: &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &#39;TIME_TO_STR&#39;: &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &#39;TIME_TO_TIME_STR&#39;: &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &#39;TIME_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &#39;TIME_TRUNC&#39;: &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &#39;TIMESTAMP&#39;: &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &#39;TIMESTAMP_ADD&#39;: &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &#39;TIMESTAMPDIFF&#39;: &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &#39;TIMESTAMP_DIFF&#39;: &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &#39;TIMESTAMP_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMPFROMPARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMP_SUB&#39;: &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &#39;TIMESTAMP_TRUNC&#39;: &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &#39;TO_ARRAY&#39;: &lt;class &#39;<a href="#ToArray">ToArray</a>&#39;&gt;, &#39;TO_BASE64&#39;: &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &#39;TO_CHAR&#39;: &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &#39;TO_DAYS&#39;: &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &#39;TO_MAP&#39;: &lt;class &#39;<a href="#ToMap">ToMap</a>&#39;&gt;, &#39;TO_NUMBER&#39;: &lt;class &#39;<a href="#ToNumber">ToNumber</a>&#39;&gt;, &#39;TRANSFORM&#39;: &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &#39;TRIM&#39;: &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &#39;TRY_CAST&#39;: &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &#39;TS_OR_DI_TO_DI&#39;: &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &#39;TS_OR_DS_ADD&#39;: &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &#39;TS_OR_DS_DIFF&#39;: &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE&#39;: &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE_STR&#39;: &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &#39;TS_OR_DS_TO_TIME&#39;: &lt;class &#39;<a href="#TsOrDsToTime">TsOrDsToTime</a>&#39;&gt;, &#39;TS_OR_DS_TO_TIMESTAMP&#39;: &lt;class &#39;<a href="#TsOrDsToTimestamp">TsOrDsToTimestamp</a>&#39;&gt;, &#39;UNHEX&#39;: &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &#39;UNIX_DATE&#39;: &lt;class &#39;<a href="#UnixDate">UnixDate</a>&#39;&gt;, &#39;UNIX_TO_STR&#39;: &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &#39;UNIX_TO_TIME&#39;: &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &#39;UNIX_TO_TIME_STR&#39;: &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &#39;UPPER&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;UCASE&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;VAR_MAP&#39;: &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &#39;VARIANCE&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VAR_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;VAR_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;WEEK&#39;: &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &#39;WEEK_OF_YEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WEEKOFYEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WHEN&#39;: &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &#39;X_M_L_TABLE&#39;: &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &#39;XOR&#39;: &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &#39;YEAR&#39;: &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;}</span>
+ <label class="view-value-button pdoc-button" for="FUNCTION_BY_NAME-view-value"></label><span class="default_value">{&#39;ABS&#39;: &lt;class &#39;<a href="#Abs">Abs</a>&#39;&gt;, &#39;ADD_MONTHS&#39;: &lt;class &#39;<a href="#AddMonths">AddMonths</a>&#39;&gt;, &#39;ANONYMOUS_AGG_FUNC&#39;: &lt;class &#39;<a href="#AnonymousAggFunc">AnonymousAggFunc</a>&#39;&gt;, &#39;ANY_VALUE&#39;: &lt;class &#39;<a href="#AnyValue">AnyValue</a>&#39;&gt;, &#39;APPROX_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_COUNT_DISTINCT&#39;: &lt;class &#39;<a href="#ApproxDistinct">ApproxDistinct</a>&#39;&gt;, &#39;APPROX_QUANTILE&#39;: &lt;class &#39;<a href="#ApproxQuantile">ApproxQuantile</a>&#39;&gt;, &#39;APPROX_TOP_K&#39;: &lt;class &#39;<a href="#ApproxTopK">ApproxTopK</a>&#39;&gt;, &#39;ARG_MAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARGMAX&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;MAX_BY&#39;: &lt;class &#39;<a href="#ArgMax">ArgMax</a>&#39;&gt;, &#39;ARG_MIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARGMIN&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;MIN_BY&#39;: &lt;class &#39;<a href="#ArgMin">ArgMin</a>&#39;&gt;, &#39;ARRAY&#39;: &lt;class &#39;<a href="#Array">Array</a>&#39;&gt;, &#39;ARRAY_AGG&#39;: &lt;class &#39;<a href="#ArrayAgg">ArrayAgg</a>&#39;&gt;, &#39;ARRAY_ALL&#39;: &lt;class &#39;<a href="#ArrayAll">ArrayAll</a>&#39;&gt;, &#39;ARRAY_ANY&#39;: &lt;class &#39;<a href="#ArrayAny">ArrayAny</a>&#39;&gt;, &#39;ARRAY_CONCAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CAT&#39;: &lt;class &#39;<a href="#ArrayConcat">ArrayConcat</a>&#39;&gt;, &#39;ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#ArrayContains">ArrayContains</a>&#39;&gt;, &#39;FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_FILTER&#39;: &lt;class &#39;<a href="#ArrayFilter">ArrayFilter</a>&#39;&gt;, &#39;ARRAY_OVERLAPS&#39;: &lt;class &#39;<a href="#ArrayOverlaps">ArrayOverlaps</a>&#39;&gt;, &#39;ARRAY_SIZE&#39;: &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &#39;ARRAY_LENGTH&#39;: &lt;class &#39;<a href="#ArraySize">ArraySize</a>&#39;&gt;, &#39;ARRAY_SORT&#39;: &lt;class &#39;<a href="#ArraySort">ArraySort</a>&#39;&gt;, &#39;ARRAY_SUM&#39;: &lt;class &#39;<a href="#ArraySum">ArraySum</a>&#39;&gt;, &#39;ARRAY_TO_STRING&#39;: &lt;class &#39;<a href="#ArrayToString">ArrayToString</a>&#39;&gt;, &#39;ARRAY_JOIN&#39;: &lt;class &#39;<a href="#ArrayToString">ArrayToString</a>&#39;&gt;, &#39;ARRAY_UNION_AGG&#39;: &lt;class &#39;<a href="#ArrayUnionAgg">ArrayUnionAgg</a>&#39;&gt;, &#39;ARRAY_UNIQUE_AGG&#39;: &lt;class &#39;<a href="#ArrayUniqueAgg">ArrayUniqueAgg</a>&#39;&gt;, &#39;AVG&#39;: &lt;class &#39;<a href="#Avg">Avg</a>&#39;&gt;, &#39;CASE&#39;: &lt;class &#39;<a href="#Case">Case</a>&#39;&gt;, &#39;CAST&#39;: &lt;class &#39;<a href="#Cast">Cast</a>&#39;&gt;, &#39;CAST_TO_STR_TYPE&#39;: &lt;class &#39;<a href="#CastToStrType">CastToStrType</a>&#39;&gt;, &#39;CBRT&#39;: &lt;class &#39;<a href="#Cbrt">Cbrt</a>&#39;&gt;, &#39;CEIL&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CEILING&#39;: &lt;class &#39;<a href="#Ceil">Ceil</a>&#39;&gt;, &#39;CHR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;CHAR&#39;: &lt;class &#39;<a href="#Chr">Chr</a>&#39;&gt;, &#39;COALESCE&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;IFNULL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;NVL&#39;: &lt;class &#39;<a href="#Coalesce">Coalesce</a>&#39;&gt;, &#39;COLLATE&#39;: &lt;class &#39;<a href="#Collate">Collate</a>&#39;&gt;, &#39;COMBINED_AGG_FUNC&#39;: &lt;class &#39;<a href="#CombinedAggFunc">CombinedAggFunc</a>&#39;&gt;, &#39;COMBINED_PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#CombinedParameterizedAgg">CombinedParameterizedAgg</a>&#39;&gt;, &#39;CONCAT&#39;: &lt;class &#39;<a href="#Concat">Concat</a>&#39;&gt;, &#39;CONCAT_WS&#39;: &lt;class &#39;<a href="#ConcatWs">ConcatWs</a>&#39;&gt;, &#39;CONNECT_BY_ROOT&#39;: &lt;class &#39;<a href="#ConnectByRoot">ConnectByRoot</a>&#39;&gt;, &#39;CONVERT&#39;: &lt;class &#39;<a href="#Convert">Convert</a>&#39;&gt;, &#39;CORR&#39;: &lt;class &#39;<a href="#Corr">Corr</a>&#39;&gt;, &#39;COUNT&#39;: &lt;class &#39;<a href="#Count">Count</a>&#39;&gt;, &#39;COUNT_IF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;COUNTIF&#39;: &lt;class &#39;<a href="#CountIf">CountIf</a>&#39;&gt;, &#39;COVAR_POP&#39;: &lt;class &#39;<a href="#CovarPop">CovarPop</a>&#39;&gt;, &#39;COVAR_SAMP&#39;: &lt;class &#39;<a href="#CovarSamp">CovarSamp</a>&#39;&gt;, &#39;CURRENT_DATE&#39;: &lt;class &#39;<a href="#CurrentDate">CurrentDate</a>&#39;&gt;, &#39;CURRENT_DATETIME&#39;: &lt;class &#39;<a href="#CurrentDatetime">CurrentDatetime</a>&#39;&gt;, &#39;CURRENT_TIME&#39;: &lt;class &#39;<a href="#CurrentTime">CurrentTime</a>&#39;&gt;, &#39;CURRENT_TIMESTAMP&#39;: &lt;class &#39;<a href="#CurrentTimestamp">CurrentTimestamp</a>&#39;&gt;, &#39;CURRENT_USER&#39;: &lt;class &#39;<a href="#CurrentUser">CurrentUser</a>&#39;&gt;, &#39;DATE&#39;: &lt;class &#39;<a href="#Date">Date</a>&#39;&gt;, &#39;DATE_ADD&#39;: &lt;class &#39;<a href="#DateAdd">DateAdd</a>&#39;&gt;, &#39;DATEDIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_DIFF&#39;: &lt;class &#39;<a href="#DateDiff">DateDiff</a>&#39;&gt;, &#39;DATE_FROM_PARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATEFROMPARTS&#39;: &lt;class &#39;<a href="#DateFromParts">DateFromParts</a>&#39;&gt;, &#39;DATE_STR_TO_DATE&#39;: &lt;class &#39;<a href="#DateStrToDate">DateStrToDate</a>&#39;&gt;, &#39;DATE_SUB&#39;: &lt;class &#39;<a href="#DateSub">DateSub</a>&#39;&gt;, &#39;DATE_TO_DATE_STR&#39;: &lt;class &#39;<a href="#DateToDateStr">DateToDateStr</a>&#39;&gt;, &#39;DATE_TO_DI&#39;: &lt;class &#39;<a href="#DateToDi">DateToDi</a>&#39;&gt;, &#39;DATE_TRUNC&#39;: &lt;class &#39;<a href="#DateTrunc">DateTrunc</a>&#39;&gt;, &#39;DATETIME_ADD&#39;: &lt;class &#39;<a href="#DatetimeAdd">DatetimeAdd</a>&#39;&gt;, &#39;DATETIME_DIFF&#39;: &lt;class &#39;<a href="#DatetimeDiff">DatetimeDiff</a>&#39;&gt;, &#39;DATETIME_SUB&#39;: &lt;class &#39;<a href="#DatetimeSub">DatetimeSub</a>&#39;&gt;, &#39;DATETIME_TRUNC&#39;: &lt;class &#39;<a href="#DatetimeTrunc">DatetimeTrunc</a>&#39;&gt;, &#39;DAY&#39;: &lt;class &#39;<a href="#Day">Day</a>&#39;&gt;, &#39;DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAYOFMONTH&#39;: &lt;class &#39;<a href="#DayOfMonth">DayOfMonth</a>&#39;&gt;, &#39;DAY_OF_WEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAYOFWEEK&#39;: &lt;class &#39;<a href="#DayOfWeek">DayOfWeek</a>&#39;&gt;, &#39;DAY_OF_YEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DAYOFYEAR&#39;: &lt;class &#39;<a href="#DayOfYear">DayOfYear</a>&#39;&gt;, &#39;DECODE&#39;: &lt;class &#39;<a href="#Decode">Decode</a>&#39;&gt;, &#39;DI_TO_DATE&#39;: &lt;class &#39;<a href="#DiToDate">DiToDate</a>&#39;&gt;, &#39;ENCODE&#39;: &lt;class &#39;<a href="#Encode">Encode</a>&#39;&gt;, &#39;EXP&#39;: &lt;class &#39;<a href="#Exp">Exp</a>&#39;&gt;, &#39;EXPLODE&#39;: &lt;class &#39;<a href="#Explode">Explode</a>&#39;&gt;, &#39;EXPLODE_OUTER&#39;: &lt;class &#39;<a href="#ExplodeOuter">ExplodeOuter</a>&#39;&gt;, &#39;EXTRACT&#39;: &lt;class &#39;<a href="#Extract">Extract</a>&#39;&gt;, &#39;FIRST&#39;: &lt;class &#39;<a href="#First">First</a>&#39;&gt;, &#39;FIRST_VALUE&#39;: &lt;class &#39;<a href="#FirstValue">FirstValue</a>&#39;&gt;, &#39;FLATTEN&#39;: &lt;class &#39;<a href="#Flatten">Flatten</a>&#39;&gt;, &#39;FLOOR&#39;: &lt;class &#39;<a href="#Floor">Floor</a>&#39;&gt;, &#39;FROM_BASE&#39;: &lt;class &#39;<a href="#FromBase">FromBase</a>&#39;&gt;, &#39;FROM_BASE64&#39;: &lt;class &#39;<a href="#FromBase64">FromBase64</a>&#39;&gt;, &#39;GENERATE_DATE_ARRAY&#39;: &lt;class &#39;<a href="#GenerateDateArray">GenerateDateArray</a>&#39;&gt;, &#39;GENERATE_SERIES&#39;: &lt;class &#39;<a href="#GenerateSeries">GenerateSeries</a>&#39;&gt;, &#39;GREATEST&#39;: &lt;class &#39;<a href="#Greatest">Greatest</a>&#39;&gt;, &#39;GROUP_CONCAT&#39;: &lt;class &#39;<a href="#GroupConcat">GroupConcat</a>&#39;&gt;, &#39;HEX&#39;: &lt;class &#39;<a href="#Hex">Hex</a>&#39;&gt;, &#39;HLL&#39;: &lt;class &#39;<a href="#Hll">Hll</a>&#39;&gt;, &#39;IF&#39;: &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &#39;IIF&#39;: &lt;class &#39;<a href="#If">If</a>&#39;&gt;, &#39;INITCAP&#39;: &lt;class &#39;<a href="#Initcap">Initcap</a>&#39;&gt;, &#39;IS_INF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;ISINF&#39;: &lt;class &#39;<a href="#IsInf">IsInf</a>&#39;&gt;, &#39;IS_NAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;ISNAN&#39;: &lt;class &#39;<a href="#IsNan">IsNan</a>&#39;&gt;, &#39;J_S_O_N_ARRAY&#39;: &lt;class &#39;<a href="#JSONArray">JSONArray</a>&#39;&gt;, &#39;J_S_O_N_ARRAY_AGG&#39;: &lt;class &#39;<a href="#JSONArrayAgg">JSONArrayAgg</a>&#39;&gt;, &#39;JSON_ARRAY_CONTAINS&#39;: &lt;class &#39;<a href="#JSONArrayContains">JSONArrayContains</a>&#39;&gt;, &#39;JSONB_EXTRACT&#39;: &lt;class &#39;<a href="#JSONBExtract">JSONBExtract</a>&#39;&gt;, &#39;JSONB_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONBExtractScalar">JSONBExtractScalar</a>&#39;&gt;, &#39;JSON_EXTRACT&#39;: &lt;class &#39;<a href="#JSONExtract">JSONExtract</a>&#39;&gt;, &#39;JSON_EXTRACT_SCALAR&#39;: &lt;class &#39;<a href="#JSONExtractScalar">JSONExtractScalar</a>&#39;&gt;, &#39;JSON_FORMAT&#39;: &lt;class &#39;<a href="#JSONFormat">JSONFormat</a>&#39;&gt;, &#39;J_S_O_N_OBJECT&#39;: &lt;class &#39;<a href="#JSONObject">JSONObject</a>&#39;&gt;, &#39;J_S_O_N_OBJECT_AGG&#39;: &lt;class &#39;<a href="#JSONObjectAgg">JSONObjectAgg</a>&#39;&gt;, &#39;J_S_O_N_TABLE&#39;: &lt;class &#39;<a href="#JSONTable">JSONTable</a>&#39;&gt;, &#39;LAG&#39;: &lt;class &#39;<a href="#Lag">Lag</a>&#39;&gt;, &#39;LAST&#39;: &lt;class &#39;<a href="#Last">Last</a>&#39;&gt;, &#39;LAST_DAY&#39;: &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &#39;LAST_DAY_OF_MONTH&#39;: &lt;class &#39;<a href="#LastDay">LastDay</a>&#39;&gt;, &#39;LAST_VALUE&#39;: &lt;class &#39;<a href="#LastValue">LastValue</a>&#39;&gt;, &#39;LEAD&#39;: &lt;class &#39;<a href="#Lead">Lead</a>&#39;&gt;, &#39;LEAST&#39;: &lt;class &#39;<a href="#Least">Least</a>&#39;&gt;, &#39;LEFT&#39;: &lt;class &#39;<a href="#Left">Left</a>&#39;&gt;, &#39;LENGTH&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEN&#39;: &lt;class &#39;<a href="#Length">Length</a>&#39;&gt;, &#39;LEVENSHTEIN&#39;: &lt;class &#39;<a href="#Levenshtein">Levenshtein</a>&#39;&gt;, &#39;LN&#39;: &lt;class &#39;<a href="#Ln">Ln</a>&#39;&gt;, &#39;LOG&#39;: &lt;class &#39;<a href="#Log">Log</a>&#39;&gt;, &#39;LOGICAL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOL_AND&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;BOOLAND_AGG&#39;: &lt;class &#39;<a href="#LogicalAnd">LogicalAnd</a>&#39;&gt;, &#39;LOGICAL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOL_OR&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;BOOLOR_AGG&#39;: &lt;class &#39;<a href="#LogicalOr">LogicalOr</a>&#39;&gt;, &#39;LOWER&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;LCASE&#39;: &lt;class &#39;<a href="#Lower">Lower</a>&#39;&gt;, &#39;MD5&#39;: &lt;class &#39;<a href="#MD5">MD5</a>&#39;&gt;, &#39;MD5_DIGEST&#39;: &lt;class &#39;<a href="#MD5Digest">MD5Digest</a>&#39;&gt;, &#39;MAP&#39;: &lt;class &#39;<a href="#Map">Map</a>&#39;&gt;, &#39;MAP_FROM_ENTRIES&#39;: &lt;class &#39;<a href="#MapFromEntries">MapFromEntries</a>&#39;&gt;, &#39;MATCH_AGAINST&#39;: &lt;class &#39;<a href="#MatchAgainst">MatchAgainst</a>&#39;&gt;, &#39;MAX&#39;: &lt;class &#39;<a href="#Max">Max</a>&#39;&gt;, &#39;MIN&#39;: &lt;class &#39;<a href="#Min">Min</a>&#39;&gt;, &#39;MONTH&#39;: &lt;class &#39;<a href="#Month">Month</a>&#39;&gt;, &#39;MONTHS_BETWEEN&#39;: &lt;class &#39;<a href="#MonthsBetween">MonthsBetween</a>&#39;&gt;, &#39;NEXT_VALUE_FOR&#39;: &lt;class &#39;<a href="#NextValueFor">NextValueFor</a>&#39;&gt;, &#39;NTH_VALUE&#39;: &lt;class &#39;<a href="#NthValue">NthValue</a>&#39;&gt;, &#39;NULLIF&#39;: &lt;class &#39;<a href="#Nullif">Nullif</a>&#39;&gt;, &#39;NUMBER_TO_STR&#39;: &lt;class &#39;<a href="#NumberToStr">NumberToStr</a>&#39;&gt;, &#39;NVL2&#39;: &lt;class &#39;<a href="#Nvl2">Nvl2</a>&#39;&gt;, &#39;OPEN_J_S_O_N&#39;: &lt;class &#39;<a href="#OpenJSON">OpenJSON</a>&#39;&gt;, &#39;PARAMETERIZED_AGG&#39;: &lt;class &#39;<a href="#ParameterizedAgg">ParameterizedAgg</a>&#39;&gt;, &#39;PARSE_JSON&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;JSON_PARSE&#39;: &lt;class &#39;<a href="#ParseJSON">ParseJSON</a>&#39;&gt;, &#39;PERCENTILE_CONT&#39;: &lt;class &#39;<a href="#PercentileCont">PercentileCont</a>&#39;&gt;, &#39;PERCENTILE_DISC&#39;: &lt;class &#39;<a href="#PercentileDisc">PercentileDisc</a>&#39;&gt;, &#39;POSEXPLODE&#39;: &lt;class &#39;<a href="#Posexplode">Posexplode</a>&#39;&gt;, &#39;POSEXPLODE_OUTER&#39;: &lt;class &#39;<a href="#PosexplodeOuter">PosexplodeOuter</a>&#39;&gt;, &#39;POWER&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;POW&#39;: &lt;class &#39;<a href="#Pow">Pow</a>&#39;&gt;, &#39;PREDICT&#39;: &lt;class &#39;<a href="#Predict">Predict</a>&#39;&gt;, &#39;QUANTILE&#39;: &lt;class &#39;<a href="#Quantile">Quantile</a>&#39;&gt;, &#39;QUARTER&#39;: &lt;class &#39;<a href="#Quarter">Quarter</a>&#39;&gt;, &#39;RAND&#39;: &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &#39;RANDOM&#39;: &lt;class &#39;<a href="#Rand">Rand</a>&#39;&gt;, &#39;RANDN&#39;: &lt;class &#39;<a href="#Randn">Randn</a>&#39;&gt;, &#39;RANGE_N&#39;: &lt;class &#39;<a href="#RangeN">RangeN</a>&#39;&gt;, &#39;READ_CSV&#39;: &lt;class &#39;<a href="#ReadCSV">ReadCSV</a>&#39;&gt;, &#39;REDUCE&#39;: &lt;class &#39;<a href="#Reduce">Reduce</a>&#39;&gt;, &#39;REGEXP_EXTRACT&#39;: &lt;class &#39;<a href="#RegexpExtract">RegexpExtract</a>&#39;&gt;, &#39;REGEXP_I_LIKE&#39;: &lt;class &#39;<a href="#RegexpILike">RegexpILike</a>&#39;&gt;, &#39;REGEXP_LIKE&#39;: &lt;class &#39;<a href="#RegexpLike">RegexpLike</a>&#39;&gt;, &#39;REGEXP_REPLACE&#39;: &lt;class &#39;<a href="#RegexpReplace">RegexpReplace</a>&#39;&gt;, &#39;REGEXP_SPLIT&#39;: &lt;class &#39;<a href="#RegexpSplit">RegexpSplit</a>&#39;&gt;, &#39;REPEAT&#39;: &lt;class &#39;<a href="#Repeat">Repeat</a>&#39;&gt;, &#39;RIGHT&#39;: &lt;class &#39;<a href="#Right">Right</a>&#39;&gt;, &#39;ROUND&#39;: &lt;class &#39;<a href="#Round">Round</a>&#39;&gt;, &#39;ROW_NUMBER&#39;: &lt;class &#39;<a href="#RowNumber">RowNumber</a>&#39;&gt;, &#39;SHA&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA1&#39;: &lt;class &#39;<a href="#SHA">SHA</a>&#39;&gt;, &#39;SHA2&#39;: &lt;class &#39;<a href="#SHA2">SHA2</a>&#39;&gt;, &#39;SAFE_DIVIDE&#39;: &lt;class &#39;<a href="#SafeDivide">SafeDivide</a>&#39;&gt;, &#39;SIGN&#39;: &lt;class &#39;<a href="#Sign">Sign</a>&#39;&gt;, &#39;SIGNUM&#39;: &lt;class &#39;<a href="#Sign">Sign</a>&#39;&gt;, &#39;SORT_ARRAY&#39;: &lt;class &#39;<a href="#SortArray">SortArray</a>&#39;&gt;, &#39;SPLIT&#39;: &lt;class &#39;<a href="#Split">Split</a>&#39;&gt;, &#39;SQRT&#39;: &lt;class &#39;<a href="#Sqrt">Sqrt</a>&#39;&gt;, &#39;STANDARD_HASH&#39;: &lt;class &#39;<a href="#StandardHash">StandardHash</a>&#39;&gt;, &#39;STAR_MAP&#39;: &lt;class &#39;<a href="#StarMap">StarMap</a>&#39;&gt;, &#39;STARTS_WITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STARTSWITH&#39;: &lt;class &#39;<a href="#StartsWith">StartsWith</a>&#39;&gt;, &#39;STDDEV&#39;: &lt;class &#39;<a href="#Stddev">Stddev</a>&#39;&gt;, &#39;STDDEV_POP&#39;: &lt;class &#39;<a href="#StddevPop">StddevPop</a>&#39;&gt;, &#39;STDDEV_SAMP&#39;: &lt;class &#39;<a href="#StddevSamp">StddevSamp</a>&#39;&gt;, &#39;STR_POSITION&#39;: &lt;class &#39;<a href="#StrPosition">StrPosition</a>&#39;&gt;, &#39;STR_TO_DATE&#39;: &lt;class &#39;<a href="#StrToDate">StrToDate</a>&#39;&gt;, &#39;STR_TO_MAP&#39;: &lt;class &#39;<a href="#StrToMap">StrToMap</a>&#39;&gt;, &#39;STR_TO_TIME&#39;: &lt;class &#39;<a href="#StrToTime">StrToTime</a>&#39;&gt;, &#39;STR_TO_UNIX&#39;: &lt;class &#39;<a href="#StrToUnix">StrToUnix</a>&#39;&gt;, &#39;STRUCT&#39;: &lt;class &#39;<a href="#Struct">Struct</a>&#39;&gt;, &#39;STRUCT_EXTRACT&#39;: &lt;class &#39;<a href="#StructExtract">StructExtract</a>&#39;&gt;, &#39;STUFF&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;INSERT&#39;: &lt;class &#39;<a href="#Stuff">Stuff</a>&#39;&gt;, &#39;SUBSTRING&#39;: &lt;class &#39;<a href="#Substring">Substring</a>&#39;&gt;, &#39;SUM&#39;: &lt;class &#39;<a href="#Sum">Sum</a>&#39;&gt;, &#39;TIME_ADD&#39;: &lt;class &#39;<a href="#TimeAdd">TimeAdd</a>&#39;&gt;, &#39;TIME_DIFF&#39;: &lt;class &#39;<a href="#TimeDiff">TimeDiff</a>&#39;&gt;, &#39;TIME_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &#39;TIMEFROMPARTS&#39;: &lt;class &#39;<a href="#TimeFromParts">TimeFromParts</a>&#39;&gt;, &#39;TIME_STR_TO_DATE&#39;: &lt;class &#39;<a href="#TimeStrToDate">TimeStrToDate</a>&#39;&gt;, &#39;TIME_STR_TO_TIME&#39;: &lt;class &#39;<a href="#TimeStrToTime">TimeStrToTime</a>&#39;&gt;, &#39;TIME_STR_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeStrToUnix">TimeStrToUnix</a>&#39;&gt;, &#39;TIME_SUB&#39;: &lt;class &#39;<a href="#TimeSub">TimeSub</a>&#39;&gt;, &#39;TIME_TO_STR&#39;: &lt;class &#39;<a href="#TimeToStr">TimeToStr</a>&#39;&gt;, &#39;TIME_TO_TIME_STR&#39;: &lt;class &#39;<a href="#TimeToTimeStr">TimeToTimeStr</a>&#39;&gt;, &#39;TIME_TO_UNIX&#39;: &lt;class &#39;<a href="#TimeToUnix">TimeToUnix</a>&#39;&gt;, &#39;TIME_TRUNC&#39;: &lt;class &#39;<a href="#TimeTrunc">TimeTrunc</a>&#39;&gt;, &#39;TIMESTAMP&#39;: &lt;class &#39;<a href="#Timestamp">Timestamp</a>&#39;&gt;, &#39;TIMESTAMP_ADD&#39;: &lt;class &#39;<a href="#TimestampAdd">TimestampAdd</a>&#39;&gt;, &#39;TIMESTAMPDIFF&#39;: &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &#39;TIMESTAMP_DIFF&#39;: &lt;class &#39;<a href="#TimestampDiff">TimestampDiff</a>&#39;&gt;, &#39;TIMESTAMP_FROM_PARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMPFROMPARTS&#39;: &lt;class &#39;<a href="#TimestampFromParts">TimestampFromParts</a>&#39;&gt;, &#39;TIMESTAMP_SUB&#39;: &lt;class &#39;<a href="#TimestampSub">TimestampSub</a>&#39;&gt;, &#39;TIMESTAMP_TRUNC&#39;: &lt;class &#39;<a href="#TimestampTrunc">TimestampTrunc</a>&#39;&gt;, &#39;TO_ARRAY&#39;: &lt;class &#39;<a href="#ToArray">ToArray</a>&#39;&gt;, &#39;TO_BASE64&#39;: &lt;class &#39;<a href="#ToBase64">ToBase64</a>&#39;&gt;, &#39;TO_CHAR&#39;: &lt;class &#39;<a href="#ToChar">ToChar</a>&#39;&gt;, &#39;TO_DAYS&#39;: &lt;class &#39;<a href="#ToDays">ToDays</a>&#39;&gt;, &#39;TO_MAP&#39;: &lt;class &#39;<a href="#ToMap">ToMap</a>&#39;&gt;, &#39;TO_NUMBER&#39;: &lt;class &#39;<a href="#ToNumber">ToNumber</a>&#39;&gt;, &#39;TRANSFORM&#39;: &lt;class &#39;<a href="#Transform">Transform</a>&#39;&gt;, &#39;TRIM&#39;: &lt;class &#39;<a href="#Trim">Trim</a>&#39;&gt;, &#39;TRY&#39;: &lt;class &#39;<a href="#Try">Try</a>&#39;&gt;, &#39;TRY_CAST&#39;: &lt;class &#39;<a href="#TryCast">TryCast</a>&#39;&gt;, &#39;TS_OR_DI_TO_DI&#39;: &lt;class &#39;<a href="#TsOrDiToDi">TsOrDiToDi</a>&#39;&gt;, &#39;TS_OR_DS_ADD&#39;: &lt;class &#39;<a href="#TsOrDsAdd">TsOrDsAdd</a>&#39;&gt;, &#39;TS_OR_DS_DIFF&#39;: &lt;class &#39;<a href="#TsOrDsDiff">TsOrDsDiff</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE&#39;: &lt;class &#39;<a href="#TsOrDsToDate">TsOrDsToDate</a>&#39;&gt;, &#39;TS_OR_DS_TO_DATE_STR&#39;: &lt;class &#39;<a href="#TsOrDsToDateStr">TsOrDsToDateStr</a>&#39;&gt;, &#39;TS_OR_DS_TO_TIME&#39;: &lt;class &#39;<a href="#TsOrDsToTime">TsOrDsToTime</a>&#39;&gt;, &#39;TS_OR_DS_TO_TIMESTAMP&#39;: &lt;class &#39;<a href="#TsOrDsToTimestamp">TsOrDsToTimestamp</a>&#39;&gt;, &#39;UNHEX&#39;: &lt;class &#39;<a href="#Unhex">Unhex</a>&#39;&gt;, &#39;UNIX_DATE&#39;: &lt;class &#39;<a href="#UnixDate">UnixDate</a>&#39;&gt;, &#39;UNIX_TO_STR&#39;: &lt;class &#39;<a href="#UnixToStr">UnixToStr</a>&#39;&gt;, &#39;UNIX_TO_TIME&#39;: &lt;class &#39;<a href="#UnixToTime">UnixToTime</a>&#39;&gt;, &#39;UNIX_TO_TIME_STR&#39;: &lt;class &#39;<a href="#UnixToTimeStr">UnixToTimeStr</a>&#39;&gt;, &#39;UPPER&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;UCASE&#39;: &lt;class &#39;<a href="#Upper">Upper</a>&#39;&gt;, &#39;VAR_MAP&#39;: &lt;class &#39;<a href="#VarMap">VarMap</a>&#39;&gt;, &#39;VARIANCE&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VAR_SAMP&#39;: &lt;class &#39;<a href="#Variance">Variance</a>&#39;&gt;, &#39;VARIANCE_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;VAR_POP&#39;: &lt;class &#39;<a href="#VariancePop">VariancePop</a>&#39;&gt;, &#39;WEEK&#39;: &lt;class &#39;<a href="#Week">Week</a>&#39;&gt;, &#39;WEEK_OF_YEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WEEKOFYEAR&#39;: &lt;class &#39;<a href="#WeekOfYear">WeekOfYear</a>&#39;&gt;, &#39;WHEN&#39;: &lt;class &#39;<a href="#When">When</a>&#39;&gt;, &#39;X_M_L_TABLE&#39;: &lt;class &#39;<a href="#XMLTable">XMLTable</a>&#39;&gt;, &#39;XOR&#39;: &lt;class &#39;<a href="#Xor">Xor</a>&#39;&gt;, &#39;YEAR&#39;: &lt;class &#39;<a href="#Year">Year</a>&#39;&gt;}</span>
</div>
@@ -94786,52 +95412,52 @@ array<int> != array<float>.</p>
</div>
<a class="headerlink" href="#maybe_parse"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-5912"><a href="#maybe_parse-5912"><span class="linenos">5912</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
-</span><span id="maybe_parse-5913"><a href="#maybe_parse-5913"><span class="linenos">5913</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="maybe_parse-5914"><a href="#maybe_parse-5914"><span class="linenos">5914</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="maybe_parse-5915"><a href="#maybe_parse-5915"><span class="linenos">5915</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-5916"><a href="#maybe_parse-5916"><span class="linenos">5916</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-5917"><a href="#maybe_parse-5917"><span class="linenos">5917</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-5918"><a href="#maybe_parse-5918"><span class="linenos">5918</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-5919"><a href="#maybe_parse-5919"><span class="linenos">5919</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="maybe_parse-5920"><a href="#maybe_parse-5920"><span class="linenos">5920</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-5921"><a href="#maybe_parse-5921"><span class="linenos">5921</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-5922"><a href="#maybe_parse-5922"><span class="linenos">5922</span></a>
-</span><span id="maybe_parse-5923"><a href="#maybe_parse-5923"><span class="linenos">5923</span></a><span class="sd"> Example:</span>
-</span><span id="maybe_parse-5924"><a href="#maybe_parse-5924"><span class="linenos">5924</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
-</span><span id="maybe_parse-5925"><a href="#maybe_parse-5925"><span class="linenos">5925</span></a><span class="sd"> Literal(this=1, is_string=False)</span>
-</span><span id="maybe_parse-5926"><a href="#maybe_parse-5926"><span class="linenos">5926</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
-</span><span id="maybe_parse-5927"><a href="#maybe_parse-5927"><span class="linenos">5927</span></a><span class="sd"> Identifier(this=x, quoted=False)</span>
-</span><span id="maybe_parse-5928"><a href="#maybe_parse-5928"><span class="linenos">5928</span></a>
-</span><span id="maybe_parse-5929"><a href="#maybe_parse-5929"><span class="linenos">5929</span></a><span class="sd"> Args:</span>
-</span><span id="maybe_parse-5930"><a href="#maybe_parse-5930"><span class="linenos">5930</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
-</span><span id="maybe_parse-5931"><a href="#maybe_parse-5931"><span class="linenos">5931</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
-</span><span id="maybe_parse-5932"><a href="#maybe_parse-5932"><span class="linenos">5932</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-5933"><a href="#maybe_parse-5933"><span class="linenos">5933</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="maybe_parse-5934"><a href="#maybe_parse-5934"><span class="linenos">5934</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
-</span><span id="maybe_parse-5935"><a href="#maybe_parse-5935"><span class="linenos">5935</span></a><span class="sd"> (automatically includes a space)</span>
-</span><span id="maybe_parse-5936"><a href="#maybe_parse-5936"><span class="linenos">5936</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="maybe_parse-5937"><a href="#maybe_parse-5937"><span class="linenos">5937</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-5938"><a href="#maybe_parse-5938"><span class="linenos">5938</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="maybe_parse-5939"><a href="#maybe_parse-5939"><span class="linenos">5939</span></a>
-</span><span id="maybe_parse-5940"><a href="#maybe_parse-5940"><span class="linenos">5940</span></a><span class="sd"> Returns:</span>
-</span><span id="maybe_parse-5941"><a href="#maybe_parse-5941"><span class="linenos">5941</span></a><span class="sd"> Expression: the parsed or given expression.</span>
-</span><span id="maybe_parse-5942"><a href="#maybe_parse-5942"><span class="linenos">5942</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="maybe_parse-5943"><a href="#maybe_parse-5943"><span class="linenos">5943</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-5944"><a href="#maybe_parse-5944"><span class="linenos">5944</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
-</span><span id="maybe_parse-5945"><a href="#maybe_parse-5945"><span class="linenos">5945</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-5946"><a href="#maybe_parse-5946"><span class="linenos">5946</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
-</span><span id="maybe_parse-5947"><a href="#maybe_parse-5947"><span class="linenos">5947</span></a>
-</span><span id="maybe_parse-5948"><a href="#maybe_parse-5948"><span class="linenos">5948</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="maybe_parse-5949"><a href="#maybe_parse-5949"><span class="linenos">5949</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
-</span><span id="maybe_parse-5950"><a href="#maybe_parse-5950"><span class="linenos">5950</span></a>
-</span><span id="maybe_parse-5951"><a href="#maybe_parse-5951"><span class="linenos">5951</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
-</span><span id="maybe_parse-5952"><a href="#maybe_parse-5952"><span class="linenos">5952</span></a>
-</span><span id="maybe_parse-5953"><a href="#maybe_parse-5953"><span class="linenos">5953</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-5954"><a href="#maybe_parse-5954"><span class="linenos">5954</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
-</span><span id="maybe_parse-5955"><a href="#maybe_parse-5955"><span class="linenos">5955</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-5956"><a href="#maybe_parse-5956"><span class="linenos">5956</span></a>
-</span><span id="maybe_parse-5957"><a href="#maybe_parse-5957"><span class="linenos">5957</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-5943"><a href="#maybe_parse-5943"><span class="linenos">5943</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
+</span><span id="maybe_parse-5944"><a href="#maybe_parse-5944"><span class="linenos">5944</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="maybe_parse-5945"><a href="#maybe_parse-5945"><span class="linenos">5945</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="maybe_parse-5946"><a href="#maybe_parse-5946"><span class="linenos">5946</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-5947"><a href="#maybe_parse-5947"><span class="linenos">5947</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-5948"><a href="#maybe_parse-5948"><span class="linenos">5948</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-5949"><a href="#maybe_parse-5949"><span class="linenos">5949</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-5950"><a href="#maybe_parse-5950"><span class="linenos">5950</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="maybe_parse-5951"><a href="#maybe_parse-5951"><span class="linenos">5951</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-5952"><a href="#maybe_parse-5952"><span class="linenos">5952</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-5953"><a href="#maybe_parse-5953"><span class="linenos">5953</span></a>
+</span><span id="maybe_parse-5954"><a href="#maybe_parse-5954"><span class="linenos">5954</span></a><span class="sd"> Example:</span>
+</span><span id="maybe_parse-5955"><a href="#maybe_parse-5955"><span class="linenos">5955</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
+</span><span id="maybe_parse-5956"><a href="#maybe_parse-5956"><span class="linenos">5956</span></a><span class="sd"> Literal(this=1, is_string=False)</span>
+</span><span id="maybe_parse-5957"><a href="#maybe_parse-5957"><span class="linenos">5957</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
+</span><span id="maybe_parse-5958"><a href="#maybe_parse-5958"><span class="linenos">5958</span></a><span class="sd"> Identifier(this=x, quoted=False)</span>
+</span><span id="maybe_parse-5959"><a href="#maybe_parse-5959"><span class="linenos">5959</span></a>
+</span><span id="maybe_parse-5960"><a href="#maybe_parse-5960"><span class="linenos">5960</span></a><span class="sd"> Args:</span>
+</span><span id="maybe_parse-5961"><a href="#maybe_parse-5961"><span class="linenos">5961</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
+</span><span id="maybe_parse-5962"><a href="#maybe_parse-5962"><span class="linenos">5962</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
+</span><span id="maybe_parse-5963"><a href="#maybe_parse-5963"><span class="linenos">5963</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-5964"><a href="#maybe_parse-5964"><span class="linenos">5964</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="maybe_parse-5965"><a href="#maybe_parse-5965"><span class="linenos">5965</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
+</span><span id="maybe_parse-5966"><a href="#maybe_parse-5966"><span class="linenos">5966</span></a><span class="sd"> (automatically includes a space)</span>
+</span><span id="maybe_parse-5967"><a href="#maybe_parse-5967"><span class="linenos">5967</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="maybe_parse-5968"><a href="#maybe_parse-5968"><span class="linenos">5968</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-5969"><a href="#maybe_parse-5969"><span class="linenos">5969</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="maybe_parse-5970"><a href="#maybe_parse-5970"><span class="linenos">5970</span></a>
+</span><span id="maybe_parse-5971"><a href="#maybe_parse-5971"><span class="linenos">5971</span></a><span class="sd"> Returns:</span>
+</span><span id="maybe_parse-5972"><a href="#maybe_parse-5972"><span class="linenos">5972</span></a><span class="sd"> Expression: the parsed or given expression.</span>
+</span><span id="maybe_parse-5973"><a href="#maybe_parse-5973"><span class="linenos">5973</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="maybe_parse-5974"><a href="#maybe_parse-5974"><span class="linenos">5974</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-5975"><a href="#maybe_parse-5975"><span class="linenos">5975</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
+</span><span id="maybe_parse-5976"><a href="#maybe_parse-5976"><span class="linenos">5976</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-5977"><a href="#maybe_parse-5977"><span class="linenos">5977</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
+</span><span id="maybe_parse-5978"><a href="#maybe_parse-5978"><span class="linenos">5978</span></a>
+</span><span id="maybe_parse-5979"><a href="#maybe_parse-5979"><span class="linenos">5979</span></a> <span class="k">if</span> <span class="n">sql_or_expression</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="maybe_parse-5980"><a href="#maybe_parse-5980"><span class="linenos">5980</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span><span class="s2">&quot;SQL cannot be None&quot;</span><span class="p">)</span>
+</span><span id="maybe_parse-5981"><a href="#maybe_parse-5981"><span class="linenos">5981</span></a>
+</span><span id="maybe_parse-5982"><a href="#maybe_parse-5982"><span class="linenos">5982</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
+</span><span id="maybe_parse-5983"><a href="#maybe_parse-5983"><span class="linenos">5983</span></a>
+</span><span id="maybe_parse-5984"><a href="#maybe_parse-5984"><span class="linenos">5984</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-5985"><a href="#maybe_parse-5985"><span class="linenos">5985</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
+</span><span id="maybe_parse-5986"><a href="#maybe_parse-5986"><span class="linenos">5986</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-5987"><a href="#maybe_parse-5987"><span class="linenos">5987</span></a>
+</span><span id="maybe_parse-5988"><a href="#maybe_parse-5988"><span class="linenos">5988</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>
@@ -94883,8 +95509,8 @@ that an input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#maybe_copy"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-5968"><a href="#maybe_copy-5968"><span class="linenos">5968</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="maybe_copy-5969"><a href="#maybe_copy-5969"><span class="linenos">5969</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_copy-5999"><a href="#maybe_copy-5999"><span class="linenos">5999</span></a><span class="k">def</span> <span class="nf">maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="maybe_copy-6000"><a href="#maybe_copy-6000"><span class="linenos">6000</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="ow">and</span> <span class="n">instance</span> <span class="k">else</span> <span class="n">instance</span>
</span></pre></div>
@@ -94902,38 +95528,38 @@ 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-6183"><a href="#union-6183"><span class="linenos">6183</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
-</span><span id="union-6184"><a href="#union-6184"><span class="linenos">6184</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="union-6185"><a href="#union-6185"><span class="linenos">6185</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="union-6186"><a href="#union-6186"><span class="linenos">6186</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="union-6187"><a href="#union-6187"><span class="linenos">6187</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="union-6188"><a href="#union-6188"><span class="linenos">6188</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="union-6189"><a href="#union-6189"><span class="linenos">6189</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="union-6190"><a href="#union-6190"><span class="linenos">6190</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
-</span><span id="union-6191"><a href="#union-6191"><span class="linenos">6191</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="union-6192"><a href="#union-6192"><span class="linenos">6192</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
-</span><span id="union-6193"><a href="#union-6193"><span class="linenos">6193</span></a>
-</span><span id="union-6194"><a href="#union-6194"><span class="linenos">6194</span></a><span class="sd"> Example:</span>
-</span><span id="union-6195"><a href="#union-6195"><span class="linenos">6195</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-6196"><a href="#union-6196"><span class="linenos">6196</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
-</span><span id="union-6197"><a href="#union-6197"><span class="linenos">6197</span></a>
-</span><span id="union-6198"><a href="#union-6198"><span class="linenos">6198</span></a><span class="sd"> Args:</span>
-</span><span id="union-6199"><a href="#union-6199"><span class="linenos">6199</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="union-6200"><a href="#union-6200"><span class="linenos">6200</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-6201"><a href="#union-6201"><span class="linenos">6201</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="union-6202"><a href="#union-6202"><span class="linenos">6202</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="union-6203"><a href="#union-6203"><span class="linenos">6203</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="union-6204"><a href="#union-6204"><span class="linenos">6204</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="union-6205"><a href="#union-6205"><span class="linenos">6205</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="union-6206"><a href="#union-6206"><span class="linenos">6206</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="union-6207"><a href="#union-6207"><span class="linenos">6207</span></a>
-</span><span id="union-6208"><a href="#union-6208"><span class="linenos">6208</span></a><span class="sd"> Returns:</span>
-</span><span id="union-6209"><a href="#union-6209"><span class="linenos">6209</span></a><span class="sd"> The new Union instance.</span>
-</span><span id="union-6210"><a href="#union-6210"><span class="linenos">6210</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="union-6211"><a href="#union-6211"><span class="linenos">6211</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-6212"><a href="#union-6212"><span class="linenos">6212</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="union-6213"><a href="#union-6213"><span class="linenos">6213</span></a>
-</span><span id="union-6214"><a href="#union-6214"><span class="linenos">6214</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="union-6214"><a href="#union-6214"><span class="linenos">6214</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
+</span><span id="union-6215"><a href="#union-6215"><span class="linenos">6215</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="union-6216"><a href="#union-6216"><span class="linenos">6216</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="union-6217"><a href="#union-6217"><span class="linenos">6217</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="union-6218"><a href="#union-6218"><span class="linenos">6218</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="union-6219"><a href="#union-6219"><span class="linenos">6219</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="union-6220"><a href="#union-6220"><span class="linenos">6220</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="union-6221"><a href="#union-6221"><span class="linenos">6221</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
+</span><span id="union-6222"><a href="#union-6222"><span class="linenos">6222</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="union-6223"><a href="#union-6223"><span class="linenos">6223</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
+</span><span id="union-6224"><a href="#union-6224"><span class="linenos">6224</span></a>
+</span><span id="union-6225"><a href="#union-6225"><span class="linenos">6225</span></a><span class="sd"> Example:</span>
+</span><span id="union-6226"><a href="#union-6226"><span class="linenos">6226</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-6227"><a href="#union-6227"><span class="linenos">6227</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
+</span><span id="union-6228"><a href="#union-6228"><span class="linenos">6228</span></a>
+</span><span id="union-6229"><a href="#union-6229"><span class="linenos">6229</span></a><span class="sd"> Args:</span>
+</span><span id="union-6230"><a href="#union-6230"><span class="linenos">6230</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="union-6231"><a href="#union-6231"><span class="linenos">6231</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-6232"><a href="#union-6232"><span class="linenos">6232</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="union-6233"><a href="#union-6233"><span class="linenos">6233</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="union-6234"><a href="#union-6234"><span class="linenos">6234</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="union-6235"><a href="#union-6235"><span class="linenos">6235</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="union-6236"><a href="#union-6236"><span class="linenos">6236</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="union-6237"><a href="#union-6237"><span class="linenos">6237</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="union-6238"><a href="#union-6238"><span class="linenos">6238</span></a>
+</span><span id="union-6239"><a href="#union-6239"><span class="linenos">6239</span></a><span class="sd"> Returns:</span>
+</span><span id="union-6240"><a href="#union-6240"><span class="linenos">6240</span></a><span class="sd"> The new Union instance.</span>
+</span><span id="union-6241"><a href="#union-6241"><span class="linenos">6241</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="union-6242"><a href="#union-6242"><span class="linenos">6242</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-6243"><a href="#union-6243"><span class="linenos">6243</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="union-6244"><a href="#union-6244"><span class="linenos">6244</span></a>
+</span><span id="union-6245"><a href="#union-6245"><span class="linenos">6245</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>
@@ -94982,38 +95608,38 @@ 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-6217"><a href="#intersect-6217"><span class="linenos">6217</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
-</span><span id="intersect-6218"><a href="#intersect-6218"><span class="linenos">6218</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="intersect-6219"><a href="#intersect-6219"><span class="linenos">6219</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="intersect-6220"><a href="#intersect-6220"><span class="linenos">6220</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="intersect-6221"><a href="#intersect-6221"><span class="linenos">6221</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="intersect-6222"><a href="#intersect-6222"><span class="linenos">6222</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="intersect-6223"><a href="#intersect-6223"><span class="linenos">6223</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="intersect-6224"><a href="#intersect-6224"><span class="linenos">6224</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
-</span><span id="intersect-6225"><a href="#intersect-6225"><span class="linenos">6225</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="intersect-6226"><a href="#intersect-6226"><span class="linenos">6226</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
-</span><span id="intersect-6227"><a href="#intersect-6227"><span class="linenos">6227</span></a>
-</span><span id="intersect-6228"><a href="#intersect-6228"><span class="linenos">6228</span></a><span class="sd"> Example:</span>
-</span><span id="intersect-6229"><a href="#intersect-6229"><span class="linenos">6229</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-6230"><a href="#intersect-6230"><span class="linenos">6230</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
-</span><span id="intersect-6231"><a href="#intersect-6231"><span class="linenos">6231</span></a>
-</span><span id="intersect-6232"><a href="#intersect-6232"><span class="linenos">6232</span></a><span class="sd"> Args:</span>
-</span><span id="intersect-6233"><a href="#intersect-6233"><span class="linenos">6233</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="intersect-6234"><a href="#intersect-6234"><span class="linenos">6234</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-6235"><a href="#intersect-6235"><span class="linenos">6235</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="intersect-6236"><a href="#intersect-6236"><span class="linenos">6236</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="intersect-6237"><a href="#intersect-6237"><span class="linenos">6237</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="intersect-6238"><a href="#intersect-6238"><span class="linenos">6238</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="intersect-6239"><a href="#intersect-6239"><span class="linenos">6239</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="intersect-6240"><a href="#intersect-6240"><span class="linenos">6240</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="intersect-6241"><a href="#intersect-6241"><span class="linenos">6241</span></a>
-</span><span id="intersect-6242"><a href="#intersect-6242"><span class="linenos">6242</span></a><span class="sd"> Returns:</span>
-</span><span id="intersect-6243"><a href="#intersect-6243"><span class="linenos">6243</span></a><span class="sd"> The new Intersect instance.</span>
-</span><span id="intersect-6244"><a href="#intersect-6244"><span class="linenos">6244</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="intersect-6245"><a href="#intersect-6245"><span class="linenos">6245</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-6246"><a href="#intersect-6246"><span class="linenos">6246</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="intersect-6247"><a href="#intersect-6247"><span class="linenos">6247</span></a>
-</span><span id="intersect-6248"><a href="#intersect-6248"><span class="linenos">6248</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-6248"><a href="#intersect-6248"><span class="linenos">6248</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
+</span><span id="intersect-6249"><a href="#intersect-6249"><span class="linenos">6249</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="intersect-6250"><a href="#intersect-6250"><span class="linenos">6250</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="intersect-6251"><a href="#intersect-6251"><span class="linenos">6251</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="intersect-6252"><a href="#intersect-6252"><span class="linenos">6252</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="intersect-6253"><a href="#intersect-6253"><span class="linenos">6253</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="intersect-6254"><a href="#intersect-6254"><span class="linenos">6254</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="intersect-6255"><a href="#intersect-6255"><span class="linenos">6255</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
+</span><span id="intersect-6256"><a href="#intersect-6256"><span class="linenos">6256</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="intersect-6257"><a href="#intersect-6257"><span class="linenos">6257</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
+</span><span id="intersect-6258"><a href="#intersect-6258"><span class="linenos">6258</span></a>
+</span><span id="intersect-6259"><a href="#intersect-6259"><span class="linenos">6259</span></a><span class="sd"> Example:</span>
+</span><span id="intersect-6260"><a href="#intersect-6260"><span class="linenos">6260</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-6261"><a href="#intersect-6261"><span class="linenos">6261</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
+</span><span id="intersect-6262"><a href="#intersect-6262"><span class="linenos">6262</span></a>
+</span><span id="intersect-6263"><a href="#intersect-6263"><span class="linenos">6263</span></a><span class="sd"> Args:</span>
+</span><span id="intersect-6264"><a href="#intersect-6264"><span class="linenos">6264</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="intersect-6265"><a href="#intersect-6265"><span class="linenos">6265</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-6266"><a href="#intersect-6266"><span class="linenos">6266</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="intersect-6267"><a href="#intersect-6267"><span class="linenos">6267</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="intersect-6268"><a href="#intersect-6268"><span class="linenos">6268</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="intersect-6269"><a href="#intersect-6269"><span class="linenos">6269</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="intersect-6270"><a href="#intersect-6270"><span class="linenos">6270</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="intersect-6271"><a href="#intersect-6271"><span class="linenos">6271</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="intersect-6272"><a href="#intersect-6272"><span class="linenos">6272</span></a>
+</span><span id="intersect-6273"><a href="#intersect-6273"><span class="linenos">6273</span></a><span class="sd"> Returns:</span>
+</span><span id="intersect-6274"><a href="#intersect-6274"><span class="linenos">6274</span></a><span class="sd"> The new Intersect instance.</span>
+</span><span id="intersect-6275"><a href="#intersect-6275"><span class="linenos">6275</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="intersect-6276"><a href="#intersect-6276"><span class="linenos">6276</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-6277"><a href="#intersect-6277"><span class="linenos">6277</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="intersect-6278"><a href="#intersect-6278"><span class="linenos">6278</span></a>
+</span><span id="intersect-6279"><a href="#intersect-6279"><span class="linenos">6279</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>
@@ -95062,38 +95688,38 @@ 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_-6251"><a href="#except_-6251"><span class="linenos">6251</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
-</span><span id="except_-6252"><a href="#except_-6252"><span class="linenos">6252</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="except_-6253"><a href="#except_-6253"><span class="linenos">6253</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="except_-6254"><a href="#except_-6254"><span class="linenos">6254</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="except_-6255"><a href="#except_-6255"><span class="linenos">6255</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="except_-6256"><a href="#except_-6256"><span class="linenos">6256</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="except_-6257"><a href="#except_-6257"><span class="linenos">6257</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="except_-6258"><a href="#except_-6258"><span class="linenos">6258</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
-</span><span id="except_-6259"><a href="#except_-6259"><span class="linenos">6259</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="except_-6260"><a href="#except_-6260"><span class="linenos">6260</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
-</span><span id="except_-6261"><a href="#except_-6261"><span class="linenos">6261</span></a>
-</span><span id="except_-6262"><a href="#except_-6262"><span class="linenos">6262</span></a><span class="sd"> Example:</span>
-</span><span id="except_-6263"><a href="#except_-6263"><span class="linenos">6263</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_-6264"><a href="#except_-6264"><span class="linenos">6264</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
-</span><span id="except_-6265"><a href="#except_-6265"><span class="linenos">6265</span></a>
-</span><span id="except_-6266"><a href="#except_-6266"><span class="linenos">6266</span></a><span class="sd"> Args:</span>
-</span><span id="except_-6267"><a href="#except_-6267"><span class="linenos">6267</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
-</span><span id="except_-6268"><a href="#except_-6268"><span class="linenos">6268</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-6269"><a href="#except_-6269"><span class="linenos">6269</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
-</span><span id="except_-6270"><a href="#except_-6270"><span class="linenos">6270</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
-</span><span id="except_-6271"><a href="#except_-6271"><span class="linenos">6271</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
-</span><span id="except_-6272"><a href="#except_-6272"><span class="linenos">6272</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="except_-6273"><a href="#except_-6273"><span class="linenos">6273</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="except_-6274"><a href="#except_-6274"><span class="linenos">6274</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
-</span><span id="except_-6275"><a href="#except_-6275"><span class="linenos">6275</span></a>
-</span><span id="except_-6276"><a href="#except_-6276"><span class="linenos">6276</span></a><span class="sd"> Returns:</span>
-</span><span id="except_-6277"><a href="#except_-6277"><span class="linenos">6277</span></a><span class="sd"> The new Except instance.</span>
-</span><span id="except_-6278"><a href="#except_-6278"><span class="linenos">6278</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="except_-6279"><a href="#except_-6279"><span class="linenos">6279</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-6280"><a href="#except_-6280"><span class="linenos">6280</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="except_-6281"><a href="#except_-6281"><span class="linenos">6281</span></a>
-</span><span id="except_-6282"><a href="#except_-6282"><span class="linenos">6282</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="except_-6282"><a href="#except_-6282"><span class="linenos">6282</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
+</span><span id="except_-6283"><a href="#except_-6283"><span class="linenos">6283</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="except_-6284"><a href="#except_-6284"><span class="linenos">6284</span></a> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="except_-6285"><a href="#except_-6285"><span class="linenos">6285</span></a> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="except_-6286"><a href="#except_-6286"><span class="linenos">6286</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="except_-6287"><a href="#except_-6287"><span class="linenos">6287</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="except_-6288"><a href="#except_-6288"><span class="linenos">6288</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="except_-6289"><a href="#except_-6289"><span class="linenos">6289</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
+</span><span id="except_-6290"><a href="#except_-6290"><span class="linenos">6290</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="except_-6291"><a href="#except_-6291"><span class="linenos">6291</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
+</span><span id="except_-6292"><a href="#except_-6292"><span class="linenos">6292</span></a>
+</span><span id="except_-6293"><a href="#except_-6293"><span class="linenos">6293</span></a><span class="sd"> Example:</span>
+</span><span id="except_-6294"><a href="#except_-6294"><span class="linenos">6294</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_-6295"><a href="#except_-6295"><span class="linenos">6295</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
+</span><span id="except_-6296"><a href="#except_-6296"><span class="linenos">6296</span></a>
+</span><span id="except_-6297"><a href="#except_-6297"><span class="linenos">6297</span></a><span class="sd"> Args:</span>
+</span><span id="except_-6298"><a href="#except_-6298"><span class="linenos">6298</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
+</span><span id="except_-6299"><a href="#except_-6299"><span class="linenos">6299</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-6300"><a href="#except_-6300"><span class="linenos">6300</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
+</span><span id="except_-6301"><a href="#except_-6301"><span class="linenos">6301</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
+</span><span id="except_-6302"><a href="#except_-6302"><span class="linenos">6302</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
+</span><span id="except_-6303"><a href="#except_-6303"><span class="linenos">6303</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="except_-6304"><a href="#except_-6304"><span class="linenos">6304</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="except_-6305"><a href="#except_-6305"><span class="linenos">6305</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
+</span><span id="except_-6306"><a href="#except_-6306"><span class="linenos">6306</span></a>
+</span><span id="except_-6307"><a href="#except_-6307"><span class="linenos">6307</span></a><span class="sd"> Returns:</span>
+</span><span id="except_-6308"><a href="#except_-6308"><span class="linenos">6308</span></a><span class="sd"> The new Except instance.</span>
+</span><span id="except_-6309"><a href="#except_-6309"><span class="linenos">6309</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="except_-6310"><a href="#except_-6310"><span class="linenos">6310</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-6311"><a href="#except_-6311"><span class="linenos">6311</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="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="except_-6312"><a href="#except_-6312"><span class="linenos">6312</span></a>
+</span><span id="except_-6313"><a href="#except_-6313"><span class="linenos">6313</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>
@@ -95142,26 +95768,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-6285"><a href="#select-6285"><span class="linenos">6285</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="select-6286"><a href="#select-6286"><span class="linenos">6286</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="select-6287"><a href="#select-6287"><span class="linenos">6287</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
-</span><span id="select-6288"><a href="#select-6288"><span class="linenos">6288</span></a>
-</span><span id="select-6289"><a href="#select-6289"><span class="linenos">6289</span></a><span class="sd"> Example:</span>
-</span><span id="select-6290"><a href="#select-6290"><span class="linenos">6290</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-6291"><a href="#select-6291"><span class="linenos">6291</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="select-6292"><a href="#select-6292"><span class="linenos">6292</span></a>
-</span><span id="select-6293"><a href="#select-6293"><span class="linenos">6293</span></a><span class="sd"> Args:</span>
-</span><span id="select-6294"><a href="#select-6294"><span class="linenos">6294</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
-</span><span id="select-6295"><a href="#select-6295"><span class="linenos">6295</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="select-6296"><a href="#select-6296"><span class="linenos">6296</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
-</span><span id="select-6297"><a href="#select-6297"><span class="linenos">6297</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="select-6298"><a href="#select-6298"><span class="linenos">6298</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="select-6299"><a href="#select-6299"><span class="linenos">6299</span></a><span class="sd"> that an input expression is a SQL string).</span>
-</span><span id="select-6300"><a href="#select-6300"><span class="linenos">6300</span></a>
-</span><span id="select-6301"><a href="#select-6301"><span class="linenos">6301</span></a><span class="sd"> Returns:</span>
-</span><span id="select-6302"><a href="#select-6302"><span class="linenos">6302</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="select-6303"><a href="#select-6303"><span class="linenos">6303</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="select-6304"><a href="#select-6304"><span class="linenos">6304</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-6316"><a href="#select-6316"><span class="linenos">6316</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="select-6317"><a href="#select-6317"><span class="linenos">6317</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="select-6318"><a href="#select-6318"><span class="linenos">6318</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
+</span><span id="select-6319"><a href="#select-6319"><span class="linenos">6319</span></a>
+</span><span id="select-6320"><a href="#select-6320"><span class="linenos">6320</span></a><span class="sd"> Example:</span>
+</span><span id="select-6321"><a href="#select-6321"><span class="linenos">6321</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-6322"><a href="#select-6322"><span class="linenos">6322</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="select-6323"><a href="#select-6323"><span class="linenos">6323</span></a>
+</span><span id="select-6324"><a href="#select-6324"><span class="linenos">6324</span></a><span class="sd"> Args:</span>
+</span><span id="select-6325"><a href="#select-6325"><span class="linenos">6325</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
+</span><span id="select-6326"><a href="#select-6326"><span class="linenos">6326</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="select-6327"><a href="#select-6327"><span class="linenos">6327</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
+</span><span id="select-6328"><a href="#select-6328"><span class="linenos">6328</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="select-6329"><a href="#select-6329"><span class="linenos">6329</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="select-6330"><a href="#select-6330"><span class="linenos">6330</span></a><span class="sd"> that an input expression is a SQL string).</span>
+</span><span id="select-6331"><a href="#select-6331"><span class="linenos">6331</span></a>
+</span><span id="select-6332"><a href="#select-6332"><span class="linenos">6332</span></a><span class="sd"> Returns:</span>
+</span><span id="select-6333"><a href="#select-6333"><span class="linenos">6333</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="select-6334"><a href="#select-6334"><span class="linenos">6334</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="select-6335"><a href="#select-6335"><span class="linenos">6335</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>
@@ -95208,26 +95834,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_-6307"><a href="#from_-6307"><span class="linenos">6307</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="from_-6308"><a href="#from_-6308"><span class="linenos">6308</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="from_-6309"><a href="#from_-6309"><span class="linenos">6309</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
-</span><span id="from_-6310"><a href="#from_-6310"><span class="linenos">6310</span></a>
-</span><span id="from_-6311"><a href="#from_-6311"><span class="linenos">6311</span></a><span class="sd"> Example:</span>
-</span><span id="from_-6312"><a href="#from_-6312"><span class="linenos">6312</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_-6313"><a href="#from_-6313"><span class="linenos">6313</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
-</span><span id="from_-6314"><a href="#from_-6314"><span class="linenos">6314</span></a>
-</span><span id="from_-6315"><a href="#from_-6315"><span class="linenos">6315</span></a><span class="sd"> Args:</span>
-</span><span id="from_-6316"><a href="#from_-6316"><span class="linenos">6316</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
-</span><span id="from_-6317"><a href="#from_-6317"><span class="linenos">6317</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
-</span><span id="from_-6318"><a href="#from_-6318"><span class="linenos">6318</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="from_-6319"><a href="#from_-6319"><span class="linenos">6319</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="from_-6320"><a href="#from_-6320"><span class="linenos">6320</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="from_-6321"><a href="#from_-6321"><span class="linenos">6321</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="from_-6322"><a href="#from_-6322"><span class="linenos">6322</span></a>
-</span><span id="from_-6323"><a href="#from_-6323"><span class="linenos">6323</span></a><span class="sd"> Returns:</span>
-</span><span id="from_-6324"><a href="#from_-6324"><span class="linenos">6324</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
-</span><span id="from_-6325"><a href="#from_-6325"><span class="linenos">6325</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="from_-6326"><a href="#from_-6326"><span class="linenos">6326</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="from_-6338"><a href="#from_-6338"><span class="linenos">6338</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="from_-6339"><a href="#from_-6339"><span class="linenos">6339</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="from_-6340"><a href="#from_-6340"><span class="linenos">6340</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
+</span><span id="from_-6341"><a href="#from_-6341"><span class="linenos">6341</span></a>
+</span><span id="from_-6342"><a href="#from_-6342"><span class="linenos">6342</span></a><span class="sd"> Example:</span>
+</span><span id="from_-6343"><a href="#from_-6343"><span class="linenos">6343</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_-6344"><a href="#from_-6344"><span class="linenos">6344</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
+</span><span id="from_-6345"><a href="#from_-6345"><span class="linenos">6345</span></a>
+</span><span id="from_-6346"><a href="#from_-6346"><span class="linenos">6346</span></a><span class="sd"> Args:</span>
+</span><span id="from_-6347"><a href="#from_-6347"><span class="linenos">6347</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
+</span><span id="from_-6348"><a href="#from_-6348"><span class="linenos">6348</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
+</span><span id="from_-6349"><a href="#from_-6349"><span class="linenos">6349</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="from_-6350"><a href="#from_-6350"><span class="linenos">6350</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="from_-6351"><a href="#from_-6351"><span class="linenos">6351</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="from_-6352"><a href="#from_-6352"><span class="linenos">6352</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="from_-6353"><a href="#from_-6353"><span class="linenos">6353</span></a>
+</span><span id="from_-6354"><a href="#from_-6354"><span class="linenos">6354</span></a><span class="sd"> Returns:</span>
+</span><span id="from_-6355"><a href="#from_-6355"><span class="linenos">6355</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
+</span><span id="from_-6356"><a href="#from_-6356"><span class="linenos">6356</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="from_-6357"><a href="#from_-6357"><span class="linenos">6357</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>
@@ -95274,53 +95900,53 @@ that the input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#update"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="update-6329"><a href="#update-6329"><span class="linenos">6329</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
-</span><span id="update-6330"><a href="#update-6330"><span class="linenos">6330</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
-</span><span id="update-6331"><a href="#update-6331"><span class="linenos">6331</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
-</span><span id="update-6332"><a href="#update-6332"><span class="linenos">6332</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="update-6333"><a href="#update-6333"><span class="linenos">6333</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="update-6334"><a href="#update-6334"><span class="linenos">6334</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="update-6335"><a href="#update-6335"><span class="linenos">6335</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="update-6336"><a href="#update-6336"><span class="linenos">6336</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
-</span><span id="update-6337"><a href="#update-6337"><span class="linenos">6337</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="update-6338"><a href="#update-6338"><span class="linenos">6338</span></a><span class="sd"> Creates an update statement.</span>
-</span><span id="update-6339"><a href="#update-6339"><span class="linenos">6339</span></a>
-</span><span id="update-6340"><a href="#update-6340"><span class="linenos">6340</span></a><span class="sd"> Example:</span>
-</span><span id="update-6341"><a href="#update-6341"><span class="linenos">6341</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-6342"><a href="#update-6342"><span class="linenos">6342</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-6343"><a href="#update-6343"><span class="linenos">6343</span></a>
-</span><span id="update-6344"><a href="#update-6344"><span class="linenos">6344</span></a><span class="sd"> Args:</span>
-</span><span id="update-6345"><a href="#update-6345"><span class="linenos">6345</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
-</span><span id="update-6346"><a href="#update-6346"><span class="linenos">6346</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
-</span><span id="update-6347"><a href="#update-6347"><span class="linenos">6347</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="update-6348"><a href="#update-6348"><span class="linenos">6348</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
-</span><span id="update-6349"><a href="#update-6349"><span class="linenos">6349</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="update-6350"><a href="#update-6350"><span class="linenos">6350</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="update-6351"><a href="#update-6351"><span class="linenos">6351</span></a>
-</span><span id="update-6352"><a href="#update-6352"><span class="linenos">6352</span></a><span class="sd"> Returns:</span>
-</span><span id="update-6353"><a href="#update-6353"><span class="linenos">6353</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
-</span><span id="update-6354"><a href="#update-6354"><span class="linenos">6354</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="update-6355"><a href="#update-6355"><span class="linenos">6355</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
-</span><span id="update-6356"><a href="#update-6356"><span class="linenos">6356</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-6357"><a href="#update-6357"><span class="linenos">6357</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
-</span><span id="update-6358"><a href="#update-6358"><span class="linenos">6358</span></a> <span class="p">[</span>
-</span><span id="update-6359"><a href="#update-6359"><span class="linenos">6359</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-6360"><a href="#update-6360"><span class="linenos">6360</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-6361"><a href="#update-6361"><span class="linenos">6361</span></a> <span class="p">],</span>
-</span><span id="update-6362"><a href="#update-6362"><span class="linenos">6362</span></a> <span class="p">)</span>
-</span><span id="update-6363"><a href="#update-6363"><span class="linenos">6363</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
-</span><span id="update-6364"><a href="#update-6364"><span class="linenos">6364</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-6365"><a href="#update-6365"><span class="linenos">6365</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
-</span><span id="update-6366"><a href="#update-6366"><span class="linenos">6366</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-6367"><a href="#update-6367"><span class="linenos">6367</span></a> <span class="p">)</span>
-</span><span id="update-6368"><a href="#update-6368"><span class="linenos">6368</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-6369"><a href="#update-6369"><span class="linenos">6369</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-6370"><a href="#update-6370"><span class="linenos">6370</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="update-6371"><a href="#update-6371"><span class="linenos">6371</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
-</span><span id="update-6372"><a href="#update-6372"><span class="linenos">6372</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
-</span><span id="update-6373"><a href="#update-6373"><span class="linenos">6373</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-6374"><a href="#update-6374"><span class="linenos">6374</span></a> <span class="p">)</span>
-</span><span id="update-6375"><a href="#update-6375"><span class="linenos">6375</span></a> <span class="k">return</span> <span class="n">update_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="update-6360"><a href="#update-6360"><span class="linenos">6360</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
+</span><span id="update-6361"><a href="#update-6361"><span class="linenos">6361</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
+</span><span id="update-6362"><a href="#update-6362"><span class="linenos">6362</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+</span><span id="update-6363"><a href="#update-6363"><span class="linenos">6363</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="update-6364"><a href="#update-6364"><span class="linenos">6364</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="update-6365"><a href="#update-6365"><span class="linenos">6365</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="update-6366"><a href="#update-6366"><span class="linenos">6366</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="update-6367"><a href="#update-6367"><span class="linenos">6367</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
+</span><span id="update-6368"><a href="#update-6368"><span class="linenos">6368</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="update-6369"><a href="#update-6369"><span class="linenos">6369</span></a><span class="sd"> Creates an update statement.</span>
+</span><span id="update-6370"><a href="#update-6370"><span class="linenos">6370</span></a>
+</span><span id="update-6371"><a href="#update-6371"><span class="linenos">6371</span></a><span class="sd"> Example:</span>
+</span><span id="update-6372"><a href="#update-6372"><span class="linenos">6372</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-6373"><a href="#update-6373"><span class="linenos">6373</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-6374"><a href="#update-6374"><span class="linenos">6374</span></a>
+</span><span id="update-6375"><a href="#update-6375"><span class="linenos">6375</span></a><span class="sd"> Args:</span>
+</span><span id="update-6376"><a href="#update-6376"><span class="linenos">6376</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
+</span><span id="update-6377"><a href="#update-6377"><span class="linenos">6377</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
+</span><span id="update-6378"><a href="#update-6378"><span class="linenos">6378</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="update-6379"><a href="#update-6379"><span class="linenos">6379</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
+</span><span id="update-6380"><a href="#update-6380"><span class="linenos">6380</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="update-6381"><a href="#update-6381"><span class="linenos">6381</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="update-6382"><a href="#update-6382"><span class="linenos">6382</span></a>
+</span><span id="update-6383"><a href="#update-6383"><span class="linenos">6383</span></a><span class="sd"> Returns:</span>
+</span><span id="update-6384"><a href="#update-6384"><span class="linenos">6384</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
+</span><span id="update-6385"><a href="#update-6385"><span class="linenos">6385</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="update-6386"><a href="#update-6386"><span class="linenos">6386</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
+</span><span id="update-6387"><a href="#update-6387"><span class="linenos">6387</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-6388"><a href="#update-6388"><span class="linenos">6388</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
+</span><span id="update-6389"><a href="#update-6389"><span class="linenos">6389</span></a> <span class="p">[</span>
+</span><span id="update-6390"><a href="#update-6390"><span class="linenos">6390</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-6391"><a href="#update-6391"><span class="linenos">6391</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-6392"><a href="#update-6392"><span class="linenos">6392</span></a> <span class="p">],</span>
+</span><span id="update-6393"><a href="#update-6393"><span class="linenos">6393</span></a> <span class="p">)</span>
+</span><span id="update-6394"><a href="#update-6394"><span class="linenos">6394</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
+</span><span id="update-6395"><a href="#update-6395"><span class="linenos">6395</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-6396"><a href="#update-6396"><span class="linenos">6396</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
+</span><span id="update-6397"><a href="#update-6397"><span class="linenos">6397</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-6398"><a href="#update-6398"><span class="linenos">6398</span></a> <span class="p">)</span>
+</span><span id="update-6399"><a href="#update-6399"><span class="linenos">6399</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-6400"><a href="#update-6400"><span class="linenos">6400</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-6401"><a href="#update-6401"><span class="linenos">6401</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="update-6402"><a href="#update-6402"><span class="linenos">6402</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+</span><span id="update-6403"><a href="#update-6403"><span class="linenos">6403</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
+</span><span id="update-6404"><a href="#update-6404"><span class="linenos">6404</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-6405"><a href="#update-6405"><span class="linenos">6405</span></a> <span class="p">)</span>
+</span><span id="update-6406"><a href="#update-6406"><span class="linenos">6406</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
@@ -95367,37 +95993,37 @@ 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-6378"><a href="#delete-6378"><span class="linenos">6378</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
-</span><span id="delete-6379"><a href="#delete-6379"><span class="linenos">6379</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="delete-6380"><a href="#delete-6380"><span class="linenos">6380</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="delete-6381"><a href="#delete-6381"><span class="linenos">6381</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="delete-6382"><a href="#delete-6382"><span class="linenos">6382</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="delete-6383"><a href="#delete-6383"><span class="linenos">6383</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="delete-6384"><a href="#delete-6384"><span class="linenos">6384</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
-</span><span id="delete-6385"><a href="#delete-6385"><span class="linenos">6385</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="delete-6386"><a href="#delete-6386"><span class="linenos">6386</span></a><span class="sd"> Builds a delete statement.</span>
-</span><span id="delete-6387"><a href="#delete-6387"><span class="linenos">6387</span></a>
-</span><span id="delete-6388"><a href="#delete-6388"><span class="linenos">6388</span></a><span class="sd"> Example:</span>
-</span><span id="delete-6389"><a href="#delete-6389"><span class="linenos">6389</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-6390"><a href="#delete-6390"><span class="linenos">6390</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
-</span><span id="delete-6391"><a href="#delete-6391"><span class="linenos">6391</span></a>
-</span><span id="delete-6392"><a href="#delete-6392"><span class="linenos">6392</span></a><span class="sd"> Args:</span>
-</span><span id="delete-6393"><a href="#delete-6393"><span class="linenos">6393</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
-</span><span id="delete-6394"><a href="#delete-6394"><span class="linenos">6394</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="delete-6395"><a href="#delete-6395"><span class="linenos">6395</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="delete-6396"><a href="#delete-6396"><span class="linenos">6396</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="delete-6397"><a href="#delete-6397"><span class="linenos">6397</span></a>
-</span><span id="delete-6398"><a href="#delete-6398"><span class="linenos">6398</span></a><span class="sd"> Returns:</span>
-</span><span id="delete-6399"><a href="#delete-6399"><span class="linenos">6399</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
-</span><span id="delete-6400"><a href="#delete-6400"><span class="linenos">6400</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="delete-6401"><a href="#delete-6401"><span class="linenos">6401</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-6402"><a href="#delete-6402"><span class="linenos">6402</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
-</span><span id="delete-6403"><a href="#delete-6403"><span class="linenos">6403</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-6404"><a href="#delete-6404"><span class="linenos">6404</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="delete-6405"><a href="#delete-6405"><span class="linenos">6405</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
-</span><span id="delete-6406"><a href="#delete-6406"><span class="linenos">6406</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="delete-6407"><a href="#delete-6407"><span class="linenos">6407</span></a> <span class="p">)</span>
-</span><span id="delete-6408"><a href="#delete-6408"><span class="linenos">6408</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="delete-6409"><a href="#delete-6409"><span class="linenos">6409</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
+</span><span id="delete-6410"><a href="#delete-6410"><span class="linenos">6410</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="delete-6411"><a href="#delete-6411"><span class="linenos">6411</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="delete-6412"><a href="#delete-6412"><span class="linenos">6412</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="delete-6413"><a href="#delete-6413"><span class="linenos">6413</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="delete-6414"><a href="#delete-6414"><span class="linenos">6414</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="delete-6415"><a href="#delete-6415"><span class="linenos">6415</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
+</span><span id="delete-6416"><a href="#delete-6416"><span class="linenos">6416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="delete-6417"><a href="#delete-6417"><span class="linenos">6417</span></a><span class="sd"> Builds a delete statement.</span>
+</span><span id="delete-6418"><a href="#delete-6418"><span class="linenos">6418</span></a>
+</span><span id="delete-6419"><a href="#delete-6419"><span class="linenos">6419</span></a><span class="sd"> Example:</span>
+</span><span id="delete-6420"><a href="#delete-6420"><span class="linenos">6420</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-6421"><a href="#delete-6421"><span class="linenos">6421</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
+</span><span id="delete-6422"><a href="#delete-6422"><span class="linenos">6422</span></a>
+</span><span id="delete-6423"><a href="#delete-6423"><span class="linenos">6423</span></a><span class="sd"> Args:</span>
+</span><span id="delete-6424"><a href="#delete-6424"><span class="linenos">6424</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
+</span><span id="delete-6425"><a href="#delete-6425"><span class="linenos">6425</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="delete-6426"><a href="#delete-6426"><span class="linenos">6426</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="delete-6427"><a href="#delete-6427"><span class="linenos">6427</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="delete-6428"><a href="#delete-6428"><span class="linenos">6428</span></a>
+</span><span id="delete-6429"><a href="#delete-6429"><span class="linenos">6429</span></a><span class="sd"> Returns:</span>
+</span><span id="delete-6430"><a href="#delete-6430"><span class="linenos">6430</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
+</span><span id="delete-6431"><a href="#delete-6431"><span class="linenos">6431</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="delete-6432"><a href="#delete-6432"><span class="linenos">6432</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-6433"><a href="#delete-6433"><span class="linenos">6433</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
+</span><span id="delete-6434"><a href="#delete-6434"><span class="linenos">6434</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-6435"><a href="#delete-6435"><span class="linenos">6435</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="delete-6436"><a href="#delete-6436"><span class="linenos">6436</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span>
+</span><span id="delete-6437"><a href="#delete-6437"><span class="linenos">6437</span></a> <span class="n">Delete</span><span class="p">,</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="delete-6438"><a href="#delete-6438"><span class="linenos">6438</span></a> <span class="p">)</span>
+</span><span id="delete-6439"><a href="#delete-6439"><span class="linenos">6439</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
@@ -95442,48 +96068,48 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#insert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="insert-6411"><a href="#insert-6411"><span class="linenos">6411</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
-</span><span id="insert-6412"><a href="#insert-6412"><span class="linenos">6412</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-6413"><a href="#insert-6413"><span class="linenos">6413</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="insert-6414"><a href="#insert-6414"><span class="linenos">6414</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="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="insert-6415"><a href="#insert-6415"><span class="linenos">6415</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-6416"><a href="#insert-6416"><span class="linenos">6416</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-6417"><a href="#insert-6417"><span class="linenos">6417</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="insert-6418"><a href="#insert-6418"><span class="linenos">6418</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="insert-6419"><a href="#insert-6419"><span class="linenos">6419</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="insert-6420"><a href="#insert-6420"><span class="linenos">6420</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
-</span><span id="insert-6421"><a href="#insert-6421"><span class="linenos">6421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="insert-6422"><a href="#insert-6422"><span class="linenos">6422</span></a><span class="sd"> Builds an INSERT statement.</span>
-</span><span id="insert-6423"><a href="#insert-6423"><span class="linenos">6423</span></a>
-</span><span id="insert-6424"><a href="#insert-6424"><span class="linenos">6424</span></a><span class="sd"> Example:</span>
-</span><span id="insert-6425"><a href="#insert-6425"><span class="linenos">6425</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
-</span><span id="insert-6426"><a href="#insert-6426"><span class="linenos">6426</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
-</span><span id="insert-6427"><a href="#insert-6427"><span class="linenos">6427</span></a>
-</span><span id="insert-6428"><a href="#insert-6428"><span class="linenos">6428</span></a><span class="sd"> Args:</span>
-</span><span id="insert-6429"><a href="#insert-6429"><span class="linenos">6429</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
-</span><span id="insert-6430"><a href="#insert-6430"><span class="linenos">6430</span></a><span class="sd"> into: the tbl to insert data to.</span>
-</span><span id="insert-6431"><a href="#insert-6431"><span class="linenos">6431</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
-</span><span id="insert-6432"><a href="#insert-6432"><span class="linenos">6432</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
-</span><span id="insert-6433"><a href="#insert-6433"><span class="linenos">6433</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
-</span><span id="insert-6434"><a href="#insert-6434"><span class="linenos">6434</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
-</span><span id="insert-6435"><a href="#insert-6435"><span class="linenos">6435</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="insert-6436"><a href="#insert-6436"><span class="linenos">6436</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="insert-6437"><a href="#insert-6437"><span class="linenos">6437</span></a>
-</span><span id="insert-6438"><a href="#insert-6438"><span class="linenos">6438</span></a><span class="sd"> Returns:</span>
-</span><span id="insert-6439"><a href="#insert-6439"><span class="linenos">6439</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
-</span><span id="insert-6440"><a href="#insert-6440"><span class="linenos">6440</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="insert-6441"><a href="#insert-6441"><span class="linenos">6441</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="insert-6442"><a href="#insert-6442"><span class="linenos">6442</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="insert-6443"><a href="#insert-6443"><span class="linenos">6443</span></a>
-</span><span id="insert-6444"><a href="#insert-6444"><span class="linenos">6444</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
-</span><span id="insert-6445"><a href="#insert-6445"><span class="linenos">6445</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
-</span><span id="insert-6446"><a href="#insert-6446"><span class="linenos">6446</span></a>
-</span><span id="insert-6447"><a href="#insert-6447"><span class="linenos">6447</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
-</span><span id="insert-6448"><a href="#insert-6448"><span class="linenos">6448</span></a>
-</span><span id="insert-6449"><a href="#insert-6449"><span class="linenos">6449</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
-</span><span id="insert-6450"><a href="#insert-6450"><span class="linenos">6450</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
-</span><span id="insert-6451"><a href="#insert-6451"><span class="linenos">6451</span></a>
-</span><span id="insert-6452"><a href="#insert-6452"><span class="linenos">6452</span></a> <span class="k">return</span> <span class="n">insert</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="insert-6442"><a href="#insert-6442"><span class="linenos">6442</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
+</span><span id="insert-6443"><a href="#insert-6443"><span class="linenos">6443</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-6444"><a href="#insert-6444"><span class="linenos">6444</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="insert-6445"><a href="#insert-6445"><span class="linenos">6445</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="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="insert-6446"><a href="#insert-6446"><span class="linenos">6446</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-6447"><a href="#insert-6447"><span class="linenos">6447</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-6448"><a href="#insert-6448"><span class="linenos">6448</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="insert-6449"><a href="#insert-6449"><span class="linenos">6449</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="insert-6450"><a href="#insert-6450"><span class="linenos">6450</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="insert-6451"><a href="#insert-6451"><span class="linenos">6451</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
+</span><span id="insert-6452"><a href="#insert-6452"><span class="linenos">6452</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="insert-6453"><a href="#insert-6453"><span class="linenos">6453</span></a><span class="sd"> Builds an INSERT statement.</span>
+</span><span id="insert-6454"><a href="#insert-6454"><span class="linenos">6454</span></a>
+</span><span id="insert-6455"><a href="#insert-6455"><span class="linenos">6455</span></a><span class="sd"> Example:</span>
+</span><span id="insert-6456"><a href="#insert-6456"><span class="linenos">6456</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
+</span><span id="insert-6457"><a href="#insert-6457"><span class="linenos">6457</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
+</span><span id="insert-6458"><a href="#insert-6458"><span class="linenos">6458</span></a>
+</span><span id="insert-6459"><a href="#insert-6459"><span class="linenos">6459</span></a><span class="sd"> Args:</span>
+</span><span id="insert-6460"><a href="#insert-6460"><span class="linenos">6460</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
+</span><span id="insert-6461"><a href="#insert-6461"><span class="linenos">6461</span></a><span class="sd"> into: the tbl to insert data to.</span>
+</span><span id="insert-6462"><a href="#insert-6462"><span class="linenos">6462</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
+</span><span id="insert-6463"><a href="#insert-6463"><span class="linenos">6463</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
+</span><span id="insert-6464"><a href="#insert-6464"><span class="linenos">6464</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
+</span><span id="insert-6465"><a href="#insert-6465"><span class="linenos">6465</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
+</span><span id="insert-6466"><a href="#insert-6466"><span class="linenos">6466</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="insert-6467"><a href="#insert-6467"><span class="linenos">6467</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="insert-6468"><a href="#insert-6468"><span class="linenos">6468</span></a>
+</span><span id="insert-6469"><a href="#insert-6469"><span class="linenos">6469</span></a><span class="sd"> Returns:</span>
+</span><span id="insert-6470"><a href="#insert-6470"><span class="linenos">6470</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
+</span><span id="insert-6471"><a href="#insert-6471"><span class="linenos">6471</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="insert-6472"><a href="#insert-6472"><span class="linenos">6472</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="insert-6473"><a href="#insert-6473"><span class="linenos">6473</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="insert-6474"><a href="#insert-6474"><span class="linenos">6474</span></a>
+</span><span id="insert-6475"><a href="#insert-6475"><span class="linenos">6475</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
+</span><span id="insert-6476"><a href="#insert-6476"><span class="linenos">6476</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
+</span><span id="insert-6477"><a href="#insert-6477"><span class="linenos">6477</span></a>
+</span><span id="insert-6478"><a href="#insert-6478"><span class="linenos">6478</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
+</span><span id="insert-6479"><a href="#insert-6479"><span class="linenos">6479</span></a>
+</span><span id="insert-6480"><a href="#insert-6480"><span class="linenos">6480</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
+</span><span id="insert-6481"><a href="#insert-6481"><span class="linenos">6481</span></a> <span class="n">insert</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Insert</span><span class="p">,</span> <span class="n">insert</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span><span id="insert-6482"><a href="#insert-6482"><span class="linenos">6482</span></a>
+</span><span id="insert-6483"><a href="#insert-6483"><span class="linenos">6483</span></a> <span class="k">return</span> <span class="n">insert</span>
</span></pre></div>
@@ -95532,41 +96158,41 @@ auto converted to sql objects eg None -> NULL</li>
</div>
<a class="headerlink" href="#condition"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="condition-6455"><a href="#condition-6455"><span class="linenos">6455</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
-</span><span id="condition-6456"><a href="#condition-6456"><span class="linenos">6456</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="condition-6457"><a href="#condition-6457"><span class="linenos">6457</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="condition-6458"><a href="#condition-6458"><span class="linenos">6458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="condition-6459"><a href="#condition-6459"><span class="linenos">6459</span></a><span class="sd"> Initialize a logical condition expression.</span>
-</span><span id="condition-6460"><a href="#condition-6460"><span class="linenos">6460</span></a>
-</span><span id="condition-6461"><a href="#condition-6461"><span class="linenos">6461</span></a><span class="sd"> Example:</span>
-</span><span id="condition-6462"><a href="#condition-6462"><span class="linenos">6462</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
-</span><span id="condition-6463"><a href="#condition-6463"><span class="linenos">6463</span></a><span class="sd"> &#39;x = 1&#39;</span>
-</span><span id="condition-6464"><a href="#condition-6464"><span class="linenos">6464</span></a>
-</span><span id="condition-6465"><a href="#condition-6465"><span class="linenos">6465</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
-</span><span id="condition-6466"><a href="#condition-6466"><span class="linenos">6466</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
-</span><span id="condition-6467"><a href="#condition-6467"><span class="linenos">6467</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
-</span><span id="condition-6468"><a href="#condition-6468"><span class="linenos">6468</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
-</span><span id="condition-6469"><a href="#condition-6469"><span class="linenos">6469</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
-</span><span id="condition-6470"><a href="#condition-6470"><span class="linenos">6470</span></a>
-</span><span id="condition-6471"><a href="#condition-6471"><span class="linenos">6471</span></a><span class="sd"> Args:</span>
-</span><span id="condition-6472"><a href="#condition-6472"><span class="linenos">6472</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
-</span><span id="condition-6473"><a href="#condition-6473"><span class="linenos">6473</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="condition-6474"><a href="#condition-6474"><span class="linenos">6474</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
-</span><span id="condition-6475"><a href="#condition-6475"><span class="linenos">6475</span></a><span class="sd"> input expression is a SQL string).</span>
-</span><span id="condition-6476"><a href="#condition-6476"><span class="linenos">6476</span></a><span class="sd"> copy: Whether to copy `expression` (only applies to expressions).</span>
-</span><span id="condition-6477"><a href="#condition-6477"><span class="linenos">6477</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
-</span><span id="condition-6478"><a href="#condition-6478"><span class="linenos">6478</span></a><span class="sd"> that the input expression is a SQL string).</span>
-</span><span id="condition-6479"><a href="#condition-6479"><span class="linenos">6479</span></a>
-</span><span id="condition-6480"><a href="#condition-6480"><span class="linenos">6480</span></a><span class="sd"> Returns:</span>
-</span><span id="condition-6481"><a href="#condition-6481"><span class="linenos">6481</span></a><span class="sd"> The new Condition instance</span>
-</span><span id="condition-6482"><a href="#condition-6482"><span class="linenos">6482</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="condition-6483"><a href="#condition-6483"><span class="linenos">6483</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
-</span><span id="condition-6484"><a href="#condition-6484"><span class="linenos">6484</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="condition-6485"><a href="#condition-6485"><span class="linenos">6485</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
-</span><span id="condition-6486"><a href="#condition-6486"><span class="linenos">6486</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="condition-6487"><a href="#condition-6487"><span class="linenos">6487</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="condition-6488"><a href="#condition-6488"><span class="linenos">6488</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="condition-6489"><a href="#condition-6489"><span class="linenos">6489</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="condition-6486"><a href="#condition-6486"><span class="linenos">6486</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
+</span><span id="condition-6487"><a href="#condition-6487"><span class="linenos">6487</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="condition-6488"><a href="#condition-6488"><span class="linenos">6488</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="condition-6489"><a href="#condition-6489"><span class="linenos">6489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="condition-6490"><a href="#condition-6490"><span class="linenos">6490</span></a><span class="sd"> Initialize a logical condition expression.</span>
+</span><span id="condition-6491"><a href="#condition-6491"><span class="linenos">6491</span></a>
+</span><span id="condition-6492"><a href="#condition-6492"><span class="linenos">6492</span></a><span class="sd"> Example:</span>
+</span><span id="condition-6493"><a href="#condition-6493"><span class="linenos">6493</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
+</span><span id="condition-6494"><a href="#condition-6494"><span class="linenos">6494</span></a><span class="sd"> &#39;x = 1&#39;</span>
+</span><span id="condition-6495"><a href="#condition-6495"><span class="linenos">6495</span></a>
+</span><span id="condition-6496"><a href="#condition-6496"><span class="linenos">6496</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
+</span><span id="condition-6497"><a href="#condition-6497"><span class="linenos">6497</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
+</span><span id="condition-6498"><a href="#condition-6498"><span class="linenos">6498</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
+</span><span id="condition-6499"><a href="#condition-6499"><span class="linenos">6499</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
+</span><span id="condition-6500"><a href="#condition-6500"><span class="linenos">6500</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
+</span><span id="condition-6501"><a href="#condition-6501"><span class="linenos">6501</span></a>
+</span><span id="condition-6502"><a href="#condition-6502"><span class="linenos">6502</span></a><span class="sd"> Args:</span>
+</span><span id="condition-6503"><a href="#condition-6503"><span class="linenos">6503</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
+</span><span id="condition-6504"><a href="#condition-6504"><span class="linenos">6504</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="condition-6505"><a href="#condition-6505"><span class="linenos">6505</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
+</span><span id="condition-6506"><a href="#condition-6506"><span class="linenos">6506</span></a><span class="sd"> input expression is a SQL string).</span>
+</span><span id="condition-6507"><a href="#condition-6507"><span class="linenos">6507</span></a><span class="sd"> copy: Whether to copy `expression` (only applies to expressions).</span>
+</span><span id="condition-6508"><a href="#condition-6508"><span class="linenos">6508</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
+</span><span id="condition-6509"><a href="#condition-6509"><span class="linenos">6509</span></a><span class="sd"> that the input expression is a SQL string).</span>
+</span><span id="condition-6510"><a href="#condition-6510"><span class="linenos">6510</span></a>
+</span><span id="condition-6511"><a href="#condition-6511"><span class="linenos">6511</span></a><span class="sd"> Returns:</span>
+</span><span id="condition-6512"><a href="#condition-6512"><span class="linenos">6512</span></a><span class="sd"> The new Condition instance</span>
+</span><span id="condition-6513"><a href="#condition-6513"><span class="linenos">6513</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="condition-6514"><a href="#condition-6514"><span class="linenos">6514</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
+</span><span id="condition-6515"><a href="#condition-6515"><span class="linenos">6515</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="condition-6516"><a href="#condition-6516"><span class="linenos">6516</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
+</span><span id="condition-6517"><a href="#condition-6517"><span class="linenos">6517</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="condition-6518"><a href="#condition-6518"><span class="linenos">6518</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="condition-6519"><a href="#condition-6519"><span class="linenos">6519</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="condition-6520"><a href="#condition-6520"><span class="linenos">6520</span></a> <span class="p">)</span>
</span></pre></div>
@@ -95624,27 +96250,27 @@ that the input expression is a SQL string).</li>
</div>
<a class="headerlink" href="#and_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="and_-6492"><a href="#and_-6492"><span class="linenos">6492</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
-</span><span id="and_-6493"><a href="#and_-6493"><span class="linenos">6493</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="and_-6494"><a href="#and_-6494"><span class="linenos">6494</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="and_-6495"><a href="#and_-6495"><span class="linenos">6495</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="and_-6496"><a href="#and_-6496"><span class="linenos">6496</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
-</span><span id="and_-6497"><a href="#and_-6497"><span class="linenos">6497</span></a>
-</span><span id="and_-6498"><a href="#and_-6498"><span class="linenos">6498</span></a><span class="sd"> Example:</span>
-</span><span id="and_-6499"><a href="#and_-6499"><span class="linenos">6499</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_-6500"><a href="#and_-6500"><span class="linenos">6500</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
-</span><span id="and_-6501"><a href="#and_-6501"><span class="linenos">6501</span></a>
-</span><span id="and_-6502"><a href="#and_-6502"><span class="linenos">6502</span></a><span class="sd"> Args:</span>
-</span><span id="and_-6503"><a href="#and_-6503"><span class="linenos">6503</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="and_-6504"><a href="#and_-6504"><span class="linenos">6504</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="and_-6505"><a href="#and_-6505"><span class="linenos">6505</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="and_-6506"><a href="#and_-6506"><span class="linenos">6506</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
-</span><span id="and_-6507"><a href="#and_-6507"><span class="linenos">6507</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="and_-6508"><a href="#and_-6508"><span class="linenos">6508</span></a>
-</span><span id="and_-6509"><a href="#and_-6509"><span class="linenos">6509</span></a><span class="sd"> Returns:</span>
-</span><span id="and_-6510"><a href="#and_-6510"><span class="linenos">6510</span></a><span class="sd"> And: the new condition</span>
-</span><span id="and_-6511"><a href="#and_-6511"><span class="linenos">6511</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="and_-6512"><a href="#and_-6512"><span class="linenos">6512</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="and_-6523"><a href="#and_-6523"><span class="linenos">6523</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
+</span><span id="and_-6524"><a href="#and_-6524"><span class="linenos">6524</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="and_-6525"><a href="#and_-6525"><span class="linenos">6525</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="and_-6526"><a href="#and_-6526"><span class="linenos">6526</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="and_-6527"><a href="#and_-6527"><span class="linenos">6527</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
+</span><span id="and_-6528"><a href="#and_-6528"><span class="linenos">6528</span></a>
+</span><span id="and_-6529"><a href="#and_-6529"><span class="linenos">6529</span></a><span class="sd"> Example:</span>
+</span><span id="and_-6530"><a href="#and_-6530"><span class="linenos">6530</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_-6531"><a href="#and_-6531"><span class="linenos">6531</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
+</span><span id="and_-6532"><a href="#and_-6532"><span class="linenos">6532</span></a>
+</span><span id="and_-6533"><a href="#and_-6533"><span class="linenos">6533</span></a><span class="sd"> Args:</span>
+</span><span id="and_-6534"><a href="#and_-6534"><span class="linenos">6534</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="and_-6535"><a href="#and_-6535"><span class="linenos">6535</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="and_-6536"><a href="#and_-6536"><span class="linenos">6536</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="and_-6537"><a href="#and_-6537"><span class="linenos">6537</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
+</span><span id="and_-6538"><a href="#and_-6538"><span class="linenos">6538</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="and_-6539"><a href="#and_-6539"><span class="linenos">6539</span></a>
+</span><span id="and_-6540"><a href="#and_-6540"><span class="linenos">6540</span></a><span class="sd"> Returns:</span>
+</span><span id="and_-6541"><a href="#and_-6541"><span class="linenos">6541</span></a><span class="sd"> The new condition</span>
+</span><span id="and_-6542"><a href="#and_-6542"><span class="linenos">6542</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="and_-6543"><a href="#and_-6543"><span class="linenos">6543</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -95673,7 +96299,7 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>And: the new condition</p>
+ <p>The new condition</p>
</blockquote>
</div>
@@ -95690,27 +96316,27 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#or_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="or_-6515"><a href="#or_-6515"><span class="linenos">6515</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
-</span><span id="or_-6516"><a href="#or_-6516"><span class="linenos">6516</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
-</span><span id="or_-6517"><a href="#or_-6517"><span class="linenos">6517</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
-</span><span id="or_-6518"><a href="#or_-6518"><span class="linenos">6518</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="or_-6519"><a href="#or_-6519"><span class="linenos">6519</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
-</span><span id="or_-6520"><a href="#or_-6520"><span class="linenos">6520</span></a>
-</span><span id="or_-6521"><a href="#or_-6521"><span class="linenos">6521</span></a><span class="sd"> Example:</span>
-</span><span id="or_-6522"><a href="#or_-6522"><span class="linenos">6522</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_-6523"><a href="#or_-6523"><span class="linenos">6523</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
-</span><span id="or_-6524"><a href="#or_-6524"><span class="linenos">6524</span></a>
-</span><span id="or_-6525"><a href="#or_-6525"><span class="linenos">6525</span></a><span class="sd"> Args:</span>
-</span><span id="or_-6526"><a href="#or_-6526"><span class="linenos">6526</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
-</span><span id="or_-6527"><a href="#or_-6527"><span class="linenos">6527</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="or_-6528"><a href="#or_-6528"><span class="linenos">6528</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="or_-6529"><a href="#or_-6529"><span class="linenos">6529</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
-</span><span id="or_-6530"><a href="#or_-6530"><span class="linenos">6530</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="or_-6531"><a href="#or_-6531"><span class="linenos">6531</span></a>
-</span><span id="or_-6532"><a href="#or_-6532"><span class="linenos">6532</span></a><span class="sd"> Returns:</span>
-</span><span id="or_-6533"><a href="#or_-6533"><span class="linenos">6533</span></a><span class="sd"> Or: the new condition</span>
-</span><span id="or_-6534"><a href="#or_-6534"><span class="linenos">6534</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="or_-6535"><a href="#or_-6535"><span class="linenos">6535</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="or_-6546"><a href="#or_-6546"><span class="linenos">6546</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
+</span><span id="or_-6547"><a href="#or_-6547"><span class="linenos">6547</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="or_-6548"><a href="#or_-6548"><span class="linenos">6548</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="or_-6549"><a href="#or_-6549"><span class="linenos">6549</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="or_-6550"><a href="#or_-6550"><span class="linenos">6550</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
+</span><span id="or_-6551"><a href="#or_-6551"><span class="linenos">6551</span></a>
+</span><span id="or_-6552"><a href="#or_-6552"><span class="linenos">6552</span></a><span class="sd"> Example:</span>
+</span><span id="or_-6553"><a href="#or_-6553"><span class="linenos">6553</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_-6554"><a href="#or_-6554"><span class="linenos">6554</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
+</span><span id="or_-6555"><a href="#or_-6555"><span class="linenos">6555</span></a>
+</span><span id="or_-6556"><a href="#or_-6556"><span class="linenos">6556</span></a><span class="sd"> Args:</span>
+</span><span id="or_-6557"><a href="#or_-6557"><span class="linenos">6557</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="or_-6558"><a href="#or_-6558"><span class="linenos">6558</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="or_-6559"><a href="#or_-6559"><span class="linenos">6559</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="or_-6560"><a href="#or_-6560"><span class="linenos">6560</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
+</span><span id="or_-6561"><a href="#or_-6561"><span class="linenos">6561</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="or_-6562"><a href="#or_-6562"><span class="linenos">6562</span></a>
+</span><span id="or_-6563"><a href="#or_-6563"><span class="linenos">6563</span></a><span class="sd"> Returns:</span>
+</span><span id="or_-6564"><a href="#or_-6564"><span class="linenos">6564</span></a><span class="sd"> The new condition</span>
+</span><span id="or_-6565"><a href="#or_-6565"><span class="linenos">6565</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="or_-6566"><a href="#or_-6566"><span class="linenos">6566</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
@@ -95739,7 +96365,73 @@ If an Expression instance is passed, this is used as-is.</li>
<h6 id="returns">Returns:</h6>
<blockquote>
- <p>Or: the new condition</p>
+ <p>The new condition</p>
+</blockquote>
+</div>
+
+
+ </section>
+ <section id="xor">
+ <input id="xor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
+<div class="attr function">
+
+ <span class="def">def</span>
+ <span class="name">xor</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">Condition</a></span>:</span></span>
+
+ <label class="view-source-button" for="xor-view-source"><span>View Source</span></label>
+
+ </div>
+ <a class="headerlink" href="#xor"></a>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="xor-6569"><a href="#xor-6569"><span class="linenos">6569</span></a><span class="k">def</span> <span class="nf">xor</span><span class="p">(</span>
+</span><span id="xor-6570"><a href="#xor-6570"><span class="linenos">6570</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
+</span><span id="xor-6571"><a href="#xor-6571"><span class="linenos">6571</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
+</span><span id="xor-6572"><a href="#xor-6572"><span class="linenos">6572</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="xor-6573"><a href="#xor-6573"><span class="linenos">6573</span></a><span class="sd"> Combine multiple conditions with an XOR logical operator.</span>
+</span><span id="xor-6574"><a href="#xor-6574"><span class="linenos">6574</span></a>
+</span><span id="xor-6575"><a href="#xor-6575"><span class="linenos">6575</span></a><span class="sd"> Example:</span>
+</span><span id="xor-6576"><a href="#xor-6576"><span class="linenos">6576</span></a><span class="sd"> &gt;&gt;&gt; xor(&quot;x=1&quot;, xor(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
+</span><span id="xor-6577"><a href="#xor-6577"><span class="linenos">6577</span></a><span class="sd"> &#39;x = 1 XOR (y = 1 XOR z = 1)&#39;</span>
+</span><span id="xor-6578"><a href="#xor-6578"><span class="linenos">6578</span></a>
+</span><span id="xor-6579"><a href="#xor-6579"><span class="linenos">6579</span></a><span class="sd"> Args:</span>
+</span><span id="xor-6580"><a href="#xor-6580"><span class="linenos">6580</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
+</span><span id="xor-6581"><a href="#xor-6581"><span class="linenos">6581</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="xor-6582"><a href="#xor-6582"><span class="linenos">6582</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="xor-6583"><a href="#xor-6583"><span class="linenos">6583</span></a><span class="sd"> copy: whether to copy `expressions` (only applies to Expressions).</span>
+</span><span id="xor-6584"><a href="#xor-6584"><span class="linenos">6584</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="xor-6585"><a href="#xor-6585"><span class="linenos">6585</span></a>
+</span><span id="xor-6586"><a href="#xor-6586"><span class="linenos">6586</span></a><span class="sd"> Returns:</span>
+</span><span id="xor-6587"><a href="#xor-6587"><span class="linenos">6587</span></a><span class="sd"> The new condition</span>
+</span><span id="xor-6588"><a href="#xor-6588"><span class="linenos">6588</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="xor-6589"><a href="#xor-6589"><span class="linenos">6589</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Xor</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
+</span></pre></div>
+
+
+ <div class="docstring"><p>Combine multiple conditions with an XOR logical operator.</p>
+
+<h6 id="example">Example:</h6>
+
+<blockquote>
+ <div class="pdoc-code codehilite">
+<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">xor</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">,</span> <span class="n">xor</span><span class="p">(</span><span class="s2">&quot;y=1&quot;</span><span class="p">,</span> <span class="s2">&quot;z=1&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
+<span class="go">&#39;x = 1 XOR (y = 1 XOR z = 1)&#39;</span>
+</code></pre>
+ </div>
+</blockquote>
+
+<h6 id="arguments">Arguments:</h6>
+
+<ul>
+<li><strong>*expressions:</strong> the SQL code strings to parse.
+If an Expression instance is passed, this is used as-is.</li>
+<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
+<li><strong>copy:</strong> whether to copy <code>expressions</code> (only applies to Expressions).</li>
+<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
+</ul>
+
+<h6 id="returns">Returns:</h6>
+
+<blockquote>
+ <p>The new condition</p>
</blockquote>
</div>
@@ -95756,31 +96448,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#not_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="not_-6538"><a href="#not_-6538"><span class="linenos">6538</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
-</span><span id="not_-6539"><a href="#not_-6539"><span class="linenos">6539</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="not_-6540"><a href="#not_-6540"><span class="linenos">6540</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
-</span><span id="not_-6541"><a href="#not_-6541"><span class="linenos">6541</span></a>
-</span><span id="not_-6542"><a href="#not_-6542"><span class="linenos">6542</span></a><span class="sd"> Example:</span>
-</span><span id="not_-6543"><a href="#not_-6543"><span class="linenos">6543</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
-</span><span id="not_-6544"><a href="#not_-6544"><span class="linenos">6544</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
-</span><span id="not_-6545"><a href="#not_-6545"><span class="linenos">6545</span></a>
-</span><span id="not_-6546"><a href="#not_-6546"><span class="linenos">6546</span></a><span class="sd"> Args:</span>
-</span><span id="not_-6547"><a href="#not_-6547"><span class="linenos">6547</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="not_-6548"><a href="#not_-6548"><span class="linenos">6548</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="not_-6549"><a href="#not_-6549"><span class="linenos">6549</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="not_-6550"><a href="#not_-6550"><span class="linenos">6550</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="not_-6551"><a href="#not_-6551"><span class="linenos">6551</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="not_-6552"><a href="#not_-6552"><span class="linenos">6552</span></a>
-</span><span id="not_-6553"><a href="#not_-6553"><span class="linenos">6553</span></a><span class="sd"> Returns:</span>
-</span><span id="not_-6554"><a href="#not_-6554"><span class="linenos">6554</span></a><span class="sd"> The new condition.</span>
-</span><span id="not_-6555"><a href="#not_-6555"><span class="linenos">6555</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="not_-6556"><a href="#not_-6556"><span class="linenos">6556</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
-</span><span id="not_-6557"><a href="#not_-6557"><span class="linenos">6557</span></a> <span class="n">expression</span><span class="p">,</span>
-</span><span id="not_-6558"><a href="#not_-6558"><span class="linenos">6558</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="not_-6559"><a href="#not_-6559"><span class="linenos">6559</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
-</span><span id="not_-6560"><a href="#not_-6560"><span class="linenos">6560</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="not_-6561"><a href="#not_-6561"><span class="linenos">6561</span></a> <span class="p">)</span>
-</span><span id="not_-6562"><a href="#not_-6562"><span class="linenos">6562</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="not_-6592"><a href="#not_-6592"><span class="linenos">6592</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
+</span><span id="not_-6593"><a href="#not_-6593"><span class="linenos">6593</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="not_-6594"><a href="#not_-6594"><span class="linenos">6594</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
+</span><span id="not_-6595"><a href="#not_-6595"><span class="linenos">6595</span></a>
+</span><span id="not_-6596"><a href="#not_-6596"><span class="linenos">6596</span></a><span class="sd"> Example:</span>
+</span><span id="not_-6597"><a href="#not_-6597"><span class="linenos">6597</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
+</span><span id="not_-6598"><a href="#not_-6598"><span class="linenos">6598</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
+</span><span id="not_-6599"><a href="#not_-6599"><span class="linenos">6599</span></a>
+</span><span id="not_-6600"><a href="#not_-6600"><span class="linenos">6600</span></a><span class="sd"> Args:</span>
+</span><span id="not_-6601"><a href="#not_-6601"><span class="linenos">6601</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="not_-6602"><a href="#not_-6602"><span class="linenos">6602</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="not_-6603"><a href="#not_-6603"><span class="linenos">6603</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="not_-6604"><a href="#not_-6604"><span class="linenos">6604</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="not_-6605"><a href="#not_-6605"><span class="linenos">6605</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="not_-6606"><a href="#not_-6606"><span class="linenos">6606</span></a>
+</span><span id="not_-6607"><a href="#not_-6607"><span class="linenos">6607</span></a><span class="sd"> Returns:</span>
+</span><span id="not_-6608"><a href="#not_-6608"><span class="linenos">6608</span></a><span class="sd"> The new condition.</span>
+</span><span id="not_-6609"><a href="#not_-6609"><span class="linenos">6609</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="not_-6610"><a href="#not_-6610"><span class="linenos">6610</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
+</span><span id="not_-6611"><a href="#not_-6611"><span class="linenos">6611</span></a> <span class="n">expression</span><span class="p">,</span>
+</span><span id="not_-6612"><a href="#not_-6612"><span class="linenos">6612</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="not_-6613"><a href="#not_-6613"><span class="linenos">6613</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
+</span><span id="not_-6614"><a href="#not_-6614"><span class="linenos">6614</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="not_-6615"><a href="#not_-6615"><span class="linenos">6615</span></a> <span class="p">)</span>
+</span><span id="not_-6616"><a href="#not_-6616"><span class="linenos">6616</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span></pre></div>
@@ -95826,23 +96518,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#paren"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="paren-6565"><a href="#paren-6565"><span class="linenos">6565</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
-</span><span id="paren-6566"><a href="#paren-6566"><span class="linenos">6566</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="paren-6567"><a href="#paren-6567"><span class="linenos">6567</span></a><span class="sd"> Wrap an expression in parentheses.</span>
-</span><span id="paren-6568"><a href="#paren-6568"><span class="linenos">6568</span></a>
-</span><span id="paren-6569"><a href="#paren-6569"><span class="linenos">6569</span></a><span class="sd"> Example:</span>
-</span><span id="paren-6570"><a href="#paren-6570"><span class="linenos">6570</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
-</span><span id="paren-6571"><a href="#paren-6571"><span class="linenos">6571</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
-</span><span id="paren-6572"><a href="#paren-6572"><span class="linenos">6572</span></a>
-</span><span id="paren-6573"><a href="#paren-6573"><span class="linenos">6573</span></a><span class="sd"> Args:</span>
-</span><span id="paren-6574"><a href="#paren-6574"><span class="linenos">6574</span></a><span class="sd"> expression: the SQL code string to parse.</span>
-</span><span id="paren-6575"><a href="#paren-6575"><span class="linenos">6575</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="paren-6576"><a href="#paren-6576"><span class="linenos">6576</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
-</span><span id="paren-6577"><a href="#paren-6577"><span class="linenos">6577</span></a>
-</span><span id="paren-6578"><a href="#paren-6578"><span class="linenos">6578</span></a><span class="sd"> Returns:</span>
-</span><span id="paren-6579"><a href="#paren-6579"><span class="linenos">6579</span></a><span class="sd"> The wrapped expression.</span>
-</span><span id="paren-6580"><a href="#paren-6580"><span class="linenos">6580</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="paren-6581"><a href="#paren-6581"><span class="linenos">6581</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="paren-6619"><a href="#paren-6619"><span class="linenos">6619</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
+</span><span id="paren-6620"><a href="#paren-6620"><span class="linenos">6620</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="paren-6621"><a href="#paren-6621"><span class="linenos">6621</span></a><span class="sd"> Wrap an expression in parentheses.</span>
+</span><span id="paren-6622"><a href="#paren-6622"><span class="linenos">6622</span></a>
+</span><span id="paren-6623"><a href="#paren-6623"><span class="linenos">6623</span></a><span class="sd"> Example:</span>
+</span><span id="paren-6624"><a href="#paren-6624"><span class="linenos">6624</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
+</span><span id="paren-6625"><a href="#paren-6625"><span class="linenos">6625</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
+</span><span id="paren-6626"><a href="#paren-6626"><span class="linenos">6626</span></a>
+</span><span id="paren-6627"><a href="#paren-6627"><span class="linenos">6627</span></a><span class="sd"> Args:</span>
+</span><span id="paren-6628"><a href="#paren-6628"><span class="linenos">6628</span></a><span class="sd"> expression: the SQL code string to parse.</span>
+</span><span id="paren-6629"><a href="#paren-6629"><span class="linenos">6629</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="paren-6630"><a href="#paren-6630"><span class="linenos">6630</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
+</span><span id="paren-6631"><a href="#paren-6631"><span class="linenos">6631</span></a>
+</span><span id="paren-6632"><a href="#paren-6632"><span class="linenos">6632</span></a><span class="sd"> Returns:</span>
+</span><span id="paren-6633"><a href="#paren-6633"><span class="linenos">6633</span></a><span class="sd"> The wrapped expression.</span>
+</span><span id="paren-6634"><a href="#paren-6634"><span class="linenos">6634</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="paren-6635"><a href="#paren-6635"><span class="linenos">6635</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span></pre></div>
@@ -95898,31 +96590,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#to_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-6597"><a href="#to_identifier-6597"><span class="linenos">6597</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-</span><span id="to_identifier-6598"><a href="#to_identifier-6598"><span class="linenos">6598</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
-</span><span id="to_identifier-6599"><a href="#to_identifier-6599"><span class="linenos">6599</span></a>
-</span><span id="to_identifier-6600"><a href="#to_identifier-6600"><span class="linenos">6600</span></a><span class="sd"> Args:</span>
-</span><span id="to_identifier-6601"><a href="#to_identifier-6601"><span class="linenos">6601</span></a><span class="sd"> name: The name to turn into an identifier.</span>
-</span><span id="to_identifier-6602"><a href="#to_identifier-6602"><span class="linenos">6602</span></a><span class="sd"> quoted: Whether to force quote the identifier.</span>
-</span><span id="to_identifier-6603"><a href="#to_identifier-6603"><span class="linenos">6603</span></a><span class="sd"> copy: Whether to copy name if it&#39;s an Identifier.</span>
-</span><span id="to_identifier-6604"><a href="#to_identifier-6604"><span class="linenos">6604</span></a>
-</span><span id="to_identifier-6605"><a href="#to_identifier-6605"><span class="linenos">6605</span></a><span class="sd"> Returns:</span>
-</span><span id="to_identifier-6606"><a href="#to_identifier-6606"><span class="linenos">6606</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="to_identifier-6607"><a href="#to_identifier-6607"><span class="linenos">6607</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_identifier-6608"><a href="#to_identifier-6608"><span class="linenos">6608</span></a>
-</span><span id="to_identifier-6609"><a href="#to_identifier-6609"><span class="linenos">6609</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-6610"><a href="#to_identifier-6610"><span class="linenos">6610</span></a> <span class="k">return</span> <span class="kc">None</span>
-</span><span id="to_identifier-6611"><a href="#to_identifier-6611"><span class="linenos">6611</span></a>
-</span><span id="to_identifier-6612"><a href="#to_identifier-6612"><span class="linenos">6612</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-6613"><a href="#to_identifier-6613"><span class="linenos">6613</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="to_identifier-6614"><a href="#to_identifier-6614"><span class="linenos">6614</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-6615"><a href="#to_identifier-6615"><span class="linenos">6615</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-6616"><a href="#to_identifier-6616"><span class="linenos">6616</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-6617"><a href="#to_identifier-6617"><span class="linenos">6617</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
-</span><span id="to_identifier-6618"><a href="#to_identifier-6618"><span class="linenos">6618</span></a> <span class="p">)</span>
-</span><span id="to_identifier-6619"><a href="#to_identifier-6619"><span class="linenos">6619</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="to_identifier-6620"><a href="#to_identifier-6620"><span class="linenos">6620</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-6621"><a href="#to_identifier-6621"><span class="linenos">6621</span></a> <span class="k">return</span> <span class="n">identifier</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-6651"><a href="#to_identifier-6651"><span class="linenos">6651</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+</span><span id="to_identifier-6652"><a href="#to_identifier-6652"><span class="linenos">6652</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
+</span><span id="to_identifier-6653"><a href="#to_identifier-6653"><span class="linenos">6653</span></a>
+</span><span id="to_identifier-6654"><a href="#to_identifier-6654"><span class="linenos">6654</span></a><span class="sd"> Args:</span>
+</span><span id="to_identifier-6655"><a href="#to_identifier-6655"><span class="linenos">6655</span></a><span class="sd"> name: The name to turn into an identifier.</span>
+</span><span id="to_identifier-6656"><a href="#to_identifier-6656"><span class="linenos">6656</span></a><span class="sd"> quoted: Whether to force quote the identifier.</span>
+</span><span id="to_identifier-6657"><a href="#to_identifier-6657"><span class="linenos">6657</span></a><span class="sd"> copy: Whether to copy name if it&#39;s an Identifier.</span>
+</span><span id="to_identifier-6658"><a href="#to_identifier-6658"><span class="linenos">6658</span></a>
+</span><span id="to_identifier-6659"><a href="#to_identifier-6659"><span class="linenos">6659</span></a><span class="sd"> Returns:</span>
+</span><span id="to_identifier-6660"><a href="#to_identifier-6660"><span class="linenos">6660</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="to_identifier-6661"><a href="#to_identifier-6661"><span class="linenos">6661</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_identifier-6662"><a href="#to_identifier-6662"><span class="linenos">6662</span></a>
+</span><span id="to_identifier-6663"><a href="#to_identifier-6663"><span class="linenos">6663</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-6664"><a href="#to_identifier-6664"><span class="linenos">6664</span></a> <span class="k">return</span> <span class="kc">None</span>
+</span><span id="to_identifier-6665"><a href="#to_identifier-6665"><span class="linenos">6665</span></a>
+</span><span id="to_identifier-6666"><a href="#to_identifier-6666"><span class="linenos">6666</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-6667"><a href="#to_identifier-6667"><span class="linenos">6667</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="to_identifier-6668"><a href="#to_identifier-6668"><span class="linenos">6668</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-6669"><a href="#to_identifier-6669"><span class="linenos">6669</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-6670"><a href="#to_identifier-6670"><span class="linenos">6670</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-6671"><a href="#to_identifier-6671"><span class="linenos">6671</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
+</span><span id="to_identifier-6672"><a href="#to_identifier-6672"><span class="linenos">6672</span></a> <span class="p">)</span>
+</span><span id="to_identifier-6673"><a href="#to_identifier-6673"><span class="linenos">6673</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="to_identifier-6674"><a href="#to_identifier-6674"><span class="linenos">6674</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-6675"><a href="#to_identifier-6675"><span class="linenos">6675</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
@@ -95956,23 +96648,23 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#parse_identifier"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="parse_identifier-6624"><a href="#parse_identifier-6624"><span class="linenos">6624</span></a><span class="k">def</span> <span class="nf">parse_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">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
-</span><span id="parse_identifier-6625"><a href="#parse_identifier-6625"><span class="linenos">6625</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="parse_identifier-6626"><a href="#parse_identifier-6626"><span class="linenos">6626</span></a><span class="sd"> Parses a given string into an identifier.</span>
-</span><span id="parse_identifier-6627"><a href="#parse_identifier-6627"><span class="linenos">6627</span></a>
-</span><span id="parse_identifier-6628"><a href="#parse_identifier-6628"><span class="linenos">6628</span></a><span class="sd"> Args:</span>
-</span><span id="parse_identifier-6629"><a href="#parse_identifier-6629"><span class="linenos">6629</span></a><span class="sd"> name: The name to parse into an identifier.</span>
-</span><span id="parse_identifier-6630"><a href="#parse_identifier-6630"><span class="linenos">6630</span></a><span class="sd"> dialect: The dialect to parse against.</span>
-</span><span id="parse_identifier-6631"><a href="#parse_identifier-6631"><span class="linenos">6631</span></a>
-</span><span id="parse_identifier-6632"><a href="#parse_identifier-6632"><span class="linenos">6632</span></a><span class="sd"> Returns:</span>
-</span><span id="parse_identifier-6633"><a href="#parse_identifier-6633"><span class="linenos">6633</span></a><span class="sd"> The identifier ast node.</span>
-</span><span id="parse_identifier-6634"><a href="#parse_identifier-6634"><span class="linenos">6634</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="parse_identifier-6635"><a href="#parse_identifier-6635"><span class="linenos">6635</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="parse_identifier-6636"><a href="#parse_identifier-6636"><span class="linenos">6636</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
-</span><span id="parse_identifier-6637"><a href="#parse_identifier-6637"><span class="linenos">6637</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="parse_identifier-6638"><a href="#parse_identifier-6638"><span class="linenos">6638</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
-</span><span id="parse_identifier-6639"><a href="#parse_identifier-6639"><span class="linenos">6639</span></a>
-</span><span id="parse_identifier-6640"><a href="#parse_identifier-6640"><span class="linenos">6640</span></a> <span class="k">return</span> <span class="n">expression</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="parse_identifier-6678"><a href="#parse_identifier-6678"><span class="linenos">6678</span></a><span class="k">def</span> <span class="nf">parse_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">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
+</span><span id="parse_identifier-6679"><a href="#parse_identifier-6679"><span class="linenos">6679</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="parse_identifier-6680"><a href="#parse_identifier-6680"><span class="linenos">6680</span></a><span class="sd"> Parses a given string into an identifier.</span>
+</span><span id="parse_identifier-6681"><a href="#parse_identifier-6681"><span class="linenos">6681</span></a>
+</span><span id="parse_identifier-6682"><a href="#parse_identifier-6682"><span class="linenos">6682</span></a><span class="sd"> Args:</span>
+</span><span id="parse_identifier-6683"><a href="#parse_identifier-6683"><span class="linenos">6683</span></a><span class="sd"> name: The name to parse into an identifier.</span>
+</span><span id="parse_identifier-6684"><a href="#parse_identifier-6684"><span class="linenos">6684</span></a><span class="sd"> dialect: The dialect to parse against.</span>
+</span><span id="parse_identifier-6685"><a href="#parse_identifier-6685"><span class="linenos">6685</span></a>
+</span><span id="parse_identifier-6686"><a href="#parse_identifier-6686"><span class="linenos">6686</span></a><span class="sd"> Returns:</span>
+</span><span id="parse_identifier-6687"><a href="#parse_identifier-6687"><span class="linenos">6687</span></a><span class="sd"> The identifier ast node.</span>
+</span><span id="parse_identifier-6688"><a href="#parse_identifier-6688"><span class="linenos">6688</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="parse_identifier-6689"><a href="#parse_identifier-6689"><span class="linenos">6689</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="parse_identifier-6690"><a href="#parse_identifier-6690"><span class="linenos">6690</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">)</span>
+</span><span id="parse_identifier-6691"><a href="#parse_identifier-6691"><span class="linenos">6691</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="parse_identifier-6692"><a href="#parse_identifier-6692"><span class="linenos">6692</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+</span><span id="parse_identifier-6693"><a href="#parse_identifier-6693"><span class="linenos">6693</span></a>
+</span><span id="parse_identifier-6694"><a href="#parse_identifier-6694"><span class="linenos">6694</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
@@ -96017,23 +96709,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-6646"><a href="#to_interval-6646"><span class="linenos">6646</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-6647"><a href="#to_interval-6647"><span class="linenos">6647</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-6648"><a href="#to_interval-6648"><span class="linenos">6648</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-6649"><a href="#to_interval-6649"><span class="linenos">6649</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-6650"><a href="#to_interval-6650"><span class="linenos">6650</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-6651"><a href="#to_interval-6651"><span class="linenos">6651</span></a>
-</span><span id="to_interval-6652"><a href="#to_interval-6652"><span class="linenos">6652</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-6653"><a href="#to_interval-6653"><span class="linenos">6653</span></a>
-</span><span id="to_interval-6654"><a href="#to_interval-6654"><span class="linenos">6654</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-6655"><a href="#to_interval-6655"><span class="linenos">6655</span></a>
-</span><span id="to_interval-6656"><a href="#to_interval-6656"><span class="linenos">6656</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-6657"><a href="#to_interval-6657"><span class="linenos">6657</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-6658"><a href="#to_interval-6658"><span class="linenos">6658</span></a>
-</span><span id="to_interval-6659"><a href="#to_interval-6659"><span class="linenos">6659</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
-</span><span id="to_interval-6660"><a href="#to_interval-6660"><span class="linenos">6660</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-6661"><a href="#to_interval-6661"><span class="linenos">6661</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 class="o">.</span><span class="n">upper</span><span class="p">()),</span>
-</span><span id="to_interval-6662"><a href="#to_interval-6662"><span class="linenos">6662</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-6700"><a href="#to_interval-6700"><span class="linenos">6700</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-6701"><a href="#to_interval-6701"><span class="linenos">6701</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-6702"><a href="#to_interval-6702"><span class="linenos">6702</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-6703"><a href="#to_interval-6703"><span class="linenos">6703</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-6704"><a href="#to_interval-6704"><span class="linenos">6704</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-6705"><a href="#to_interval-6705"><span class="linenos">6705</span></a>
+</span><span id="to_interval-6706"><a href="#to_interval-6706"><span class="linenos">6706</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-6707"><a href="#to_interval-6707"><span class="linenos">6707</span></a>
+</span><span id="to_interval-6708"><a href="#to_interval-6708"><span class="linenos">6708</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-6709"><a href="#to_interval-6709"><span class="linenos">6709</span></a>
+</span><span id="to_interval-6710"><a href="#to_interval-6710"><span class="linenos">6710</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-6711"><a href="#to_interval-6711"><span class="linenos">6711</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-6712"><a href="#to_interval-6712"><span class="linenos">6712</span></a>
+</span><span id="to_interval-6713"><a href="#to_interval-6713"><span class="linenos">6713</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
+</span><span id="to_interval-6714"><a href="#to_interval-6714"><span class="linenos">6714</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-6715"><a href="#to_interval-6715"><span class="linenos">6715</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 class="o">.</span><span class="n">upper</span><span class="p">()),</span>
+</span><span id="to_interval-6716"><a href="#to_interval-6716"><span class="linenos">6716</span></a> <span class="p">)</span>
</span></pre></div>
@@ -96053,31 +96745,31 @@ 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-6665"><a href="#to_table-6665"><span class="linenos">6665</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
-</span><span id="to_table-6666"><a href="#to_table-6666"><span class="linenos">6666</span></a> <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="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
-</span><span id="to_table-6667"><a href="#to_table-6667"><span class="linenos">6667</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="to_table-6668"><a href="#to_table-6668"><span class="linenos">6668</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_table-6669"><a href="#to_table-6669"><span class="linenos">6669</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-6670"><a href="#to_table-6670"><span class="linenos">6670</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
-</span><span id="to_table-6671"><a href="#to_table-6671"><span class="linenos">6671</span></a>
-</span><span id="to_table-6672"><a href="#to_table-6672"><span class="linenos">6672</span></a><span class="sd"> Args:</span>
-</span><span id="to_table-6673"><a href="#to_table-6673"><span class="linenos">6673</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
-</span><span id="to_table-6674"><a href="#to_table-6674"><span class="linenos">6674</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
-</span><span id="to_table-6675"><a href="#to_table-6675"><span class="linenos">6675</span></a><span class="sd"> copy: Whether to copy a table if it is passed in.</span>
-</span><span id="to_table-6676"><a href="#to_table-6676"><span class="linenos">6676</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
-</span><span id="to_table-6677"><a href="#to_table-6677"><span class="linenos">6677</span></a>
-</span><span id="to_table-6678"><a href="#to_table-6678"><span class="linenos">6678</span></a><span class="sd"> Returns:</span>
-</span><span id="to_table-6679"><a href="#to_table-6679"><span class="linenos">6679</span></a><span class="sd"> A table expression.</span>
-</span><span id="to_table-6680"><a href="#to_table-6680"><span class="linenos">6680</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_table-6681"><a href="#to_table-6681"><span class="linenos">6681</span></a> <span class="k">if</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-6682"><a href="#to_table-6682"><span class="linenos">6682</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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="to_table-6683"><a href="#to_table-6683"><span class="linenos">6683</span></a>
-</span><span id="to_table-6684"><a href="#to_table-6684"><span class="linenos">6684</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="to_table-6685"><a href="#to_table-6685"><span class="linenos">6685</span></a>
-</span><span id="to_table-6686"><a href="#to_table-6686"><span class="linenos">6686</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="to_table-6687"><a href="#to_table-6687"><span class="linenos">6687</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="to_table-6688"><a href="#to_table-6688"><span class="linenos">6688</span></a>
-</span><span id="to_table-6689"><a href="#to_table-6689"><span class="linenos">6689</span></a> <span class="k">return</span> <span class="n">table</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-6719"><a href="#to_table-6719"><span class="linenos">6719</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
+</span><span id="to_table-6720"><a href="#to_table-6720"><span class="linenos">6720</span></a> <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="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
+</span><span id="to_table-6721"><a href="#to_table-6721"><span class="linenos">6721</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="to_table-6722"><a href="#to_table-6722"><span class="linenos">6722</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_table-6723"><a href="#to_table-6723"><span class="linenos">6723</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-6724"><a href="#to_table-6724"><span class="linenos">6724</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
+</span><span id="to_table-6725"><a href="#to_table-6725"><span class="linenos">6725</span></a>
+</span><span id="to_table-6726"><a href="#to_table-6726"><span class="linenos">6726</span></a><span class="sd"> Args:</span>
+</span><span id="to_table-6727"><a href="#to_table-6727"><span class="linenos">6727</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
+</span><span id="to_table-6728"><a href="#to_table-6728"><span class="linenos">6728</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
+</span><span id="to_table-6729"><a href="#to_table-6729"><span class="linenos">6729</span></a><span class="sd"> copy: Whether to copy a table if it is passed in.</span>
+</span><span id="to_table-6730"><a href="#to_table-6730"><span class="linenos">6730</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
+</span><span id="to_table-6731"><a href="#to_table-6731"><span class="linenos">6731</span></a>
+</span><span id="to_table-6732"><a href="#to_table-6732"><span class="linenos">6732</span></a><span class="sd"> Returns:</span>
+</span><span id="to_table-6733"><a href="#to_table-6733"><span class="linenos">6733</span></a><span class="sd"> A table expression.</span>
+</span><span id="to_table-6734"><a href="#to_table-6734"><span class="linenos">6734</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_table-6735"><a href="#to_table-6735"><span class="linenos">6735</span></a> <span class="k">if</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-6736"><a href="#to_table-6736"><span class="linenos">6736</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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="to_table-6737"><a href="#to_table-6737"><span class="linenos">6737</span></a>
+</span><span id="to_table-6738"><a href="#to_table-6738"><span class="linenos">6738</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="to_table-6739"><a href="#to_table-6739"><span class="linenos">6739</span></a>
+</span><span id="to_table-6740"><a href="#to_table-6740"><span class="linenos">6740</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="to_table-6741"><a href="#to_table-6741"><span class="linenos">6741</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="to_table-6742"><a href="#to_table-6742"><span class="linenos">6742</span></a>
+</span><span id="to_table-6743"><a href="#to_table-6743"><span class="linenos">6743</span></a> <span class="k">return</span> <span class="n">table</span>
</span></pre></div>
@@ -96113,43 +96805,43 @@ 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-6692"><a href="#to_column-6692"><span class="linenos">6692</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span>
-</span><span id="to_column-6693"><a href="#to_column-6693"><span class="linenos">6693</span></a> <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><span id="to_column-6694"><a href="#to_column-6694"><span class="linenos">6694</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="to_column-6695"><a href="#to_column-6695"><span class="linenos">6695</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="to_column-6696"><a href="#to_column-6696"><span class="linenos">6696</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="to_column-6697"><a href="#to_column-6697"><span class="linenos">6697</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
-</span><span id="to_column-6698"><a href="#to_column-6698"><span class="linenos">6698</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
-</span><span id="to_column-6699"><a href="#to_column-6699"><span class="linenos">6699</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="to_column-6700"><a href="#to_column-6700"><span class="linenos">6700</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Table is optional.</span>
-</span><span id="to_column-6701"><a href="#to_column-6701"><span class="linenos">6701</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
-</span><span id="to_column-6702"><a href="#to_column-6702"><span class="linenos">6702</span></a>
-</span><span id="to_column-6703"><a href="#to_column-6703"><span class="linenos">6703</span></a><span class="sd"> Args:</span>
-</span><span id="to_column-6704"><a href="#to_column-6704"><span class="linenos">6704</span></a><span class="sd"> sql_path: a `[table].[column]` string.</span>
-</span><span id="to_column-6705"><a href="#to_column-6705"><span class="linenos">6705</span></a><span class="sd"> quoted: Whether or not to force quote identifiers.</span>
-</span><span id="to_column-6706"><a href="#to_column-6706"><span class="linenos">6706</span></a><span class="sd"> dialect: the source dialect according to which the column name will be parsed.</span>
-</span><span id="to_column-6707"><a href="#to_column-6707"><span class="linenos">6707</span></a><span class="sd"> copy: Whether to copy a column if it is passed in.</span>
-</span><span id="to_column-6708"><a href="#to_column-6708"><span class="linenos">6708</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Column` expression with.</span>
-</span><span id="to_column-6709"><a href="#to_column-6709"><span class="linenos">6709</span></a>
-</span><span id="to_column-6710"><a href="#to_column-6710"><span class="linenos">6710</span></a><span class="sd"> Returns:</span>
-</span><span id="to_column-6711"><a href="#to_column-6711"><span class="linenos">6711</span></a><span class="sd"> A column expression.</span>
-</span><span id="to_column-6712"><a href="#to_column-6712"><span class="linenos">6712</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="to_column-6713"><a href="#to_column-6713"><span class="linenos">6713</span></a> <span class="k">if</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-6714"><a href="#to_column-6714"><span class="linenos">6714</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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="to_column-6715"><a href="#to_column-6715"><span class="linenos">6715</span></a>
-</span><span id="to_column-6716"><a href="#to_column-6716"><span class="linenos">6716</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="to_column-6717"><a href="#to_column-6717"><span class="linenos">6717</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Column</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="to_column-6718"><a href="#to_column-6718"><span class="linenos">6718</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
-</span><span id="to_column-6719"><a href="#to_column-6719"><span class="linenos">6719</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="to_column-6720"><a href="#to_column-6720"><span class="linenos">6720</span></a>
-</span><span id="to_column-6721"><a href="#to_column-6721"><span class="linenos">6721</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-</span><span id="to_column-6722"><a href="#to_column-6722"><span class="linenos">6722</span></a> <span class="n">col</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
-</span><span id="to_column-6723"><a href="#to_column-6723"><span class="linenos">6723</span></a>
-</span><span id="to_column-6724"><a href="#to_column-6724"><span class="linenos">6724</span></a> <span class="k">if</span> <span class="n">quoted</span><span class="p">:</span>
-</span><span id="to_column-6725"><a href="#to_column-6725"><span class="linenos">6725</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">col</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Identifier</span><span class="p">):</span>
-</span><span id="to_column-6726"><a href="#to_column-6726"><span class="linenos">6726</span></a> <span class="n">i</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
-</span><span id="to_column-6727"><a href="#to_column-6727"><span class="linenos">6727</span></a>
-</span><span id="to_column-6728"><a href="#to_column-6728"><span class="linenos">6728</span></a> <span class="k">return</span> <span class="n">col</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-6746"><a href="#to_column-6746"><span class="linenos">6746</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span>
+</span><span id="to_column-6747"><a href="#to_column-6747"><span class="linenos">6747</span></a> <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><span id="to_column-6748"><a href="#to_column-6748"><span class="linenos">6748</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="to_column-6749"><a href="#to_column-6749"><span class="linenos">6749</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="to_column-6750"><a href="#to_column-6750"><span class="linenos">6750</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="to_column-6751"><a href="#to_column-6751"><span class="linenos">6751</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
+</span><span id="to_column-6752"><a href="#to_column-6752"><span class="linenos">6752</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
+</span><span id="to_column-6753"><a href="#to_column-6753"><span class="linenos">6753</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="to_column-6754"><a href="#to_column-6754"><span class="linenos">6754</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Table is optional.</span>
+</span><span id="to_column-6755"><a href="#to_column-6755"><span class="linenos">6755</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
+</span><span id="to_column-6756"><a href="#to_column-6756"><span class="linenos">6756</span></a>
+</span><span id="to_column-6757"><a href="#to_column-6757"><span class="linenos">6757</span></a><span class="sd"> Args:</span>
+</span><span id="to_column-6758"><a href="#to_column-6758"><span class="linenos">6758</span></a><span class="sd"> sql_path: a `[table].[column]` string.</span>
+</span><span id="to_column-6759"><a href="#to_column-6759"><span class="linenos">6759</span></a><span class="sd"> quoted: Whether or not to force quote identifiers.</span>
+</span><span id="to_column-6760"><a href="#to_column-6760"><span class="linenos">6760</span></a><span class="sd"> dialect: the source dialect according to which the column name will be parsed.</span>
+</span><span id="to_column-6761"><a href="#to_column-6761"><span class="linenos">6761</span></a><span class="sd"> copy: Whether to copy a column if it is passed in.</span>
+</span><span id="to_column-6762"><a href="#to_column-6762"><span class="linenos">6762</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Column` expression with.</span>
+</span><span id="to_column-6763"><a href="#to_column-6763"><span class="linenos">6763</span></a>
+</span><span id="to_column-6764"><a href="#to_column-6764"><span class="linenos">6764</span></a><span class="sd"> Returns:</span>
+</span><span id="to_column-6765"><a href="#to_column-6765"><span class="linenos">6765</span></a><span class="sd"> A column expression.</span>
+</span><span id="to_column-6766"><a href="#to_column-6766"><span class="linenos">6766</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="to_column-6767"><a href="#to_column-6767"><span class="linenos">6767</span></a> <span class="k">if</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-6768"><a href="#to_column-6768"><span class="linenos">6768</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">sql_path</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="to_column-6769"><a href="#to_column-6769"><span class="linenos">6769</span></a>
+</span><span id="to_column-6770"><a href="#to_column-6770"><span class="linenos">6770</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="to_column-6771"><a href="#to_column-6771"><span class="linenos">6771</span></a> <span class="n">col</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Column</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="to_column-6772"><a href="#to_column-6772"><span class="linenos">6772</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
+</span><span id="to_column-6773"><a href="#to_column-6773"><span class="linenos">6773</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="to_column-6774"><a href="#to_column-6774"><span class="linenos">6774</span></a>
+</span><span id="to_column-6775"><a href="#to_column-6775"><span class="linenos">6775</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+</span><span id="to_column-6776"><a href="#to_column-6776"><span class="linenos">6776</span></a> <span class="n">col</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</span><span id="to_column-6777"><a href="#to_column-6777"><span class="linenos">6777</span></a>
+</span><span id="to_column-6778"><a href="#to_column-6778"><span class="linenos">6778</span></a> <span class="k">if</span> <span class="n">quoted</span><span class="p">:</span>
+</span><span id="to_column-6779"><a href="#to_column-6779"><span class="linenos">6779</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">col</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Identifier</span><span class="p">):</span>
+</span><span id="to_column-6780"><a href="#to_column-6780"><span class="linenos">6780</span></a> <span class="n">i</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;quoted&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
+</span><span id="to_column-6781"><a href="#to_column-6781"><span class="linenos">6781</span></a>
+</span><span id="to_column-6782"><a href="#to_column-6782"><span class="linenos">6782</span></a> <span class="k">return</span> <span class="n">col</span>
</span></pre></div>
@@ -96186,61 +96878,61 @@ If a column is passed in then that column is returned.</p>
</div>
<a class="headerlink" href="#alias_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-6731"><a href="#alias_-6731"><span class="linenos">6731</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
-</span><span id="alias_-6732"><a href="#alias_-6732"><span class="linenos">6732</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="alias_-6733"><a href="#alias_-6733"><span class="linenos">6733</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="o">|</span> <span class="n">Identifier</span><span class="p">],</span>
-</span><span id="alias_-6734"><a href="#alias_-6734"><span class="linenos">6734</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_-6735"><a href="#alias_-6735"><span class="linenos">6735</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_-6736"><a href="#alias_-6736"><span class="linenos">6736</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_-6737"><a href="#alias_-6737"><span class="linenos">6737</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="alias_-6738"><a href="#alias_-6738"><span class="linenos">6738</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="alias_-6739"><a href="#alias_-6739"><span class="linenos">6739</span></a><span class="p">):</span>
-</span><span id="alias_-6740"><a href="#alias_-6740"><span class="linenos">6740</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
-</span><span id="alias_-6741"><a href="#alias_-6741"><span class="linenos">6741</span></a>
-</span><span id="alias_-6742"><a href="#alias_-6742"><span class="linenos">6742</span></a><span class="sd"> Example:</span>
-</span><span id="alias_-6743"><a href="#alias_-6743"><span class="linenos">6743</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
-</span><span id="alias_-6744"><a href="#alias_-6744"><span class="linenos">6744</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
-</span><span id="alias_-6745"><a href="#alias_-6745"><span class="linenos">6745</span></a>
-</span><span id="alias_-6746"><a href="#alias_-6746"><span class="linenos">6746</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_-6747"><a href="#alias_-6747"><span class="linenos">6747</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
-</span><span id="alias_-6748"><a href="#alias_-6748"><span class="linenos">6748</span></a>
-</span><span id="alias_-6749"><a href="#alias_-6749"><span class="linenos">6749</span></a><span class="sd"> Args:</span>
-</span><span id="alias_-6750"><a href="#alias_-6750"><span class="linenos">6750</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="alias_-6751"><a href="#alias_-6751"><span class="linenos">6751</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="alias_-6752"><a href="#alias_-6752"><span class="linenos">6752</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
-</span><span id="alias_-6753"><a href="#alias_-6753"><span class="linenos">6753</span></a><span class="sd"> special characters it is quoted.</span>
-</span><span id="alias_-6754"><a href="#alias_-6754"><span class="linenos">6754</span></a><span class="sd"> table: Whether to create a table alias, can also be a list of columns.</span>
-</span><span id="alias_-6755"><a href="#alias_-6755"><span class="linenos">6755</span></a><span class="sd"> quoted: whether to quote the alias</span>
-</span><span id="alias_-6756"><a href="#alias_-6756"><span class="linenos">6756</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="alias_-6757"><a href="#alias_-6757"><span class="linenos">6757</span></a><span class="sd"> copy: Whether to copy the expression.</span>
-</span><span id="alias_-6758"><a href="#alias_-6758"><span class="linenos">6758</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="alias_-6759"><a href="#alias_-6759"><span class="linenos">6759</span></a>
-</span><span id="alias_-6760"><a href="#alias_-6760"><span class="linenos">6760</span></a><span class="sd"> Returns:</span>
-</span><span id="alias_-6761"><a href="#alias_-6761"><span class="linenos">6761</span></a><span class="sd"> Alias: the aliased expression</span>
-</span><span id="alias_-6762"><a href="#alias_-6762"><span class="linenos">6762</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="alias_-6763"><a href="#alias_-6763"><span class="linenos">6763</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="alias_-6764"><a href="#alias_-6764"><span class="linenos">6764</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_-6765"><a href="#alias_-6765"><span class="linenos">6765</span></a>
-</span><span id="alias_-6766"><a href="#alias_-6766"><span class="linenos">6766</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
-</span><span id="alias_-6767"><a href="#alias_-6767"><span class="linenos">6767</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_-6768"><a href="#alias_-6768"><span class="linenos">6768</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_-6769"><a href="#alias_-6769"><span class="linenos">6769</span></a>
-</span><span id="alias_-6770"><a href="#alias_-6770"><span class="linenos">6770</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_-6771"><a href="#alias_-6771"><span class="linenos">6771</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_-6772"><a href="#alias_-6772"><span class="linenos">6772</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_-6773"><a href="#alias_-6773"><span class="linenos">6773</span></a>
-</span><span id="alias_-6774"><a href="#alias_-6774"><span class="linenos">6774</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-6775"><a href="#alias_-6775"><span class="linenos">6775</span></a>
-</span><span id="alias_-6776"><a href="#alias_-6776"><span class="linenos">6776</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_-6777"><a href="#alias_-6777"><span class="linenos">6777</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_-6778"><a href="#alias_-6778"><span class="linenos">6778</span></a> <span class="c1"># for the complete Window expression.</span>
-</span><span id="alias_-6779"><a href="#alias_-6779"><span class="linenos">6779</span></a> <span class="c1">#</span>
-</span><span id="alias_-6780"><a href="#alias_-6780"><span class="linenos">6780</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
-</span><span id="alias_-6781"><a href="#alias_-6781"><span class="linenos">6781</span></a>
-</span><span id="alias_-6782"><a href="#alias_-6782"><span class="linenos">6782</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_-6783"><a href="#alias_-6783"><span class="linenos">6783</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_-6784"><a href="#alias_-6784"><span class="linenos">6784</span></a> <span class="k">return</span> <span class="n">exp</span>
-</span><span id="alias_-6785"><a href="#alias_-6785"><span class="linenos">6785</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-6785"><a href="#alias_-6785"><span class="linenos">6785</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
+</span><span id="alias_-6786"><a href="#alias_-6786"><span class="linenos">6786</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="alias_-6787"><a href="#alias_-6787"><span class="linenos">6787</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="o">|</span> <span class="n">Identifier</span><span class="p">],</span>
+</span><span id="alias_-6788"><a href="#alias_-6788"><span class="linenos">6788</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_-6789"><a href="#alias_-6789"><span class="linenos">6789</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_-6790"><a href="#alias_-6790"><span class="linenos">6790</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_-6791"><a href="#alias_-6791"><span class="linenos">6791</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="alias_-6792"><a href="#alias_-6792"><span class="linenos">6792</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="alias_-6793"><a href="#alias_-6793"><span class="linenos">6793</span></a><span class="p">):</span>
+</span><span id="alias_-6794"><a href="#alias_-6794"><span class="linenos">6794</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
+</span><span id="alias_-6795"><a href="#alias_-6795"><span class="linenos">6795</span></a>
+</span><span id="alias_-6796"><a href="#alias_-6796"><span class="linenos">6796</span></a><span class="sd"> Example:</span>
+</span><span id="alias_-6797"><a href="#alias_-6797"><span class="linenos">6797</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
+</span><span id="alias_-6798"><a href="#alias_-6798"><span class="linenos">6798</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
+</span><span id="alias_-6799"><a href="#alias_-6799"><span class="linenos">6799</span></a>
+</span><span id="alias_-6800"><a href="#alias_-6800"><span class="linenos">6800</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_-6801"><a href="#alias_-6801"><span class="linenos">6801</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
+</span><span id="alias_-6802"><a href="#alias_-6802"><span class="linenos">6802</span></a>
+</span><span id="alias_-6803"><a href="#alias_-6803"><span class="linenos">6803</span></a><span class="sd"> Args:</span>
+</span><span id="alias_-6804"><a href="#alias_-6804"><span class="linenos">6804</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="alias_-6805"><a href="#alias_-6805"><span class="linenos">6805</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="alias_-6806"><a href="#alias_-6806"><span class="linenos">6806</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
+</span><span id="alias_-6807"><a href="#alias_-6807"><span class="linenos">6807</span></a><span class="sd"> special characters it is quoted.</span>
+</span><span id="alias_-6808"><a href="#alias_-6808"><span class="linenos">6808</span></a><span class="sd"> table: Whether to create a table alias, can also be a list of columns.</span>
+</span><span id="alias_-6809"><a href="#alias_-6809"><span class="linenos">6809</span></a><span class="sd"> quoted: whether to quote the alias</span>
+</span><span id="alias_-6810"><a href="#alias_-6810"><span class="linenos">6810</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="alias_-6811"><a href="#alias_-6811"><span class="linenos">6811</span></a><span class="sd"> copy: Whether to copy the expression.</span>
+</span><span id="alias_-6812"><a href="#alias_-6812"><span class="linenos">6812</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="alias_-6813"><a href="#alias_-6813"><span class="linenos">6813</span></a>
+</span><span id="alias_-6814"><a href="#alias_-6814"><span class="linenos">6814</span></a><span class="sd"> Returns:</span>
+</span><span id="alias_-6815"><a href="#alias_-6815"><span class="linenos">6815</span></a><span class="sd"> Alias: the aliased expression</span>
+</span><span id="alias_-6816"><a href="#alias_-6816"><span class="linenos">6816</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="alias_-6817"><a href="#alias_-6817"><span class="linenos">6817</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="alias_-6818"><a href="#alias_-6818"><span class="linenos">6818</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_-6819"><a href="#alias_-6819"><span class="linenos">6819</span></a>
+</span><span id="alias_-6820"><a href="#alias_-6820"><span class="linenos">6820</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
+</span><span id="alias_-6821"><a href="#alias_-6821"><span class="linenos">6821</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_-6822"><a href="#alias_-6822"><span class="linenos">6822</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_-6823"><a href="#alias_-6823"><span class="linenos">6823</span></a>
+</span><span id="alias_-6824"><a href="#alias_-6824"><span class="linenos">6824</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_-6825"><a href="#alias_-6825"><span class="linenos">6825</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_-6826"><a href="#alias_-6826"><span class="linenos">6826</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_-6827"><a href="#alias_-6827"><span class="linenos">6827</span></a>
+</span><span id="alias_-6828"><a href="#alias_-6828"><span class="linenos">6828</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-6829"><a href="#alias_-6829"><span class="linenos">6829</span></a>
+</span><span id="alias_-6830"><a href="#alias_-6830"><span class="linenos">6830</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_-6831"><a href="#alias_-6831"><span class="linenos">6831</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_-6832"><a href="#alias_-6832"><span class="linenos">6832</span></a> <span class="c1"># for the complete Window expression.</span>
+</span><span id="alias_-6833"><a href="#alias_-6833"><span class="linenos">6833</span></a> <span class="c1">#</span>
+</span><span id="alias_-6834"><a href="#alias_-6834"><span class="linenos">6834</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
+</span><span id="alias_-6835"><a href="#alias_-6835"><span class="linenos">6835</span></a>
+</span><span id="alias_-6836"><a href="#alias_-6836"><span class="linenos">6836</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_-6837"><a href="#alias_-6837"><span class="linenos">6837</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_-6838"><a href="#alias_-6838"><span class="linenos">6838</span></a> <span class="k">return</span> <span class="n">exp</span>
+</span><span id="alias_-6839"><a href="#alias_-6839"><span class="linenos">6839</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>
@@ -96296,32 +96988,32 @@ special characters it is quoted.</li>
</div>
<a class="headerlink" href="#subquery"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-6788"><a href="#subquery-6788"><span class="linenos">6788</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
-</span><span id="subquery-6789"><a href="#subquery-6789"><span class="linenos">6789</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
-</span><span id="subquery-6790"><a href="#subquery-6790"><span class="linenos">6790</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="subquery-6791"><a href="#subquery-6791"><span class="linenos">6791</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="subquery-6792"><a href="#subquery-6792"><span class="linenos">6792</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="subquery-6793"><a href="#subquery-6793"><span class="linenos">6793</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
-</span><span id="subquery-6794"><a href="#subquery-6794"><span class="linenos">6794</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="subquery-6795"><a href="#subquery-6795"><span class="linenos">6795</span></a><span class="sd"> Build a subquery expression that&#39;s selected from.</span>
-</span><span id="subquery-6796"><a href="#subquery-6796"><span class="linenos">6796</span></a>
-</span><span id="subquery-6797"><a href="#subquery-6797"><span class="linenos">6797</span></a><span class="sd"> Example:</span>
-</span><span id="subquery-6798"><a href="#subquery-6798"><span class="linenos">6798</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-6799"><a href="#subquery-6799"><span class="linenos">6799</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
-</span><span id="subquery-6800"><a href="#subquery-6800"><span class="linenos">6800</span></a>
-</span><span id="subquery-6801"><a href="#subquery-6801"><span class="linenos">6801</span></a><span class="sd"> Args:</span>
-</span><span id="subquery-6802"><a href="#subquery-6802"><span class="linenos">6802</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
-</span><span id="subquery-6803"><a href="#subquery-6803"><span class="linenos">6803</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
-</span><span id="subquery-6804"><a href="#subquery-6804"><span class="linenos">6804</span></a><span class="sd"> alias: the alias name to use.</span>
-</span><span id="subquery-6805"><a href="#subquery-6805"><span class="linenos">6805</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
-</span><span id="subquery-6806"><a href="#subquery-6806"><span class="linenos">6806</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
-</span><span id="subquery-6807"><a href="#subquery-6807"><span class="linenos">6807</span></a>
-</span><span id="subquery-6808"><a href="#subquery-6808"><span class="linenos">6808</span></a><span class="sd"> Returns:</span>
-</span><span id="subquery-6809"><a href="#subquery-6809"><span class="linenos">6809</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
-</span><span id="subquery-6810"><a href="#subquery-6810"><span class="linenos">6810</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="subquery-6811"><a href="#subquery-6811"><span class="linenos">6811</span></a>
-</span><span id="subquery-6812"><a href="#subquery-6812"><span class="linenos">6812</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 class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="subquery-6813"><a href="#subquery-6813"><span class="linenos">6813</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-6842"><a href="#subquery-6842"><span class="linenos">6842</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
+</span><span id="subquery-6843"><a href="#subquery-6843"><span class="linenos">6843</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
+</span><span id="subquery-6844"><a href="#subquery-6844"><span class="linenos">6844</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="subquery-6845"><a href="#subquery-6845"><span class="linenos">6845</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="subquery-6846"><a href="#subquery-6846"><span class="linenos">6846</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="subquery-6847"><a href="#subquery-6847"><span class="linenos">6847</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
+</span><span id="subquery-6848"><a href="#subquery-6848"><span class="linenos">6848</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="subquery-6849"><a href="#subquery-6849"><span class="linenos">6849</span></a><span class="sd"> Build a subquery expression that&#39;s selected from.</span>
+</span><span id="subquery-6850"><a href="#subquery-6850"><span class="linenos">6850</span></a>
+</span><span id="subquery-6851"><a href="#subquery-6851"><span class="linenos">6851</span></a><span class="sd"> Example:</span>
+</span><span id="subquery-6852"><a href="#subquery-6852"><span class="linenos">6852</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-6853"><a href="#subquery-6853"><span class="linenos">6853</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
+</span><span id="subquery-6854"><a href="#subquery-6854"><span class="linenos">6854</span></a>
+</span><span id="subquery-6855"><a href="#subquery-6855"><span class="linenos">6855</span></a><span class="sd"> Args:</span>
+</span><span id="subquery-6856"><a href="#subquery-6856"><span class="linenos">6856</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
+</span><span id="subquery-6857"><a href="#subquery-6857"><span class="linenos">6857</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
+</span><span id="subquery-6858"><a href="#subquery-6858"><span class="linenos">6858</span></a><span class="sd"> alias: the alias name to use.</span>
+</span><span id="subquery-6859"><a href="#subquery-6859"><span class="linenos">6859</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
+</span><span id="subquery-6860"><a href="#subquery-6860"><span class="linenos">6860</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
+</span><span id="subquery-6861"><a href="#subquery-6861"><span class="linenos">6861</span></a>
+</span><span id="subquery-6862"><a href="#subquery-6862"><span class="linenos">6862</span></a><span class="sd"> Returns:</span>
+</span><span id="subquery-6863"><a href="#subquery-6863"><span class="linenos">6863</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
+</span><span id="subquery-6864"><a href="#subquery-6864"><span class="linenos">6864</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="subquery-6865"><a href="#subquery-6865"><span class="linenos">6865</span></a>
+</span><span id="subquery-6866"><a href="#subquery-6866"><span class="linenos">6866</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 class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="subquery-6867"><a href="#subquery-6867"><span class="linenos">6867</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>
@@ -96367,43 +97059,43 @@ 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-6844"><a href="#column-6844"><span class="linenos">6844</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
-</span><span id="column-6845"><a href="#column-6845"><span class="linenos">6845</span></a> <span class="n">col</span><span class="p">,</span>
-</span><span id="column-6846"><a href="#column-6846"><span class="linenos">6846</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="column-6847"><a href="#column-6847"><span class="linenos">6847</span></a> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="column-6848"><a href="#column-6848"><span class="linenos">6848</span></a> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="column-6849"><a href="#column-6849"><span class="linenos">6849</span></a> <span class="o">*</span><span class="p">,</span>
-</span><span id="column-6850"><a href="#column-6850"><span class="linenos">6850</span></a> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="column-6851"><a href="#column-6851"><span class="linenos">6851</span></a> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-</span><span id="column-6852"><a href="#column-6852"><span class="linenos">6852</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-</span><span id="column-6853"><a href="#column-6853"><span class="linenos">6853</span></a><span class="p">):</span>
-</span><span id="column-6854"><a href="#column-6854"><span class="linenos">6854</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column-6855"><a href="#column-6855"><span class="linenos">6855</span></a><span class="sd"> Build a Column.</span>
-</span><span id="column-6856"><a href="#column-6856"><span class="linenos">6856</span></a>
-</span><span id="column-6857"><a href="#column-6857"><span class="linenos">6857</span></a><span class="sd"> Args:</span>
-</span><span id="column-6858"><a href="#column-6858"><span class="linenos">6858</span></a><span class="sd"> col: Column name.</span>
-</span><span id="column-6859"><a href="#column-6859"><span class="linenos">6859</span></a><span class="sd"> table: Table name.</span>
-</span><span id="column-6860"><a href="#column-6860"><span class="linenos">6860</span></a><span class="sd"> db: Database name.</span>
-</span><span id="column-6861"><a href="#column-6861"><span class="linenos">6861</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="column-6862"><a href="#column-6862"><span class="linenos">6862</span></a><span class="sd"> fields: Additional fields using dots.</span>
-</span><span id="column-6863"><a href="#column-6863"><span class="linenos">6863</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
-</span><span id="column-6864"><a href="#column-6864"><span class="linenos">6864</span></a><span class="sd"> copy: Whether to copy identifiers if passed in.</span>
-</span><span id="column-6865"><a href="#column-6865"><span class="linenos">6865</span></a>
-</span><span id="column-6866"><a href="#column-6866"><span class="linenos">6866</span></a><span class="sd"> Returns:</span>
-</span><span id="column-6867"><a href="#column-6867"><span class="linenos">6867</span></a><span class="sd"> The new Column instance.</span>
-</span><span id="column-6868"><a href="#column-6868"><span class="linenos">6868</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column-6869"><a href="#column-6869"><span class="linenos">6869</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span>
-</span><span id="column-6870"><a href="#column-6870"><span class="linenos">6870</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="column-6871"><a href="#column-6871"><span class="linenos">6871</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="column-6872"><a href="#column-6872"><span class="linenos">6872</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="column-6873"><a href="#column-6873"><span class="linenos">6873</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
-</span><span id="column-6874"><a href="#column-6874"><span class="linenos">6874</span></a> <span class="p">)</span>
-</span><span id="column-6875"><a href="#column-6875"><span class="linenos">6875</span></a>
-</span><span id="column-6876"><a href="#column-6876"><span class="linenos">6876</span></a> <span class="k">if</span> <span class="n">fields</span><span class="p">:</span>
-</span><span id="column-6877"><a href="#column-6877"><span class="linenos">6877</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span>
-</span><span id="column-6878"><a href="#column-6878"><span class="linenos">6878</span></a> <span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">))</span>
-</span><span id="column-6879"><a href="#column-6879"><span class="linenos">6879</span></a> <span class="p">)</span>
-</span><span id="column-6880"><a href="#column-6880"><span class="linenos">6880</span></a> <span class="k">return</span> <span class="n">this</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column-6898"><a href="#column-6898"><span class="linenos">6898</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
+</span><span id="column-6899"><a href="#column-6899"><span class="linenos">6899</span></a> <span class="n">col</span><span class="p">,</span>
+</span><span id="column-6900"><a href="#column-6900"><span class="linenos">6900</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6901"><a href="#column-6901"><span class="linenos">6901</span></a> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6902"><a href="#column-6902"><span class="linenos">6902</span></a> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6903"><a href="#column-6903"><span class="linenos">6903</span></a> <span class="o">*</span><span class="p">,</span>
+</span><span id="column-6904"><a href="#column-6904"><span class="linenos">6904</span></a> <span class="n">fields</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6905"><a href="#column-6905"><span class="linenos">6905</span></a> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+</span><span id="column-6906"><a href="#column-6906"><span class="linenos">6906</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+</span><span id="column-6907"><a href="#column-6907"><span class="linenos">6907</span></a><span class="p">):</span>
+</span><span id="column-6908"><a href="#column-6908"><span class="linenos">6908</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column-6909"><a href="#column-6909"><span class="linenos">6909</span></a><span class="sd"> Build a Column.</span>
+</span><span id="column-6910"><a href="#column-6910"><span class="linenos">6910</span></a>
+</span><span id="column-6911"><a href="#column-6911"><span class="linenos">6911</span></a><span class="sd"> Args:</span>
+</span><span id="column-6912"><a href="#column-6912"><span class="linenos">6912</span></a><span class="sd"> col: Column name.</span>
+</span><span id="column-6913"><a href="#column-6913"><span class="linenos">6913</span></a><span class="sd"> table: Table name.</span>
+</span><span id="column-6914"><a href="#column-6914"><span class="linenos">6914</span></a><span class="sd"> db: Database name.</span>
+</span><span id="column-6915"><a href="#column-6915"><span class="linenos">6915</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="column-6916"><a href="#column-6916"><span class="linenos">6916</span></a><span class="sd"> fields: Additional fields using dots.</span>
+</span><span id="column-6917"><a href="#column-6917"><span class="linenos">6917</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
+</span><span id="column-6918"><a href="#column-6918"><span class="linenos">6918</span></a><span class="sd"> copy: Whether to copy identifiers if passed in.</span>
+</span><span id="column-6919"><a href="#column-6919"><span class="linenos">6919</span></a>
+</span><span id="column-6920"><a href="#column-6920"><span class="linenos">6920</span></a><span class="sd"> Returns:</span>
+</span><span id="column-6921"><a href="#column-6921"><span class="linenos">6921</span></a><span class="sd"> The new Column instance.</span>
+</span><span id="column-6922"><a href="#column-6922"><span class="linenos">6922</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column-6923"><a href="#column-6923"><span class="linenos">6923</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span>
+</span><span id="column-6924"><a href="#column-6924"><span class="linenos">6924</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6925"><a href="#column-6925"><span class="linenos">6925</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6926"><a href="#column-6926"><span class="linenos">6926</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6927"><a href="#column-6927"><span class="linenos">6927</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span>
+</span><span id="column-6928"><a href="#column-6928"><span class="linenos">6928</span></a> <span class="p">)</span>
+</span><span id="column-6929"><a href="#column-6929"><span class="linenos">6929</span></a>
+</span><span id="column-6930"><a href="#column-6930"><span class="linenos">6930</span></a> <span class="k">if</span> <span class="n">fields</span><span class="p">:</span>
+</span><span id="column-6931"><a href="#column-6931"><span class="linenos">6931</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span>
+</span><span id="column-6932"><a href="#column-6932"><span class="linenos">6932</span></a> <span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">))</span>
+</span><span id="column-6933"><a href="#column-6933"><span class="linenos">6933</span></a> <span class="p">)</span>
+</span><span id="column-6934"><a href="#column-6934"><span class="linenos">6934</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
@@ -96441,31 +97133,31 @@ 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-6883"><a href="#cast-6883"><span class="linenos">6883</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
-</span><span id="cast-6884"><a href="#cast-6884"><span class="linenos">6884</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
-</span><span id="cast-6885"><a href="#cast-6885"><span class="linenos">6885</span></a>
-</span><span id="cast-6886"><a href="#cast-6886"><span class="linenos">6886</span></a><span class="sd"> Example:</span>
-</span><span id="cast-6887"><a href="#cast-6887"><span class="linenos">6887</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
-</span><span id="cast-6888"><a href="#cast-6888"><span class="linenos">6888</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
-</span><span id="cast-6889"><a href="#cast-6889"><span class="linenos">6889</span></a>
-</span><span id="cast-6890"><a href="#cast-6890"><span class="linenos">6890</span></a><span class="sd"> Args:</span>
-</span><span id="cast-6891"><a href="#cast-6891"><span class="linenos">6891</span></a><span class="sd"> expression: The expression to cast.</span>
-</span><span id="cast-6892"><a href="#cast-6892"><span class="linenos">6892</span></a><span class="sd"> to: The datatype to cast to.</span>
-</span><span id="cast-6893"><a href="#cast-6893"><span class="linenos">6893</span></a><span class="sd"> copy: Whether to copy the supplied expressions.</span>
-</span><span id="cast-6894"><a href="#cast-6894"><span class="linenos">6894</span></a>
-</span><span id="cast-6895"><a href="#cast-6895"><span class="linenos">6895</span></a><span class="sd"> Returns:</span>
-</span><span id="cast-6896"><a href="#cast-6896"><span class="linenos">6896</span></a><span class="sd"> The new Cast instance.</span>
-</span><span id="cast-6897"><a href="#cast-6897"><span class="linenos">6897</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="cast-6898"><a href="#cast-6898"><span class="linenos">6898</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="cast-6899"><a href="#cast-6899"><span class="linenos">6899</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="cast-6900"><a href="#cast-6900"><span class="linenos">6900</span></a>
-</span><span id="cast-6901"><a href="#cast-6901"><span class="linenos">6901</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">data_type</span><span class="p">):</span>
-</span><span id="cast-6902"><a href="#cast-6902"><span class="linenos">6902</span></a> <span class="k">return</span> <span class="n">expr</span>
-</span><span id="cast-6903"><a href="#cast-6903"><span class="linenos">6903</span></a>
-</span><span id="cast-6904"><a href="#cast-6904"><span class="linenos">6904</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
-</span><span id="cast-6905"><a href="#cast-6905"><span class="linenos">6905</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
-</span><span id="cast-6906"><a href="#cast-6906"><span class="linenos">6906</span></a>
-</span><span id="cast-6907"><a href="#cast-6907"><span class="linenos">6907</span></a> <span class="k">return</span> <span class="n">expr</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="cast-6937"><a href="#cast-6937"><span class="linenos">6937</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="n">DATA_TYPE</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
+</span><span id="cast-6938"><a href="#cast-6938"><span class="linenos">6938</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
+</span><span id="cast-6939"><a href="#cast-6939"><span class="linenos">6939</span></a>
+</span><span id="cast-6940"><a href="#cast-6940"><span class="linenos">6940</span></a><span class="sd"> Example:</span>
+</span><span id="cast-6941"><a href="#cast-6941"><span class="linenos">6941</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
+</span><span id="cast-6942"><a href="#cast-6942"><span class="linenos">6942</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
+</span><span id="cast-6943"><a href="#cast-6943"><span class="linenos">6943</span></a>
+</span><span id="cast-6944"><a href="#cast-6944"><span class="linenos">6944</span></a><span class="sd"> Args:</span>
+</span><span id="cast-6945"><a href="#cast-6945"><span class="linenos">6945</span></a><span class="sd"> expression: The expression to cast.</span>
+</span><span id="cast-6946"><a href="#cast-6946"><span class="linenos">6946</span></a><span class="sd"> to: The datatype to cast to.</span>
+</span><span id="cast-6947"><a href="#cast-6947"><span class="linenos">6947</span></a><span class="sd"> copy: Whether to copy the supplied expressions.</span>
+</span><span id="cast-6948"><a href="#cast-6948"><span class="linenos">6948</span></a>
+</span><span id="cast-6949"><a href="#cast-6949"><span class="linenos">6949</span></a><span class="sd"> Returns:</span>
+</span><span id="cast-6950"><a href="#cast-6950"><span class="linenos">6950</span></a><span class="sd"> The new Cast instance.</span>
+</span><span id="cast-6951"><a href="#cast-6951"><span class="linenos">6951</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="cast-6952"><a href="#cast-6952"><span class="linenos">6952</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="cast-6953"><a href="#cast-6953"><span class="linenos">6953</span></a> <span class="n">data_type</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="cast-6954"><a href="#cast-6954"><span class="linenos">6954</span></a>
+</span><span id="cast-6955"><a href="#cast-6955"><span class="linenos">6955</span></a> <span class="k">if</span> <span class="n">expr</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">data_type</span><span class="p">):</span>
+</span><span id="cast-6956"><a href="#cast-6956"><span class="linenos">6956</span></a> <span class="k">return</span> <span class="n">expr</span>
+</span><span id="cast-6957"><a href="#cast-6957"><span class="linenos">6957</span></a>
+</span><span id="cast-6958"><a href="#cast-6958"><span class="linenos">6958</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span>
+</span><span id="cast-6959"><a href="#cast-6959"><span class="linenos">6959</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span>
+</span><span id="cast-6960"><a href="#cast-6960"><span class="linenos">6960</span></a>
+</span><span id="cast-6961"><a href="#cast-6961"><span class="linenos">6961</span></a> <span class="k">return</span> <span class="n">expr</span>
</span></pre></div>
@@ -96509,31 +97201,31 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#table_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_-6910"><a href="#table_-6910"><span class="linenos">6910</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
-</span><span id="table_-6911"><a href="#table_-6911"><span class="linenos">6911</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
-</span><span id="table_-6912"><a href="#table_-6912"><span class="linenos">6912</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6913"><a href="#table_-6913"><span class="linenos">6913</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6914"><a href="#table_-6914"><span class="linenos">6914</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6915"><a href="#table_-6915"><span class="linenos">6915</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6916"><a href="#table_-6916"><span class="linenos">6916</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
-</span><span id="table_-6917"><a href="#table_-6917"><span class="linenos">6917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
-</span><span id="table_-6918"><a href="#table_-6918"><span class="linenos">6918</span></a>
-</span><span id="table_-6919"><a href="#table_-6919"><span class="linenos">6919</span></a><span class="sd"> Args:</span>
-</span><span id="table_-6920"><a href="#table_-6920"><span class="linenos">6920</span></a><span class="sd"> table: Table name.</span>
-</span><span id="table_-6921"><a href="#table_-6921"><span class="linenos">6921</span></a><span class="sd"> db: Database name.</span>
-</span><span id="table_-6922"><a href="#table_-6922"><span class="linenos">6922</span></a><span class="sd"> catalog: Catalog name.</span>
-</span><span id="table_-6923"><a href="#table_-6923"><span class="linenos">6923</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
-</span><span id="table_-6924"><a href="#table_-6924"><span class="linenos">6924</span></a><span class="sd"> alias: Table&#39;s alias.</span>
-</span><span id="table_-6925"><a href="#table_-6925"><span class="linenos">6925</span></a>
-</span><span id="table_-6926"><a href="#table_-6926"><span class="linenos">6926</span></a><span class="sd"> Returns:</span>
-</span><span id="table_-6927"><a href="#table_-6927"><span class="linenos">6927</span></a><span class="sd"> The new Table instance.</span>
-</span><span id="table_-6928"><a href="#table_-6928"><span class="linenos">6928</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_-6929"><a href="#table_-6929"><span class="linenos">6929</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
-</span><span id="table_-6930"><a href="#table_-6930"><span class="linenos">6930</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6931"><a href="#table_-6931"><span class="linenos">6931</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6932"><a href="#table_-6932"><span class="linenos">6932</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="table_-6933"><a href="#table_-6933"><span class="linenos">6933</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_-6934"><a href="#table_-6934"><span class="linenos">6934</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_-6964"><a href="#table_-6964"><span class="linenos">6964</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
+</span><span id="table_-6965"><a href="#table_-6965"><span class="linenos">6965</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
+</span><span id="table_-6966"><a href="#table_-6966"><span class="linenos">6966</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6967"><a href="#table_-6967"><span class="linenos">6967</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6968"><a href="#table_-6968"><span class="linenos">6968</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6969"><a href="#table_-6969"><span class="linenos">6969</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6970"><a href="#table_-6970"><span class="linenos">6970</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
+</span><span id="table_-6971"><a href="#table_-6971"><span class="linenos">6971</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
+</span><span id="table_-6972"><a href="#table_-6972"><span class="linenos">6972</span></a>
+</span><span id="table_-6973"><a href="#table_-6973"><span class="linenos">6973</span></a><span class="sd"> Args:</span>
+</span><span id="table_-6974"><a href="#table_-6974"><span class="linenos">6974</span></a><span class="sd"> table: Table name.</span>
+</span><span id="table_-6975"><a href="#table_-6975"><span class="linenos">6975</span></a><span class="sd"> db: Database name.</span>
+</span><span id="table_-6976"><a href="#table_-6976"><span class="linenos">6976</span></a><span class="sd"> catalog: Catalog name.</span>
+</span><span id="table_-6977"><a href="#table_-6977"><span class="linenos">6977</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
+</span><span id="table_-6978"><a href="#table_-6978"><span class="linenos">6978</span></a><span class="sd"> alias: Table&#39;s alias.</span>
+</span><span id="table_-6979"><a href="#table_-6979"><span class="linenos">6979</span></a>
+</span><span id="table_-6980"><a href="#table_-6980"><span class="linenos">6980</span></a><span class="sd"> Returns:</span>
+</span><span id="table_-6981"><a href="#table_-6981"><span class="linenos">6981</span></a><span class="sd"> The new Table instance.</span>
+</span><span id="table_-6982"><a href="#table_-6982"><span class="linenos">6982</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_-6983"><a href="#table_-6983"><span class="linenos">6983</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
+</span><span id="table_-6984"><a href="#table_-6984"><span class="linenos">6984</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6985"><a href="#table_-6985"><span class="linenos">6985</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">db</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6986"><a href="#table_-6986"><span class="linenos">6986</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> <span class="k">if</span> <span class="n">catalog</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="table_-6987"><a href="#table_-6987"><span class="linenos">6987</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_-6988"><a href="#table_-6988"><span class="linenos">6988</span></a> <span class="p">)</span>
</span></pre></div>
@@ -96569,37 +97261,37 @@ If an Expression instance is passed, this is used as-is.</li>
</div>
<a class="headerlink" href="#values"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="values-6937"><a href="#values-6937"><span class="linenos">6937</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
-</span><span id="values-6938"><a href="#values-6938"><span class="linenos">6938</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-6939"><a href="#values-6939"><span class="linenos">6939</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-6940"><a href="#values-6940"><span class="linenos">6940</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-6941"><a href="#values-6941"><span class="linenos">6941</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
-</span><span id="values-6942"><a href="#values-6942"><span class="linenos">6942</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
-</span><span id="values-6943"><a href="#values-6943"><span class="linenos">6943</span></a>
-</span><span id="values-6944"><a href="#values-6944"><span class="linenos">6944</span></a><span class="sd"> Example:</span>
-</span><span id="values-6945"><a href="#values-6945"><span class="linenos">6945</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
-</span><span id="values-6946"><a href="#values-6946"><span class="linenos">6946</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
-</span><span id="values-6947"><a href="#values-6947"><span class="linenos">6947</span></a>
-</span><span id="values-6948"><a href="#values-6948"><span class="linenos">6948</span></a><span class="sd"> Args:</span>
-</span><span id="values-6949"><a href="#values-6949"><span class="linenos">6949</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
-</span><span id="values-6950"><a href="#values-6950"><span class="linenos">6950</span></a><span class="sd"> alias: optional alias</span>
-</span><span id="values-6951"><a href="#values-6951"><span class="linenos">6951</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-6952"><a href="#values-6952"><span class="linenos">6952</span></a><span class="sd"> If either are provided then an alias is also required.</span>
-</span><span id="values-6953"><a href="#values-6953"><span class="linenos">6953</span></a>
-</span><span id="values-6954"><a href="#values-6954"><span class="linenos">6954</span></a><span class="sd"> Returns:</span>
-</span><span id="values-6955"><a href="#values-6955"><span class="linenos">6955</span></a><span class="sd"> Values: the Values expression object</span>
-</span><span id="values-6956"><a href="#values-6956"><span class="linenos">6956</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="values-6957"><a href="#values-6957"><span class="linenos">6957</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-6958"><a href="#values-6958"><span class="linenos">6958</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-6959"><a href="#values-6959"><span class="linenos">6959</span></a>
-</span><span id="values-6960"><a href="#values-6960"><span class="linenos">6960</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
-</span><span id="values-6961"><a href="#values-6961"><span class="linenos">6961</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-6962"><a href="#values-6962"><span class="linenos">6962</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
-</span><span id="values-6963"><a href="#values-6963"><span class="linenos">6963</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-6964"><a href="#values-6964"><span class="linenos">6964</span></a> <span class="k">if</span> <span class="n">columns</span>
-</span><span id="values-6965"><a href="#values-6965"><span class="linenos">6965</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
-</span><span id="values-6966"><a href="#values-6966"><span class="linenos">6966</span></a> <span class="p">),</span>
-</span><span id="values-6967"><a href="#values-6967"><span class="linenos">6967</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="values-6991"><a href="#values-6991"><span class="linenos">6991</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
+</span><span id="values-6992"><a href="#values-6992"><span class="linenos">6992</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-6993"><a href="#values-6993"><span class="linenos">6993</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-6994"><a href="#values-6994"><span class="linenos">6994</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-6995"><a href="#values-6995"><span class="linenos">6995</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
+</span><span id="values-6996"><a href="#values-6996"><span class="linenos">6996</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
+</span><span id="values-6997"><a href="#values-6997"><span class="linenos">6997</span></a>
+</span><span id="values-6998"><a href="#values-6998"><span class="linenos">6998</span></a><span class="sd"> Example:</span>
+</span><span id="values-6999"><a href="#values-6999"><span class="linenos">6999</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
+</span><span id="values-7000"><a href="#values-7000"><span class="linenos">7000</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
+</span><span id="values-7001"><a href="#values-7001"><span class="linenos">7001</span></a>
+</span><span id="values-7002"><a href="#values-7002"><span class="linenos">7002</span></a><span class="sd"> Args:</span>
+</span><span id="values-7003"><a href="#values-7003"><span class="linenos">7003</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
+</span><span id="values-7004"><a href="#values-7004"><span class="linenos">7004</span></a><span class="sd"> alias: optional alias</span>
+</span><span id="values-7005"><a href="#values-7005"><span class="linenos">7005</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-7006"><a href="#values-7006"><span class="linenos">7006</span></a><span class="sd"> If either are provided then an alias is also required.</span>
+</span><span id="values-7007"><a href="#values-7007"><span class="linenos">7007</span></a>
+</span><span id="values-7008"><a href="#values-7008"><span class="linenos">7008</span></a><span class="sd"> Returns:</span>
+</span><span id="values-7009"><a href="#values-7009"><span class="linenos">7009</span></a><span class="sd"> Values: the Values expression object</span>
+</span><span id="values-7010"><a href="#values-7010"><span class="linenos">7010</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="values-7011"><a href="#values-7011"><span class="linenos">7011</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-7012"><a href="#values-7012"><span class="linenos">7012</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-7013"><a href="#values-7013"><span class="linenos">7013</span></a>
+</span><span id="values-7014"><a href="#values-7014"><span class="linenos">7014</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
+</span><span id="values-7015"><a href="#values-7015"><span class="linenos">7015</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-7016"><a href="#values-7016"><span class="linenos">7016</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
+</span><span id="values-7017"><a href="#values-7017"><span class="linenos">7017</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-7018"><a href="#values-7018"><span class="linenos">7018</span></a> <span class="k">if</span> <span class="n">columns</span>
+</span><span id="values-7019"><a href="#values-7019"><span class="linenos">7019</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
+</span><span id="values-7020"><a href="#values-7020"><span class="linenos">7020</span></a> <span class="p">),</span>
+</span><span id="values-7021"><a href="#values-7021"><span class="linenos">7021</span></a> <span class="p">)</span>
</span></pre></div>
@@ -96644,28 +97336,28 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#var"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="var-6970"><a href="#var-6970"><span class="linenos">6970</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
-</span><span id="var-6971"><a href="#var-6971"><span class="linenos">6971</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
-</span><span id="var-6972"><a href="#var-6972"><span class="linenos">6972</span></a>
-</span><span id="var-6973"><a href="#var-6973"><span class="linenos">6973</span></a><span class="sd"> Example:</span>
-</span><span id="var-6974"><a href="#var-6974"><span class="linenos">6974</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
-</span><span id="var-6975"><a href="#var-6975"><span class="linenos">6975</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
-</span><span id="var-6976"><a href="#var-6976"><span class="linenos">6976</span></a>
-</span><span id="var-6977"><a href="#var-6977"><span class="linenos">6977</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
-</span><span id="var-6978"><a href="#var-6978"><span class="linenos">6978</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
-</span><span id="var-6979"><a href="#var-6979"><span class="linenos">6979</span></a>
-</span><span id="var-6980"><a href="#var-6980"><span class="linenos">6980</span></a><span class="sd"> Args:</span>
-</span><span id="var-6981"><a href="#var-6981"><span class="linenos">6981</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-6982"><a href="#var-6982"><span class="linenos">6982</span></a>
-</span><span id="var-6983"><a href="#var-6983"><span class="linenos">6983</span></a><span class="sd"> Returns:</span>
-</span><span id="var-6984"><a href="#var-6984"><span class="linenos">6984</span></a><span class="sd"> The new variable node.</span>
-</span><span id="var-6985"><a href="#var-6985"><span class="linenos">6985</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="var-6986"><a href="#var-6986"><span class="linenos">6986</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-6987"><a href="#var-6987"><span class="linenos">6987</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
-</span><span id="var-6988"><a href="#var-6988"><span class="linenos">6988</span></a>
-</span><span id="var-6989"><a href="#var-6989"><span class="linenos">6989</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-6990"><a href="#var-6990"><span class="linenos">6990</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-6991"><a href="#var-6991"><span class="linenos">6991</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-7024"><a href="#var-7024"><span class="linenos">7024</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
+</span><span id="var-7025"><a href="#var-7025"><span class="linenos">7025</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
+</span><span id="var-7026"><a href="#var-7026"><span class="linenos">7026</span></a>
+</span><span id="var-7027"><a href="#var-7027"><span class="linenos">7027</span></a><span class="sd"> Example:</span>
+</span><span id="var-7028"><a href="#var-7028"><span class="linenos">7028</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
+</span><span id="var-7029"><a href="#var-7029"><span class="linenos">7029</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="var-7030"><a href="#var-7030"><span class="linenos">7030</span></a>
+</span><span id="var-7031"><a href="#var-7031"><span class="linenos">7031</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
+</span><span id="var-7032"><a href="#var-7032"><span class="linenos">7032</span></a><span class="sd"> &#39;Var(this=x)&#39;</span>
+</span><span id="var-7033"><a href="#var-7033"><span class="linenos">7033</span></a>
+</span><span id="var-7034"><a href="#var-7034"><span class="linenos">7034</span></a><span class="sd"> Args:</span>
+</span><span id="var-7035"><a href="#var-7035"><span class="linenos">7035</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-7036"><a href="#var-7036"><span class="linenos">7036</span></a>
+</span><span id="var-7037"><a href="#var-7037"><span class="linenos">7037</span></a><span class="sd"> Returns:</span>
+</span><span id="var-7038"><a href="#var-7038"><span class="linenos">7038</span></a><span class="sd"> The new variable node.</span>
+</span><span id="var-7039"><a href="#var-7039"><span class="linenos">7039</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="var-7040"><a href="#var-7040"><span class="linenos">7040</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-7041"><a href="#var-7041"><span class="linenos">7041</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
+</span><span id="var-7042"><a href="#var-7042"><span class="linenos">7042</span></a>
+</span><span id="var-7043"><a href="#var-7043"><span class="linenos">7043</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-7044"><a href="#var-7044"><span class="linenos">7044</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-7045"><a href="#var-7045"><span class="linenos">7045</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>
@@ -96713,29 +97405,29 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#rename_table"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-6994"><a href="#rename_table-6994"><span class="linenos">6994</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span>
-</span><span id="rename_table-6995"><a href="#rename_table-6995"><span class="linenos">6995</span></a> <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><span id="rename_table-6996"><a href="#rename_table-6996"><span class="linenos">6996</span></a> <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><span id="rename_table-6997"><a href="#rename_table-6997"><span class="linenos">6997</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="rename_table-6998"><a href="#rename_table-6998"><span class="linenos">6998</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="rename_table-6999"><a href="#rename_table-6999"><span class="linenos">6999</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
-</span><span id="rename_table-7000"><a href="#rename_table-7000"><span class="linenos">7000</span></a>
-</span><span id="rename_table-7001"><a href="#rename_table-7001"><span class="linenos">7001</span></a><span class="sd"> Args:</span>
-</span><span id="rename_table-7002"><a href="#rename_table-7002"><span class="linenos">7002</span></a><span class="sd"> old_name: The old name of the table</span>
-</span><span id="rename_table-7003"><a href="#rename_table-7003"><span class="linenos">7003</span></a><span class="sd"> new_name: The new name of the table</span>
-</span><span id="rename_table-7004"><a href="#rename_table-7004"><span class="linenos">7004</span></a><span class="sd"> dialect: The dialect to parse the table.</span>
-</span><span id="rename_table-7005"><a href="#rename_table-7005"><span class="linenos">7005</span></a>
-</span><span id="rename_table-7006"><a href="#rename_table-7006"><span class="linenos">7006</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_table-7007"><a href="#rename_table-7007"><span class="linenos">7007</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_table-7008"><a href="#rename_table-7008"><span class="linenos">7008</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_table-7009"><a href="#rename_table-7009"><span class="linenos">7009</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="rename_table-7010"><a href="#rename_table-7010"><span class="linenos">7010</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="rename_table-7011"><a href="#rename_table-7011"><span class="linenos">7011</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_table-7012"><a href="#rename_table-7012"><span class="linenos">7012</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-7013"><a href="#rename_table-7013"><span class="linenos">7013</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_table-7014"><a href="#rename_table-7014"><span class="linenos">7014</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-7015"><a href="#rename_table-7015"><span class="linenos">7015</span></a> <span class="p">],</span>
-</span><span id="rename_table-7016"><a href="#rename_table-7016"><span class="linenos">7016</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-7048"><a href="#rename_table-7048"><span class="linenos">7048</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span>
+</span><span id="rename_table-7049"><a href="#rename_table-7049"><span class="linenos">7049</span></a> <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><span id="rename_table-7050"><a href="#rename_table-7050"><span class="linenos">7050</span></a> <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><span id="rename_table-7051"><a href="#rename_table-7051"><span class="linenos">7051</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="rename_table-7052"><a href="#rename_table-7052"><span class="linenos">7052</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="rename_table-7053"><a href="#rename_table-7053"><span class="linenos">7053</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
+</span><span id="rename_table-7054"><a href="#rename_table-7054"><span class="linenos">7054</span></a>
+</span><span id="rename_table-7055"><a href="#rename_table-7055"><span class="linenos">7055</span></a><span class="sd"> Args:</span>
+</span><span id="rename_table-7056"><a href="#rename_table-7056"><span class="linenos">7056</span></a><span class="sd"> old_name: The old name of the table</span>
+</span><span id="rename_table-7057"><a href="#rename_table-7057"><span class="linenos">7057</span></a><span class="sd"> new_name: The new name of the table</span>
+</span><span id="rename_table-7058"><a href="#rename_table-7058"><span class="linenos">7058</span></a><span class="sd"> dialect: The dialect to parse the table.</span>
+</span><span id="rename_table-7059"><a href="#rename_table-7059"><span class="linenos">7059</span></a>
+</span><span id="rename_table-7060"><a href="#rename_table-7060"><span class="linenos">7060</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_table-7061"><a href="#rename_table-7061"><span class="linenos">7061</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_table-7062"><a href="#rename_table-7062"><span class="linenos">7062</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_table-7063"><a href="#rename_table-7063"><span class="linenos">7063</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="rename_table-7064"><a href="#rename_table-7064"><span class="linenos">7064</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 class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="rename_table-7065"><a href="#rename_table-7065"><span class="linenos">7065</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_table-7066"><a href="#rename_table-7066"><span class="linenos">7066</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-7067"><a href="#rename_table-7067"><span class="linenos">7067</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_table-7068"><a href="#rename_table-7068"><span class="linenos">7068</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-7069"><a href="#rename_table-7069"><span class="linenos">7069</span></a> <span class="p">],</span>
+</span><span id="rename_table-7070"><a href="#rename_table-7070"><span class="linenos">7070</span></a> <span class="p">)</span>
</span></pre></div>
@@ -96769,34 +97461,34 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#rename_column"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="rename_column-7019"><a href="#rename_column-7019"><span class="linenos">7019</span></a><span class="k">def</span> <span class="nf">rename_column</span><span class="p">(</span>
-</span><span id="rename_column-7020"><a href="#rename_column-7020"><span class="linenos">7020</span></a> <span class="n">table_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><span id="rename_column-7021"><a href="#rename_column-7021"><span class="linenos">7021</span></a> <span class="n">old_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
-</span><span id="rename_column-7022"><a href="#rename_column-7022"><span class="linenos">7022</span></a> <span class="n">new_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
-</span><span id="rename_column-7023"><a href="#rename_column-7023"><span class="linenos">7023</span></a> <span class="n">exists</span><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="rename_column-7024"><a href="#rename_column-7024"><span class="linenos">7024</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="rename_column-7025"><a href="#rename_column-7025"><span class="linenos">7025</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
-</span><span id="rename_column-7026"><a href="#rename_column-7026"><span class="linenos">7026</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME COLUMN... expression</span>
-</span><span id="rename_column-7027"><a href="#rename_column-7027"><span class="linenos">7027</span></a>
-</span><span id="rename_column-7028"><a href="#rename_column-7028"><span class="linenos">7028</span></a><span class="sd"> Args:</span>
-</span><span id="rename_column-7029"><a href="#rename_column-7029"><span class="linenos">7029</span></a><span class="sd"> table_name: Name of the table</span>
-</span><span id="rename_column-7030"><a href="#rename_column-7030"><span class="linenos">7030</span></a><span class="sd"> old_column: The old name of the column</span>
-</span><span id="rename_column-7031"><a href="#rename_column-7031"><span class="linenos">7031</span></a><span class="sd"> new_column: The new name of the column</span>
-</span><span id="rename_column-7032"><a href="#rename_column-7032"><span class="linenos">7032</span></a><span class="sd"> exists: Whether to add the `IF EXISTS` clause</span>
-</span><span id="rename_column-7033"><a href="#rename_column-7033"><span class="linenos">7033</span></a><span class="sd"> dialect: The dialect to parse the table/column.</span>
-</span><span id="rename_column-7034"><a href="#rename_column-7034"><span class="linenos">7034</span></a>
-</span><span id="rename_column-7035"><a href="#rename_column-7035"><span class="linenos">7035</span></a><span class="sd"> Returns:</span>
-</span><span id="rename_column-7036"><a href="#rename_column-7036"><span class="linenos">7036</span></a><span class="sd"> Alter table expression</span>
-</span><span id="rename_column-7037"><a href="#rename_column-7037"><span class="linenos">7037</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="rename_column-7038"><a href="#rename_column-7038"><span class="linenos">7038</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">table_name</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="rename_column-7039"><a href="#rename_column-7039"><span class="linenos">7039</span></a> <span class="n">old_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">old_column_name</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="rename_column-7040"><a href="#rename_column-7040"><span class="linenos">7040</span></a> <span class="n">new_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">new_column_name</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="rename_column-7041"><a href="#rename_column-7041"><span class="linenos">7041</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
-</span><span id="rename_column-7042"><a href="#rename_column-7042"><span class="linenos">7042</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
-</span><span id="rename_column-7043"><a href="#rename_column-7043"><span class="linenos">7043</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="rename_column-7044"><a href="#rename_column-7044"><span class="linenos">7044</span></a> <span class="n">RenameColumn</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">old_column</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">new_column</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">),</span>
-</span><span id="rename_column-7045"><a href="#rename_column-7045"><span class="linenos">7045</span></a> <span class="p">],</span>
-</span><span id="rename_column-7046"><a href="#rename_column-7046"><span class="linenos">7046</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="rename_column-7073"><a href="#rename_column-7073"><span class="linenos">7073</span></a><span class="k">def</span> <span class="nf">rename_column</span><span class="p">(</span>
+</span><span id="rename_column-7074"><a href="#rename_column-7074"><span class="linenos">7074</span></a> <span class="n">table_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><span id="rename_column-7075"><a href="#rename_column-7075"><span class="linenos">7075</span></a> <span class="n">old_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
+</span><span id="rename_column-7076"><a href="#rename_column-7076"><span class="linenos">7076</span></a> <span class="n">new_column_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span>
+</span><span id="rename_column-7077"><a href="#rename_column-7077"><span class="linenos">7077</span></a> <span class="n">exists</span><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="rename_column-7078"><a href="#rename_column-7078"><span class="linenos">7078</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="rename_column-7079"><a href="#rename_column-7079"><span class="linenos">7079</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
+</span><span id="rename_column-7080"><a href="#rename_column-7080"><span class="linenos">7080</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME COLUMN... expression</span>
+</span><span id="rename_column-7081"><a href="#rename_column-7081"><span class="linenos">7081</span></a>
+</span><span id="rename_column-7082"><a href="#rename_column-7082"><span class="linenos">7082</span></a><span class="sd"> Args:</span>
+</span><span id="rename_column-7083"><a href="#rename_column-7083"><span class="linenos">7083</span></a><span class="sd"> table_name: Name of the table</span>
+</span><span id="rename_column-7084"><a href="#rename_column-7084"><span class="linenos">7084</span></a><span class="sd"> old_column: The old name of the column</span>
+</span><span id="rename_column-7085"><a href="#rename_column-7085"><span class="linenos">7085</span></a><span class="sd"> new_column: The new name of the column</span>
+</span><span id="rename_column-7086"><a href="#rename_column-7086"><span class="linenos">7086</span></a><span class="sd"> exists: Whether to add the `IF EXISTS` clause</span>
+</span><span id="rename_column-7087"><a href="#rename_column-7087"><span class="linenos">7087</span></a><span class="sd"> dialect: The dialect to parse the table/column.</span>
+</span><span id="rename_column-7088"><a href="#rename_column-7088"><span class="linenos">7088</span></a>
+</span><span id="rename_column-7089"><a href="#rename_column-7089"><span class="linenos">7089</span></a><span class="sd"> Returns:</span>
+</span><span id="rename_column-7090"><a href="#rename_column-7090"><span class="linenos">7090</span></a><span class="sd"> Alter table expression</span>
+</span><span id="rename_column-7091"><a href="#rename_column-7091"><span class="linenos">7091</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="rename_column-7092"><a href="#rename_column-7092"><span class="linenos">7092</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">table_name</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="rename_column-7093"><a href="#rename_column-7093"><span class="linenos">7093</span></a> <span class="n">old_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">old_column_name</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="rename_column-7094"><a href="#rename_column-7094"><span class="linenos">7094</span></a> <span class="n">new_column</span> <span class="o">=</span> <span class="n">to_column</span><span class="p">(</span><span class="n">new_column_name</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="rename_column-7095"><a href="#rename_column-7095"><span class="linenos">7095</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
+</span><span id="rename_column-7096"><a href="#rename_column-7096"><span class="linenos">7096</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
+</span><span id="rename_column-7097"><a href="#rename_column-7097"><span class="linenos">7097</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="rename_column-7098"><a href="#rename_column-7098"><span class="linenos">7098</span></a> <span class="n">RenameColumn</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">old_column</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">new_column</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">),</span>
+</span><span id="rename_column-7099"><a href="#rename_column-7099"><span class="linenos">7099</span></a> <span class="p">],</span>
+</span><span id="rename_column-7100"><a href="#rename_column-7100"><span class="linenos">7100</span></a> <span class="p">)</span>
</span></pre></div>
@@ -96832,66 +97524,66 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#convert"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="convert-7049"><a href="#convert-7049"><span class="linenos">7049</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="convert-7050"><a href="#convert-7050"><span class="linenos">7050</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-7051"><a href="#convert-7051"><span class="linenos">7051</span></a>
-</span><span id="convert-7052"><a href="#convert-7052"><span class="linenos">7052</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
-</span><span id="convert-7053"><a href="#convert-7053"><span class="linenos">7053</span></a>
-</span><span id="convert-7054"><a href="#convert-7054"><span class="linenos">7054</span></a><span class="sd"> Args:</span>
-</span><span id="convert-7055"><a href="#convert-7055"><span class="linenos">7055</span></a><span class="sd"> value: A python object.</span>
-</span><span id="convert-7056"><a href="#convert-7056"><span class="linenos">7056</span></a><span class="sd"> copy: Whether to copy `value` (only applies to Expressions and collections).</span>
-</span><span id="convert-7057"><a href="#convert-7057"><span class="linenos">7057</span></a>
-</span><span id="convert-7058"><a href="#convert-7058"><span class="linenos">7058</span></a><span class="sd"> Returns:</span>
-</span><span id="convert-7059"><a href="#convert-7059"><span class="linenos">7059</span></a><span class="sd"> The equivalent expression object.</span>
-</span><span id="convert-7060"><a href="#convert-7060"><span class="linenos">7060</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="convert-7061"><a href="#convert-7061"><span class="linenos">7061</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-7062"><a href="#convert-7062"><span class="linenos">7062</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
-</span><span id="convert-7063"><a href="#convert-7063"><span class="linenos">7063</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-7064"><a href="#convert-7064"><span class="linenos">7064</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-7065"><a href="#convert-7065"><span class="linenos">7065</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-7066"><a href="#convert-7066"><span class="linenos">7066</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-7067"><a href="#convert-7067"><span class="linenos">7067</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
-</span><span id="convert-7068"><a href="#convert-7068"><span class="linenos">7068</span></a> <span class="k">return</span> <span class="n">null</span><span class="p">()</span>
-</span><span id="convert-7069"><a href="#convert-7069"><span class="linenos">7069</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-7070"><a href="#convert-7070"><span class="linenos">7070</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-7071"><a href="#convert-7071"><span class="linenos">7071</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">bytes</span><span class="p">):</span>
-</span><span id="convert-7072"><a href="#convert-7072"><span class="linenos">7072</span></a> <span class="k">return</span> <span class="n">HexString</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="o">.</span><span class="n">hex</span><span class="p">())</span>
-</span><span id="convert-7073"><a href="#convert-7073"><span class="linenos">7073</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-7074"><a href="#convert-7074"><span class="linenos">7074</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-7075"><a href="#convert-7075"><span class="linenos">7075</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-7076"><a href="#convert-7076"><span class="linenos">7076</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span>
-</span><span id="convert-7077"><a href="#convert-7077"><span class="linenos">7077</span></a> <span class="p">)</span>
-</span><span id="convert-7078"><a href="#convert-7078"><span class="linenos">7078</span></a> <span class="p">)</span>
-</span><span id="convert-7079"><a href="#convert-7079"><span class="linenos">7079</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-7080"><a href="#convert-7080"><span class="linenos">7080</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-7081"><a href="#convert-7081"><span class="linenos">7081</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-7082"><a href="#convert-7082"><span class="linenos">7082</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-7083"><a href="#convert-7083"><span class="linenos">7083</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-7084"><a href="#convert-7084"><span class="linenos">7084</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;_fields&quot;</span><span class="p">):</span>
-</span><span id="convert-7085"><a href="#convert-7085"><span class="linenos">7085</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
-</span><span id="convert-7086"><a href="#convert-7086"><span class="linenos">7086</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="convert-7087"><a href="#convert-7087"><span class="linenos">7087</span></a> <span class="n">PropertyEQ</span><span class="p">(</span>
-</span><span id="convert-7088"><a href="#convert-7088"><span class="linenos">7088</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">k</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="nb">getattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">k</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
-</span><span id="convert-7089"><a href="#convert-7089"><span class="linenos">7089</span></a> <span class="p">)</span>
-</span><span id="convert-7090"><a href="#convert-7090"><span class="linenos">7090</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">_fields</span>
-</span><span id="convert-7091"><a href="#convert-7091"><span class="linenos">7091</span></a> <span class="p">]</span>
-</span><span id="convert-7092"><a href="#convert-7092"><span class="linenos">7092</span></a> <span class="p">)</span>
-</span><span id="convert-7093"><a href="#convert-7093"><span class="linenos">7093</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-7094"><a href="#convert-7094"><span class="linenos">7094</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-7095"><a href="#convert-7095"><span class="linenos">7095</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
-</span><span id="convert-7096"><a href="#convert-7096"><span class="linenos">7096</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-7097"><a href="#convert-7097"><span class="linenos">7097</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
-</span><span id="convert-7098"><a href="#convert-7098"><span class="linenos">7098</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
-</span><span id="convert-7099"><a href="#convert-7099"><span class="linenos">7099</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
-</span><span id="convert-7100"><a href="#convert-7100"><span class="linenos">7100</span></a> <span class="p">)</span>
-</span><span id="convert-7101"><a href="#convert-7101"><span class="linenos">7101</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;__dict__&quot;</span><span class="p">):</span>
-</span><span id="convert-7102"><a href="#convert-7102"><span class="linenos">7102</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
-</span><span id="convert-7103"><a href="#convert-7103"><span class="linenos">7103</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="convert-7104"><a href="#convert-7104"><span class="linenos">7104</span></a> <span class="n">PropertyEQ</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">k</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
-</span><span id="convert-7105"><a href="#convert-7105"><span class="linenos">7105</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">value</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
-</span><span id="convert-7106"><a href="#convert-7106"><span class="linenos">7106</span></a> <span class="p">]</span>
-</span><span id="convert-7107"><a href="#convert-7107"><span class="linenos">7107</span></a> <span class="p">)</span>
-</span><span id="convert-7108"><a href="#convert-7108"><span class="linenos">7108</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-7103"><a href="#convert-7103"><span class="linenos">7103</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="convert-7104"><a href="#convert-7104"><span class="linenos">7104</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-7105"><a href="#convert-7105"><span class="linenos">7105</span></a>
+</span><span id="convert-7106"><a href="#convert-7106"><span class="linenos">7106</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
+</span><span id="convert-7107"><a href="#convert-7107"><span class="linenos">7107</span></a>
+</span><span id="convert-7108"><a href="#convert-7108"><span class="linenos">7108</span></a><span class="sd"> Args:</span>
+</span><span id="convert-7109"><a href="#convert-7109"><span class="linenos">7109</span></a><span class="sd"> value: A python object.</span>
+</span><span id="convert-7110"><a href="#convert-7110"><span class="linenos">7110</span></a><span class="sd"> copy: Whether to copy `value` (only applies to Expressions and collections).</span>
+</span><span id="convert-7111"><a href="#convert-7111"><span class="linenos">7111</span></a>
+</span><span id="convert-7112"><a href="#convert-7112"><span class="linenos">7112</span></a><span class="sd"> Returns:</span>
+</span><span id="convert-7113"><a href="#convert-7113"><span class="linenos">7113</span></a><span class="sd"> The equivalent expression object.</span>
+</span><span id="convert-7114"><a href="#convert-7114"><span class="linenos">7114</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="convert-7115"><a href="#convert-7115"><span class="linenos">7115</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-7116"><a href="#convert-7116"><span class="linenos">7116</span></a> <span class="k">return</span> <span class="n">maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
+</span><span id="convert-7117"><a href="#convert-7117"><span class="linenos">7117</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-7118"><a href="#convert-7118"><span class="linenos">7118</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-7119"><a href="#convert-7119"><span class="linenos">7119</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-7120"><a href="#convert-7120"><span class="linenos">7120</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-7121"><a href="#convert-7121"><span class="linenos">7121</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
+</span><span id="convert-7122"><a href="#convert-7122"><span class="linenos">7122</span></a> <span class="k">return</span> <span class="n">null</span><span class="p">()</span>
+</span><span id="convert-7123"><a href="#convert-7123"><span class="linenos">7123</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-7124"><a href="#convert-7124"><span class="linenos">7124</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-7125"><a href="#convert-7125"><span class="linenos">7125</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">bytes</span><span class="p">):</span>
+</span><span id="convert-7126"><a href="#convert-7126"><span class="linenos">7126</span></a> <span class="k">return</span> <span class="n">HexString</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="o">.</span><span class="n">hex</span><span class="p">())</span>
+</span><span id="convert-7127"><a href="#convert-7127"><span class="linenos">7127</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-7128"><a href="#convert-7128"><span class="linenos">7128</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-7129"><a href="#convert-7129"><span class="linenos">7129</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-7130"><a href="#convert-7130"><span class="linenos">7130</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span>
+</span><span id="convert-7131"><a href="#convert-7131"><span class="linenos">7131</span></a> <span class="p">)</span>
+</span><span id="convert-7132"><a href="#convert-7132"><span class="linenos">7132</span></a> <span class="p">)</span>
+</span><span id="convert-7133"><a href="#convert-7133"><span class="linenos">7133</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-7134"><a href="#convert-7134"><span class="linenos">7134</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-7135"><a href="#convert-7135"><span class="linenos">7135</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-7136"><a href="#convert-7136"><span class="linenos">7136</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-7137"><a href="#convert-7137"><span class="linenos">7137</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-7138"><a href="#convert-7138"><span class="linenos">7138</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;_fields&quot;</span><span class="p">):</span>
+</span><span id="convert-7139"><a href="#convert-7139"><span class="linenos">7139</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
+</span><span id="convert-7140"><a href="#convert-7140"><span class="linenos">7140</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="convert-7141"><a href="#convert-7141"><span class="linenos">7141</span></a> <span class="n">PropertyEQ</span><span class="p">(</span>
+</span><span id="convert-7142"><a href="#convert-7142"><span class="linenos">7142</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">k</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="nb">getattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">k</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
+</span><span id="convert-7143"><a href="#convert-7143"><span class="linenos">7143</span></a> <span class="p">)</span>
+</span><span id="convert-7144"><a href="#convert-7144"><span class="linenos">7144</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">_fields</span>
+</span><span id="convert-7145"><a href="#convert-7145"><span class="linenos">7145</span></a> <span class="p">]</span>
+</span><span id="convert-7146"><a href="#convert-7146"><span class="linenos">7146</span></a> <span class="p">)</span>
+</span><span id="convert-7147"><a href="#convert-7147"><span class="linenos">7147</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-7148"><a href="#convert-7148"><span class="linenos">7148</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-7149"><a href="#convert-7149"><span class="linenos">7149</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
+</span><span id="convert-7150"><a href="#convert-7150"><span class="linenos">7150</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-7151"><a href="#convert-7151"><span class="linenos">7151</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
+</span><span id="convert-7152"><a href="#convert-7152"><span class="linenos">7152</span></a> <span class="n">keys</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">]),</span>
+</span><span id="convert-7153"><a href="#convert-7153"><span class="linenos">7153</span></a> <span class="n">values</span><span class="o">=</span><span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()]),</span>
+</span><span id="convert-7154"><a href="#convert-7154"><span class="linenos">7154</span></a> <span class="p">)</span>
+</span><span id="convert-7155"><a href="#convert-7155"><span class="linenos">7155</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;__dict__&quot;</span><span class="p">):</span>
+</span><span id="convert-7156"><a href="#convert-7156"><span class="linenos">7156</span></a> <span class="k">return</span> <span class="n">Struct</span><span class="p">(</span>
+</span><span id="convert-7157"><a href="#convert-7157"><span class="linenos">7157</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="convert-7158"><a href="#convert-7158"><span class="linenos">7158</span></a> <span class="n">PropertyEQ</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">k</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 class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
+</span><span id="convert-7159"><a href="#convert-7159"><span class="linenos">7159</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">value</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
+</span><span id="convert-7160"><a href="#convert-7160"><span class="linenos">7160</span></a> <span class="p">]</span>
+</span><span id="convert-7161"><a href="#convert-7161"><span class="linenos">7161</span></a> <span class="p">)</span>
+</span><span id="convert-7162"><a href="#convert-7162"><span class="linenos">7162</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>
@@ -96926,24 +97618,24 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#replace_children"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-7111"><a href="#replace_children-7111"><span class="linenos">7111</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="replace_children-7112"><a href="#replace_children-7112"><span class="linenos">7112</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_children-7113"><a href="#replace_children-7113"><span class="linenos">7113</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-7114"><a href="#replace_children-7114"><span class="linenos">7114</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_children-7115"><a href="#replace_children-7115"><span class="linenos">7115</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="nb">tuple</span><span class="p">(</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-7116"><a href="#replace_children-7116"><span class="linenos">7116</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
-</span><span id="replace_children-7117"><a href="#replace_children-7117"><span class="linenos">7117</span></a>
-</span><span id="replace_children-7118"><a href="#replace_children-7118"><span class="linenos">7118</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-7119"><a href="#replace_children-7119"><span class="linenos">7119</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
-</span><span id="replace_children-7120"><a href="#replace_children-7120"><span class="linenos">7120</span></a>
-</span><span id="replace_children-7121"><a href="#replace_children-7121"><span class="linenos">7121</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-7122"><a href="#replace_children-7122"><span class="linenos">7122</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-7123"><a href="#replace_children-7123"><span class="linenos">7123</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
-</span><span id="replace_children-7124"><a href="#replace_children-7124"><span class="linenos">7124</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-7125"><a href="#replace_children-7125"><span class="linenos">7125</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_children-7126"><a href="#replace_children-7126"><span class="linenos">7126</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-7127"><a href="#replace_children-7127"><span class="linenos">7127</span></a>
-</span><span id="replace_children-7128"><a href="#replace_children-7128"><span class="linenos">7128</span></a> <span class="n">expression</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">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-7165"><a href="#replace_children-7165"><span class="linenos">7165</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="replace_children-7166"><a href="#replace_children-7166"><span class="linenos">7166</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_children-7167"><a href="#replace_children-7167"><span class="linenos">7167</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-7168"><a href="#replace_children-7168"><span class="linenos">7168</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_children-7169"><a href="#replace_children-7169"><span class="linenos">7169</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="nb">tuple</span><span class="p">(</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-7170"><a href="#replace_children-7170"><span class="linenos">7170</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
+</span><span id="replace_children-7171"><a href="#replace_children-7171"><span class="linenos">7171</span></a>
+</span><span id="replace_children-7172"><a href="#replace_children-7172"><span class="linenos">7172</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-7173"><a href="#replace_children-7173"><span class="linenos">7173</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="replace_children-7174"><a href="#replace_children-7174"><span class="linenos">7174</span></a>
+</span><span id="replace_children-7175"><a href="#replace_children-7175"><span class="linenos">7175</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-7176"><a href="#replace_children-7176"><span class="linenos">7176</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-7177"><a href="#replace_children-7177"><span class="linenos">7177</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
+</span><span id="replace_children-7178"><a href="#replace_children-7178"><span class="linenos">7178</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-7179"><a href="#replace_children-7179"><span class="linenos">7179</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_children-7180"><a href="#replace_children-7180"><span class="linenos">7180</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-7181"><a href="#replace_children-7181"><span class="linenos">7181</span></a>
+</span><span id="replace_children-7182"><a href="#replace_children-7182"><span class="linenos">7182</span></a> <span class="n">expression</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">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>
@@ -96963,30 +97655,30 @@ If either are provided then an alias is also required.</li>
</div>
<a class="headerlink" href="#replace_tree"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tree-7131"><a href="#replace_tree-7131"><span class="linenos">7131</span></a><span class="k">def</span> <span class="nf">replace_tree</span><span class="p">(</span>
-</span><span id="replace_tree-7132"><a href="#replace_tree-7132"><span class="linenos">7132</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="replace_tree-7133"><a href="#replace_tree-7133"><span class="linenos">7133</span></a> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span>
-</span><span id="replace_tree-7134"><a href="#replace_tree-7134"><span class="linenos">7134</span></a> <span class="n">prune</span><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">Callable</span><span class="p">[[</span><span class="n">Expression</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="replace_tree-7135"><a href="#replace_tree-7135"><span class="linenos">7135</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_tree-7136"><a href="#replace_tree-7136"><span class="linenos">7136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="replace_tree-7137"><a href="#replace_tree-7137"><span class="linenos">7137</span></a><span class="sd"> Replace an entire tree with the result of function calls on each node.</span>
-</span><span id="replace_tree-7138"><a href="#replace_tree-7138"><span class="linenos">7138</span></a>
-</span><span id="replace_tree-7139"><a href="#replace_tree-7139"><span class="linenos">7139</span></a><span class="sd"> This will be traversed in reverse dfs, so leaves first.</span>
-</span><span id="replace_tree-7140"><a href="#replace_tree-7140"><span class="linenos">7140</span></a><span class="sd"> If new nodes are created as a result of function calls, they will also be traversed.</span>
-</span><span id="replace_tree-7141"><a href="#replace_tree-7141"><span class="linenos">7141</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tree-7142"><a href="#replace_tree-7142"><span class="linenos">7142</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">))</span>
-</span><span id="replace_tree-7143"><a href="#replace_tree-7143"><span class="linenos">7143</span></a>
-</span><span id="replace_tree-7144"><a href="#replace_tree-7144"><span class="linenos">7144</span></a> <span class="k">while</span> <span class="n">stack</span><span class="p">:</span>
-</span><span id="replace_tree-7145"><a href="#replace_tree-7145"><span class="linenos">7145</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
-</span><span id="replace_tree-7146"><a href="#replace_tree-7146"><span class="linenos">7146</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
-</span><span id="replace_tree-7147"><a href="#replace_tree-7147"><span class="linenos">7147</span></a>
-</span><span id="replace_tree-7148"><a href="#replace_tree-7148"><span class="linenos">7148</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
-</span><span id="replace_tree-7149"><a href="#replace_tree-7149"><span class="linenos">7149</span></a> <span class="n">node</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
-</span><span id="replace_tree-7150"><a href="#replace_tree-7150"><span class="linenos">7150</span></a>
-</span><span id="replace_tree-7151"><a href="#replace_tree-7151"><span class="linenos">7151</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
-</span><span id="replace_tree-7152"><a href="#replace_tree-7152"><span class="linenos">7152</span></a> <span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
-</span><span id="replace_tree-7153"><a href="#replace_tree-7153"><span class="linenos">7153</span></a>
-</span><span id="replace_tree-7154"><a href="#replace_tree-7154"><span class="linenos">7154</span></a> <span class="k">return</span> <span class="n">new_node</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tree-7185"><a href="#replace_tree-7185"><span class="linenos">7185</span></a><span class="k">def</span> <span class="nf">replace_tree</span><span class="p">(</span>
+</span><span id="replace_tree-7186"><a href="#replace_tree-7186"><span class="linenos">7186</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="replace_tree-7187"><a href="#replace_tree-7187"><span class="linenos">7187</span></a> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span>
+</span><span id="replace_tree-7188"><a href="#replace_tree-7188"><span class="linenos">7188</span></a> <span class="n">prune</span><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">Callable</span><span class="p">[[</span><span class="n">Expression</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="replace_tree-7189"><a href="#replace_tree-7189"><span class="linenos">7189</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_tree-7190"><a href="#replace_tree-7190"><span class="linenos">7190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="replace_tree-7191"><a href="#replace_tree-7191"><span class="linenos">7191</span></a><span class="sd"> Replace an entire tree with the result of function calls on each node.</span>
+</span><span id="replace_tree-7192"><a href="#replace_tree-7192"><span class="linenos">7192</span></a>
+</span><span id="replace_tree-7193"><a href="#replace_tree-7193"><span class="linenos">7193</span></a><span class="sd"> This will be traversed in reverse dfs, so leaves first.</span>
+</span><span id="replace_tree-7194"><a href="#replace_tree-7194"><span class="linenos">7194</span></a><span class="sd"> If new nodes are created as a result of function calls, they will also be traversed.</span>
+</span><span id="replace_tree-7195"><a href="#replace_tree-7195"><span class="linenos">7195</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tree-7196"><a href="#replace_tree-7196"><span class="linenos">7196</span></a> <span class="n">stack</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">))</span>
+</span><span id="replace_tree-7197"><a href="#replace_tree-7197"><span class="linenos">7197</span></a>
+</span><span id="replace_tree-7198"><a href="#replace_tree-7198"><span class="linenos">7198</span></a> <span class="k">while</span> <span class="n">stack</span><span class="p">:</span>
+</span><span id="replace_tree-7199"><a href="#replace_tree-7199"><span class="linenos">7199</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
+</span><span id="replace_tree-7200"><a href="#replace_tree-7200"><span class="linenos">7200</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
+</span><span id="replace_tree-7201"><a href="#replace_tree-7201"><span class="linenos">7201</span></a>
+</span><span id="replace_tree-7202"><a href="#replace_tree-7202"><span class="linenos">7202</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
+</span><span id="replace_tree-7203"><a href="#replace_tree-7203"><span class="linenos">7203</span></a> <span class="n">node</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
+</span><span id="replace_tree-7204"><a href="#replace_tree-7204"><span class="linenos">7204</span></a>
+</span><span id="replace_tree-7205"><a href="#replace_tree-7205"><span class="linenos">7205</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
+</span><span id="replace_tree-7206"><a href="#replace_tree-7206"><span class="linenos">7206</span></a> <span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_node</span><span class="p">)</span>
+</span><span id="replace_tree-7207"><a href="#replace_tree-7207"><span class="linenos">7207</span></a>
+</span><span id="replace_tree-7208"><a href="#replace_tree-7208"><span class="linenos">7208</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span></pre></div>
@@ -97009,27 +97701,27 @@ If new nodes are created as a result of function calls, they will also be traver
</div>
<a class="headerlink" href="#column_table_names"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-7157"><a href="#column_table_names-7157"><span class="linenos">7157</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
-</span><span id="column_table_names-7158"><a href="#column_table_names-7158"><span class="linenos">7158</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="column_table_names-7159"><a href="#column_table_names-7159"><span class="linenos">7159</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
-</span><span id="column_table_names-7160"><a href="#column_table_names-7160"><span class="linenos">7160</span></a>
-</span><span id="column_table_names-7161"><a href="#column_table_names-7161"><span class="linenos">7161</span></a><span class="sd"> Example:</span>
-</span><span id="column_table_names-7162"><a href="#column_table_names-7162"><span class="linenos">7162</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
-</span><span id="column_table_names-7163"><a href="#column_table_names-7163"><span class="linenos">7163</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
-</span><span id="column_table_names-7164"><a href="#column_table_names-7164"><span class="linenos">7164</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
-</span><span id="column_table_names-7165"><a href="#column_table_names-7165"><span class="linenos">7165</span></a>
-</span><span id="column_table_names-7166"><a href="#column_table_names-7166"><span class="linenos">7166</span></a><span class="sd"> Args:</span>
-</span><span id="column_table_names-7167"><a href="#column_table_names-7167"><span class="linenos">7167</span></a><span class="sd"> expression: expression to find table names.</span>
-</span><span id="column_table_names-7168"><a href="#column_table_names-7168"><span class="linenos">7168</span></a><span class="sd"> exclude: a table name to exclude</span>
-</span><span id="column_table_names-7169"><a href="#column_table_names-7169"><span class="linenos">7169</span></a>
-</span><span id="column_table_names-7170"><a href="#column_table_names-7170"><span class="linenos">7170</span></a><span class="sd"> Returns:</span>
-</span><span id="column_table_names-7171"><a href="#column_table_names-7171"><span class="linenos">7171</span></a><span class="sd"> A list of unique names.</span>
-</span><span id="column_table_names-7172"><a href="#column_table_names-7172"><span class="linenos">7172</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="column_table_names-7173"><a href="#column_table_names-7173"><span class="linenos">7173</span></a> <span class="k">return</span> <span class="p">{</span>
-</span><span id="column_table_names-7174"><a href="#column_table_names-7174"><span class="linenos">7174</span></a> <span class="n">table</span>
-</span><span id="column_table_names-7175"><a href="#column_table_names-7175"><span class="linenos">7175</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
-</span><span id="column_table_names-7176"><a href="#column_table_names-7176"><span class="linenos">7176</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
-</span><span id="column_table_names-7177"><a href="#column_table_names-7177"><span class="linenos">7177</span></a> <span class="p">}</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-7211"><a href="#column_table_names-7211"><span class="linenos">7211</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">exclude</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Set</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
+</span><span id="column_table_names-7212"><a href="#column_table_names-7212"><span class="linenos">7212</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="column_table_names-7213"><a href="#column_table_names-7213"><span class="linenos">7213</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
+</span><span id="column_table_names-7214"><a href="#column_table_names-7214"><span class="linenos">7214</span></a>
+</span><span id="column_table_names-7215"><a href="#column_table_names-7215"><span class="linenos">7215</span></a><span class="sd"> Example:</span>
+</span><span id="column_table_names-7216"><a href="#column_table_names-7216"><span class="linenos">7216</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
+</span><span id="column_table_names-7217"><a href="#column_table_names-7217"><span class="linenos">7217</span></a><span class="sd"> &gt;&gt;&gt; sorted(column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;)))</span>
+</span><span id="column_table_names-7218"><a href="#column_table_names-7218"><span class="linenos">7218</span></a><span class="sd"> [&#39;a&#39;, &#39;c&#39;]</span>
+</span><span id="column_table_names-7219"><a href="#column_table_names-7219"><span class="linenos">7219</span></a>
+</span><span id="column_table_names-7220"><a href="#column_table_names-7220"><span class="linenos">7220</span></a><span class="sd"> Args:</span>
+</span><span id="column_table_names-7221"><a href="#column_table_names-7221"><span class="linenos">7221</span></a><span class="sd"> expression: expression to find table names.</span>
+</span><span id="column_table_names-7222"><a href="#column_table_names-7222"><span class="linenos">7222</span></a><span class="sd"> exclude: a table name to exclude</span>
+</span><span id="column_table_names-7223"><a href="#column_table_names-7223"><span class="linenos">7223</span></a>
+</span><span id="column_table_names-7224"><a href="#column_table_names-7224"><span class="linenos">7224</span></a><span class="sd"> Returns:</span>
+</span><span id="column_table_names-7225"><a href="#column_table_names-7225"><span class="linenos">7225</span></a><span class="sd"> A list of unique names.</span>
+</span><span id="column_table_names-7226"><a href="#column_table_names-7226"><span class="linenos">7226</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="column_table_names-7227"><a href="#column_table_names-7227"><span class="linenos">7227</span></a> <span class="k">return</span> <span class="p">{</span>
+</span><span id="column_table_names-7228"><a href="#column_table_names-7228"><span class="linenos">7228</span></a> <span class="n">table</span>
+</span><span id="column_table_names-7229"><a href="#column_table_names-7229"><span class="linenos">7229</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">))</span>
+</span><span id="column_table_names-7230"><a href="#column_table_names-7230"><span class="linenos">7230</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">and</span> <span class="n">table</span> <span class="o">!=</span> <span class="n">exclude</span>
+</span><span id="column_table_names-7231"><a href="#column_table_names-7231"><span class="linenos">7231</span></a> <span class="p">}</span>
</span></pre></div>
@@ -97073,38 +97765,38 @@ If new nodes are created as a result of function calls, they will also be traver
</div>
<a class="headerlink" href="#table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-7180"><a href="#table_name-7180"><span class="linenos">7180</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="table_name-7181"><a href="#table_name-7181"><span class="linenos">7181</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-7182"><a href="#table_name-7182"><span class="linenos">7182</span></a>
-</span><span id="table_name-7183"><a href="#table_name-7183"><span class="linenos">7183</span></a><span class="sd"> Args:</span>
-</span><span id="table_name-7184"><a href="#table_name-7184"><span class="linenos">7184</span></a><span class="sd"> table: Table expression node or string.</span>
-</span><span id="table_name-7185"><a href="#table_name-7185"><span class="linenos">7185</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
-</span><span id="table_name-7186"><a href="#table_name-7186"><span class="linenos">7186</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
-</span><span id="table_name-7187"><a href="#table_name-7187"><span class="linenos">7187</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
-</span><span id="table_name-7188"><a href="#table_name-7188"><span class="linenos">7188</span></a><span class="sd"> True: Always quote.</span>
-</span><span id="table_name-7189"><a href="#table_name-7189"><span class="linenos">7189</span></a>
-</span><span id="table_name-7190"><a href="#table_name-7190"><span class="linenos">7190</span></a><span class="sd"> Examples:</span>
-</span><span id="table_name-7191"><a href="#table_name-7191"><span class="linenos">7191</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="table_name-7192"><a href="#table_name-7192"><span class="linenos">7192</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-7193"><a href="#table_name-7193"><span class="linenos">7193</span></a><span class="sd"> &#39;a.b.c&#39;</span>
-</span><span id="table_name-7194"><a href="#table_name-7194"><span class="linenos">7194</span></a>
-</span><span id="table_name-7195"><a href="#table_name-7195"><span class="linenos">7195</span></a><span class="sd"> Returns:</span>
-</span><span id="table_name-7196"><a href="#table_name-7196"><span class="linenos">7196</span></a><span class="sd"> The table name.</span>
-</span><span id="table_name-7197"><a href="#table_name-7197"><span class="linenos">7197</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="table_name-7198"><a href="#table_name-7198"><span class="linenos">7198</span></a>
-</span><span id="table_name-7199"><a href="#table_name-7199"><span class="linenos">7199</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
-</span><span id="table_name-7200"><a href="#table_name-7200"><span class="linenos">7200</span></a>
-</span><span id="table_name-7201"><a href="#table_name-7201"><span class="linenos">7201</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-7202"><a href="#table_name-7202"><span class="linenos">7202</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-7203"><a href="#table_name-7203"><span class="linenos">7203</span></a>
-</span><span id="table_name-7204"><a href="#table_name-7204"><span class="linenos">7204</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-7205"><a href="#table_name-7205"><span class="linenos">7205</span></a> <span class="p">(</span>
-</span><span id="table_name-7206"><a href="#table_name-7206"><span class="linenos">7206</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="table_name-7207"><a href="#table_name-7207"><span class="linenos">7207</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
-</span><span id="table_name-7208"><a href="#table_name-7208"><span class="linenos">7208</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
-</span><span id="table_name-7209"><a href="#table_name-7209"><span class="linenos">7209</span></a> <span class="p">)</span>
-</span><span id="table_name-7210"><a href="#table_name-7210"><span class="linenos">7210</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="table_name-7211"><a href="#table_name-7211"><span class="linenos">7211</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-7234"><a href="#table_name-7234"><span class="linenos">7234</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="table_name-7235"><a href="#table_name-7235"><span class="linenos">7235</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-7236"><a href="#table_name-7236"><span class="linenos">7236</span></a>
+</span><span id="table_name-7237"><a href="#table_name-7237"><span class="linenos">7237</span></a><span class="sd"> Args:</span>
+</span><span id="table_name-7238"><a href="#table_name-7238"><span class="linenos">7238</span></a><span class="sd"> table: Table expression node or string.</span>
+</span><span id="table_name-7239"><a href="#table_name-7239"><span class="linenos">7239</span></a><span class="sd"> dialect: The dialect to generate the table name for.</span>
+</span><span id="table_name-7240"><a href="#table_name-7240"><span class="linenos">7240</span></a><span class="sd"> identify: Determines when an identifier should be quoted. Possible values are:</span>
+</span><span id="table_name-7241"><a href="#table_name-7241"><span class="linenos">7241</span></a><span class="sd"> False (default): Never quote, except in cases where it&#39;s mandatory by the dialect.</span>
+</span><span id="table_name-7242"><a href="#table_name-7242"><span class="linenos">7242</span></a><span class="sd"> True: Always quote.</span>
+</span><span id="table_name-7243"><a href="#table_name-7243"><span class="linenos">7243</span></a>
+</span><span id="table_name-7244"><a href="#table_name-7244"><span class="linenos">7244</span></a><span class="sd"> Examples:</span>
+</span><span id="table_name-7245"><a href="#table_name-7245"><span class="linenos">7245</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="table_name-7246"><a href="#table_name-7246"><span class="linenos">7246</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-7247"><a href="#table_name-7247"><span class="linenos">7247</span></a><span class="sd"> &#39;a.b.c&#39;</span>
+</span><span id="table_name-7248"><a href="#table_name-7248"><span class="linenos">7248</span></a>
+</span><span id="table_name-7249"><a href="#table_name-7249"><span class="linenos">7249</span></a><span class="sd"> Returns:</span>
+</span><span id="table_name-7250"><a href="#table_name-7250"><span class="linenos">7250</span></a><span class="sd"> The table name.</span>
+</span><span id="table_name-7251"><a href="#table_name-7251"><span class="linenos">7251</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="table_name-7252"><a href="#table_name-7252"><span class="linenos">7252</span></a>
+</span><span id="table_name-7253"><a href="#table_name-7253"><span class="linenos">7253</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
+</span><span id="table_name-7254"><a href="#table_name-7254"><span class="linenos">7254</span></a>
+</span><span id="table_name-7255"><a href="#table_name-7255"><span class="linenos">7255</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-7256"><a href="#table_name-7256"><span class="linenos">7256</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-7257"><a href="#table_name-7257"><span class="linenos">7257</span></a>
+</span><span id="table_name-7258"><a href="#table_name-7258"><span class="linenos">7258</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-7259"><a href="#table_name-7259"><span class="linenos">7259</span></a> <span class="p">(</span>
+</span><span id="table_name-7260"><a href="#table_name-7260"><span class="linenos">7260</span></a> <span class="n">part</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="table_name-7261"><a href="#table_name-7261"><span class="linenos">7261</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+</span><span id="table_name-7262"><a href="#table_name-7262"><span class="linenos">7262</span></a> <span class="k">else</span> <span class="n">part</span><span class="o">.</span><span class="n">name</span>
+</span><span id="table_name-7263"><a href="#table_name-7263"><span class="linenos">7263</span></a> <span class="p">)</span>
+</span><span id="table_name-7264"><a href="#table_name-7264"><span class="linenos">7264</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">table</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="table_name-7265"><a href="#table_name-7265"><span class="linenos">7265</span></a> <span class="p">)</span>
</span></pre></div>
@@ -97151,26 +97843,26 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#normalize_table_name"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="normalize_table_name-7214"><a href="#normalize_table_name-7214"><span class="linenos">7214</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
-</span><span id="normalize_table_name-7215"><a href="#normalize_table_name-7215"><span class="linenos">7215</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
-</span><span id="normalize_table_name-7216"><a href="#normalize_table_name-7216"><span class="linenos">7216</span></a>
-</span><span id="normalize_table_name-7217"><a href="#normalize_table_name-7217"><span class="linenos">7217</span></a><span class="sd"> Args:</span>
-</span><span id="normalize_table_name-7218"><a href="#normalize_table_name-7218"><span class="linenos">7218</span></a><span class="sd"> table: the table to normalize</span>
-</span><span id="normalize_table_name-7219"><a href="#normalize_table_name-7219"><span class="linenos">7219</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
-</span><span id="normalize_table_name-7220"><a href="#normalize_table_name-7220"><span class="linenos">7220</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="normalize_table_name-7221"><a href="#normalize_table_name-7221"><span class="linenos">7221</span></a>
-</span><span id="normalize_table_name-7222"><a href="#normalize_table_name-7222"><span class="linenos">7222</span></a><span class="sd"> Examples:</span>
-</span><span id="normalize_table_name-7223"><a href="#normalize_table_name-7223"><span class="linenos">7223</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
-</span><span id="normalize_table_name-7224"><a href="#normalize_table_name-7224"><span class="linenos">7224</span></a><span class="sd"> &#39;A-B.c&#39;</span>
-</span><span id="normalize_table_name-7225"><a href="#normalize_table_name-7225"><span class="linenos">7225</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="normalize_table_name-7226"><a href="#normalize_table_name-7226"><span class="linenos">7226</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
-</span><span id="normalize_table_name-7227"><a href="#normalize_table_name-7227"><span class="linenos">7227</span></a>
-</span><span id="normalize_table_name-7228"><a href="#normalize_table_name-7228"><span class="linenos">7228</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="normalize_table_name-7229"><a href="#normalize_table_name-7229"><span class="linenos">7229</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
-</span><span id="normalize_table_name-7230"><a href="#normalize_table_name-7230"><span class="linenos">7230</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
-</span><span id="normalize_table_name-7231"><a href="#normalize_table_name-7231"><span class="linenos">7231</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
-</span><span id="normalize_table_name-7232"><a href="#normalize_table_name-7232"><span class="linenos">7232</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
-</span><span id="normalize_table_name-7233"><a href="#normalize_table_name-7233"><span class="linenos">7233</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="normalize_table_name-7268"><a href="#normalize_table_name-7268"><span class="linenos">7268</span></a><span class="k">def</span> <span class="nf">normalize_table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
+</span><span id="normalize_table_name-7269"><a href="#normalize_table_name-7269"><span class="linenos">7269</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns a case normalized table name without quotes.</span>
+</span><span id="normalize_table_name-7270"><a href="#normalize_table_name-7270"><span class="linenos">7270</span></a>
+</span><span id="normalize_table_name-7271"><a href="#normalize_table_name-7271"><span class="linenos">7271</span></a><span class="sd"> Args:</span>
+</span><span id="normalize_table_name-7272"><a href="#normalize_table_name-7272"><span class="linenos">7272</span></a><span class="sd"> table: the table to normalize</span>
+</span><span id="normalize_table_name-7273"><a href="#normalize_table_name-7273"><span class="linenos">7273</span></a><span class="sd"> dialect: the dialect to use for normalization rules</span>
+</span><span id="normalize_table_name-7274"><a href="#normalize_table_name-7274"><span class="linenos">7274</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="normalize_table_name-7275"><a href="#normalize_table_name-7275"><span class="linenos">7275</span></a>
+</span><span id="normalize_table_name-7276"><a href="#normalize_table_name-7276"><span class="linenos">7276</span></a><span class="sd"> Examples:</span>
+</span><span id="normalize_table_name-7277"><a href="#normalize_table_name-7277"><span class="linenos">7277</span></a><span class="sd"> &gt;&gt;&gt; normalize_table_name(&quot;`A-B`.c&quot;, dialect=&quot;bigquery&quot;)</span>
+</span><span id="normalize_table_name-7278"><a href="#normalize_table_name-7278"><span class="linenos">7278</span></a><span class="sd"> &#39;A-B.c&#39;</span>
+</span><span id="normalize_table_name-7279"><a href="#normalize_table_name-7279"><span class="linenos">7279</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="normalize_table_name-7280"><a href="#normalize_table_name-7280"><span class="linenos">7280</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.normalize_identifiers</span> <span class="kn">import</span> <span class="n">normalize_identifiers</span>
+</span><span id="normalize_table_name-7281"><a href="#normalize_table_name-7281"><span class="linenos">7281</span></a>
+</span><span id="normalize_table_name-7282"><a href="#normalize_table_name-7282"><span class="linenos">7282</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="normalize_table_name-7283"><a href="#normalize_table_name-7283"><span class="linenos">7283</span></a> <span class="n">p</span><span class="o">.</span><span class="n">name</span>
+</span><span id="normalize_table_name-7284"><a href="#normalize_table_name-7284"><span class="linenos">7284</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">normalize_identifiers</span><span class="p">(</span>
+</span><span id="normalize_table_name-7285"><a href="#normalize_table_name-7285"><span class="linenos">7285</span></a> <span class="n">to_table</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span>
+</span><span id="normalize_table_name-7286"><a href="#normalize_table_name-7286"><span class="linenos">7286</span></a> <span class="p">)</span><span class="o">.</span><span class="n">parts</span>
+</span><span id="normalize_table_name-7287"><a href="#normalize_table_name-7287"><span class="linenos">7287</span></a> <span class="p">)</span>
</span></pre></div>
@@ -97208,44 +97900,44 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#replace_tables"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-7236"><a href="#replace_tables-7236"><span class="linenos">7236</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
-</span><span id="replace_tables-7237"><a href="#replace_tables-7237"><span class="linenos">7237</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
-</span><span id="replace_tables-7238"><a href="#replace_tables-7238"><span class="linenos">7238</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
-</span><span id="replace_tables-7239"><a href="#replace_tables-7239"><span class="linenos">7239</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-7240"><a href="#replace_tables-7240"><span class="linenos">7240</span></a>
-</span><span id="replace_tables-7241"><a href="#replace_tables-7241"><span class="linenos">7241</span></a><span class="sd"> Args:</span>
-</span><span id="replace_tables-7242"><a href="#replace_tables-7242"><span class="linenos">7242</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_tables-7243"><a href="#replace_tables-7243"><span class="linenos">7243</span></a><span class="sd"> mapping: mapping of table names.</span>
-</span><span id="replace_tables-7244"><a href="#replace_tables-7244"><span class="linenos">7244</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
-</span><span id="replace_tables-7245"><a href="#replace_tables-7245"><span class="linenos">7245</span></a><span class="sd"> copy: whether to copy the expression.</span>
-</span><span id="replace_tables-7246"><a href="#replace_tables-7246"><span class="linenos">7246</span></a>
-</span><span id="replace_tables-7247"><a href="#replace_tables-7247"><span class="linenos">7247</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_tables-7248"><a href="#replace_tables-7248"><span class="linenos">7248</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_tables-7249"><a href="#replace_tables-7249"><span class="linenos">7249</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-7250"><a href="#replace_tables-7250"><span class="linenos">7250</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
-</span><span id="replace_tables-7251"><a href="#replace_tables-7251"><span class="linenos">7251</span></a>
-</span><span id="replace_tables-7252"><a href="#replace_tables-7252"><span class="linenos">7252</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_tables-7253"><a href="#replace_tables-7253"><span class="linenos">7253</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_tables-7254"><a href="#replace_tables-7254"><span class="linenos">7254</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_tables-7255"><a href="#replace_tables-7255"><span class="linenos">7255</span></a>
-</span><span id="replace_tables-7256"><a href="#replace_tables-7256"><span class="linenos">7256</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="replace_tables-7257"><a href="#replace_tables-7257"><span class="linenos">7257</span></a>
-</span><span id="replace_tables-7258"><a href="#replace_tables-7258"><span class="linenos">7258</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_tables-7259"><a href="#replace_tables-7259"><span class="linenos">7259</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-7260"><a href="#replace_tables-7260"><span class="linenos">7260</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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="replace_tables-7261"><a href="#replace_tables-7261"><span class="linenos">7261</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">original</span><span class="p">)</span>
-</span><span id="replace_tables-7262"><a href="#replace_tables-7262"><span class="linenos">7262</span></a>
-</span><span id="replace_tables-7263"><a href="#replace_tables-7263"><span class="linenos">7263</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
-</span><span id="replace_tables-7264"><a href="#replace_tables-7264"><span class="linenos">7264</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
-</span><span id="replace_tables-7265"><a href="#replace_tables-7265"><span class="linenos">7265</span></a> <span class="n">new_name</span><span class="p">,</span>
-</span><span id="replace_tables-7266"><a href="#replace_tables-7266"><span class="linenos">7266</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="n">TABLE_PARTS</span><span class="p">},</span>
-</span><span id="replace_tables-7267"><a href="#replace_tables-7267"><span class="linenos">7267</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
-</span><span id="replace_tables-7268"><a href="#replace_tables-7268"><span class="linenos">7268</span></a> <span class="p">)</span>
-</span><span id="replace_tables-7269"><a href="#replace_tables-7269"><span class="linenos">7269</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
-</span><span id="replace_tables-7270"><a href="#replace_tables-7270"><span class="linenos">7270</span></a> <span class="k">return</span> <span class="n">table</span>
-</span><span id="replace_tables-7271"><a href="#replace_tables-7271"><span class="linenos">7271</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_tables-7272"><a href="#replace_tables-7272"><span class="linenos">7272</span></a>
-</span><span id="replace_tables-7273"><a href="#replace_tables-7273"><span class="linenos">7273</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-7290"><a href="#replace_tables-7290"><span class="linenos">7290</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span>
+</span><span id="replace_tables-7291"><a href="#replace_tables-7291"><span class="linenos">7291</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
+</span><span id="replace_tables-7292"><a href="#replace_tables-7292"><span class="linenos">7292</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
+</span><span id="replace_tables-7293"><a href="#replace_tables-7293"><span class="linenos">7293</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-7294"><a href="#replace_tables-7294"><span class="linenos">7294</span></a>
+</span><span id="replace_tables-7295"><a href="#replace_tables-7295"><span class="linenos">7295</span></a><span class="sd"> Args:</span>
+</span><span id="replace_tables-7296"><a href="#replace_tables-7296"><span class="linenos">7296</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_tables-7297"><a href="#replace_tables-7297"><span class="linenos">7297</span></a><span class="sd"> mapping: mapping of table names.</span>
+</span><span id="replace_tables-7298"><a href="#replace_tables-7298"><span class="linenos">7298</span></a><span class="sd"> dialect: the dialect of the mapping table</span>
+</span><span id="replace_tables-7299"><a href="#replace_tables-7299"><span class="linenos">7299</span></a><span class="sd"> copy: whether to copy the expression.</span>
+</span><span id="replace_tables-7300"><a href="#replace_tables-7300"><span class="linenos">7300</span></a>
+</span><span id="replace_tables-7301"><a href="#replace_tables-7301"><span class="linenos">7301</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_tables-7302"><a href="#replace_tables-7302"><span class="linenos">7302</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_tables-7303"><a href="#replace_tables-7303"><span class="linenos">7303</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-7304"><a href="#replace_tables-7304"><span class="linenos">7304</span></a><span class="sd"> &#39;SELECT * FROM c /* a.b */&#39;</span>
+</span><span id="replace_tables-7305"><a href="#replace_tables-7305"><span class="linenos">7305</span></a>
+</span><span id="replace_tables-7306"><a href="#replace_tables-7306"><span class="linenos">7306</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_tables-7307"><a href="#replace_tables-7307"><span class="linenos">7307</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_tables-7308"><a href="#replace_tables-7308"><span class="linenos">7308</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_tables-7309"><a href="#replace_tables-7309"><span class="linenos">7309</span></a>
+</span><span id="replace_tables-7310"><a href="#replace_tables-7310"><span class="linenos">7310</span></a> <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">mapping</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="replace_tables-7311"><a href="#replace_tables-7311"><span class="linenos">7311</span></a>
+</span><span id="replace_tables-7312"><a href="#replace_tables-7312"><span class="linenos">7312</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_tables-7313"><a href="#replace_tables-7313"><span class="linenos">7313</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-7314"><a href="#replace_tables-7314"><span class="linenos">7314</span></a> <span class="n">original</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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="replace_tables-7315"><a href="#replace_tables-7315"><span class="linenos">7315</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">original</span><span class="p">)</span>
+</span><span id="replace_tables-7316"><a href="#replace_tables-7316"><span class="linenos">7316</span></a>
+</span><span id="replace_tables-7317"><a href="#replace_tables-7317"><span class="linenos">7317</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
+</span><span id="replace_tables-7318"><a href="#replace_tables-7318"><span class="linenos">7318</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span>
+</span><span id="replace_tables-7319"><a href="#replace_tables-7319"><span class="linenos">7319</span></a> <span class="n">new_name</span><span class="p">,</span>
+</span><span id="replace_tables-7320"><a href="#replace_tables-7320"><span class="linenos">7320</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="n">TABLE_PARTS</span><span class="p">},</span>
+</span><span id="replace_tables-7321"><a href="#replace_tables-7321"><span class="linenos">7321</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
+</span><span id="replace_tables-7322"><a href="#replace_tables-7322"><span class="linenos">7322</span></a> <span class="p">)</span>
+</span><span id="replace_tables-7323"><a href="#replace_tables-7323"><span class="linenos">7323</span></a> <span class="n">table</span><span class="o">.</span><span class="n">add_comments</span><span class="p">([</span><span class="n">original</span><span class="p">])</span>
+</span><span id="replace_tables-7324"><a href="#replace_tables-7324"><span class="linenos">7324</span></a> <span class="k">return</span> <span class="n">table</span>
+</span><span id="replace_tables-7325"><a href="#replace_tables-7325"><span class="linenos">7325</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_tables-7326"><a href="#replace_tables-7326"><span class="linenos">7326</span></a>
+</span><span id="replace_tables-7327"><a href="#replace_tables-7327"><span class="linenos">7327</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span></pre></div>
@@ -97291,40 +97983,40 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-7276"><a href="#replace_placeholders-7276"><span class="linenos">7276</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_placeholders-7277"><a href="#replace_placeholders-7277"><span class="linenos">7277</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
-</span><span id="replace_placeholders-7278"><a href="#replace_placeholders-7278"><span class="linenos">7278</span></a>
-</span><span id="replace_placeholders-7279"><a href="#replace_placeholders-7279"><span class="linenos">7279</span></a><span class="sd"> Args:</span>
-</span><span id="replace_placeholders-7280"><a href="#replace_placeholders-7280"><span class="linenos">7280</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
-</span><span id="replace_placeholders-7281"><a href="#replace_placeholders-7281"><span class="linenos">7281</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
-</span><span id="replace_placeholders-7282"><a href="#replace_placeholders-7282"><span class="linenos">7282</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
-</span><span id="replace_placeholders-7283"><a href="#replace_placeholders-7283"><span class="linenos">7283</span></a>
-</span><span id="replace_placeholders-7284"><a href="#replace_placeholders-7284"><span class="linenos">7284</span></a><span class="sd"> Examples:</span>
-</span><span id="replace_placeholders-7285"><a href="#replace_placeholders-7285"><span class="linenos">7285</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
-</span><span id="replace_placeholders-7286"><a href="#replace_placeholders-7286"><span class="linenos">7286</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
-</span><span id="replace_placeholders-7287"><a href="#replace_placeholders-7287"><span class="linenos">7287</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
-</span><span id="replace_placeholders-7288"><a href="#replace_placeholders-7288"><span class="linenos">7288</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
-</span><span id="replace_placeholders-7289"><a href="#replace_placeholders-7289"><span class="linenos">7289</span></a><span class="sd"> ... ).sql()</span>
-</span><span id="replace_placeholders-7290"><a href="#replace_placeholders-7290"><span class="linenos">7290</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
-</span><span id="replace_placeholders-7291"><a href="#replace_placeholders-7291"><span class="linenos">7291</span></a>
-</span><span id="replace_placeholders-7292"><a href="#replace_placeholders-7292"><span class="linenos">7292</span></a><span class="sd"> Returns:</span>
-</span><span id="replace_placeholders-7293"><a href="#replace_placeholders-7293"><span class="linenos">7293</span></a><span class="sd"> The mapped expression.</span>
-</span><span id="replace_placeholders-7294"><a href="#replace_placeholders-7294"><span class="linenos">7294</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="replace_placeholders-7295"><a href="#replace_placeholders-7295"><span class="linenos">7295</span></a>
-</span><span id="replace_placeholders-7296"><a href="#replace_placeholders-7296"><span class="linenos">7296</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="replace_placeholders-7297"><a href="#replace_placeholders-7297"><span class="linenos">7297</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-7298"><a href="#replace_placeholders-7298"><span class="linenos">7298</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">:</span>
-</span><span id="replace_placeholders-7299"><a href="#replace_placeholders-7299"><span class="linenos">7299</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">this</span><span class="p">)</span>
-</span><span id="replace_placeholders-7300"><a href="#replace_placeholders-7300"><span class="linenos">7300</span></a> <span class="k">if</span> <span class="n">new_name</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="replace_placeholders-7301"><a href="#replace_placeholders-7301"><span class="linenos">7301</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
-</span><span id="replace_placeholders-7302"><a href="#replace_placeholders-7302"><span class="linenos">7302</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="replace_placeholders-7303"><a href="#replace_placeholders-7303"><span class="linenos">7303</span></a> <span class="k">try</span><span class="p">:</span>
-</span><span id="replace_placeholders-7304"><a href="#replace_placeholders-7304"><span class="linenos">7304</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
-</span><span id="replace_placeholders-7305"><a href="#replace_placeholders-7305"><span class="linenos">7305</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
-</span><span id="replace_placeholders-7306"><a href="#replace_placeholders-7306"><span class="linenos">7306</span></a> <span class="k">pass</span>
-</span><span id="replace_placeholders-7307"><a href="#replace_placeholders-7307"><span class="linenos">7307</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="replace_placeholders-7308"><a href="#replace_placeholders-7308"><span class="linenos">7308</span></a>
-</span><span id="replace_placeholders-7309"><a href="#replace_placeholders-7309"><span class="linenos">7309</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-7330"><a href="#replace_placeholders-7330"><span class="linenos">7330</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_placeholders-7331"><a href="#replace_placeholders-7331"><span class="linenos">7331</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
+</span><span id="replace_placeholders-7332"><a href="#replace_placeholders-7332"><span class="linenos">7332</span></a>
+</span><span id="replace_placeholders-7333"><a href="#replace_placeholders-7333"><span class="linenos">7333</span></a><span class="sd"> Args:</span>
+</span><span id="replace_placeholders-7334"><a href="#replace_placeholders-7334"><span class="linenos">7334</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
+</span><span id="replace_placeholders-7335"><a href="#replace_placeholders-7335"><span class="linenos">7335</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
+</span><span id="replace_placeholders-7336"><a href="#replace_placeholders-7336"><span class="linenos">7336</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
+</span><span id="replace_placeholders-7337"><a href="#replace_placeholders-7337"><span class="linenos">7337</span></a>
+</span><span id="replace_placeholders-7338"><a href="#replace_placeholders-7338"><span class="linenos">7338</span></a><span class="sd"> Examples:</span>
+</span><span id="replace_placeholders-7339"><a href="#replace_placeholders-7339"><span class="linenos">7339</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
+</span><span id="replace_placeholders-7340"><a href="#replace_placeholders-7340"><span class="linenos">7340</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
+</span><span id="replace_placeholders-7341"><a href="#replace_placeholders-7341"><span class="linenos">7341</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
+</span><span id="replace_placeholders-7342"><a href="#replace_placeholders-7342"><span class="linenos">7342</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
+</span><span id="replace_placeholders-7343"><a href="#replace_placeholders-7343"><span class="linenos">7343</span></a><span class="sd"> ... ).sql()</span>
+</span><span id="replace_placeholders-7344"><a href="#replace_placeholders-7344"><span class="linenos">7344</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
+</span><span id="replace_placeholders-7345"><a href="#replace_placeholders-7345"><span class="linenos">7345</span></a>
+</span><span id="replace_placeholders-7346"><a href="#replace_placeholders-7346"><span class="linenos">7346</span></a><span class="sd"> Returns:</span>
+</span><span id="replace_placeholders-7347"><a href="#replace_placeholders-7347"><span class="linenos">7347</span></a><span class="sd"> The mapped expression.</span>
+</span><span id="replace_placeholders-7348"><a href="#replace_placeholders-7348"><span class="linenos">7348</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="replace_placeholders-7349"><a href="#replace_placeholders-7349"><span class="linenos">7349</span></a>
+</span><span id="replace_placeholders-7350"><a href="#replace_placeholders-7350"><span class="linenos">7350</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="replace_placeholders-7351"><a href="#replace_placeholders-7351"><span class="linenos">7351</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-7352"><a href="#replace_placeholders-7352"><span class="linenos">7352</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">:</span>
+</span><span id="replace_placeholders-7353"><a href="#replace_placeholders-7353"><span class="linenos">7353</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">this</span><span class="p">)</span>
+</span><span id="replace_placeholders-7354"><a href="#replace_placeholders-7354"><span class="linenos">7354</span></a> <span class="k">if</span> <span class="n">new_name</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="replace_placeholders-7355"><a href="#replace_placeholders-7355"><span class="linenos">7355</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
+</span><span id="replace_placeholders-7356"><a href="#replace_placeholders-7356"><span class="linenos">7356</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="replace_placeholders-7357"><a href="#replace_placeholders-7357"><span class="linenos">7357</span></a> <span class="k">try</span><span class="p">:</span>
+</span><span id="replace_placeholders-7358"><a href="#replace_placeholders-7358"><span class="linenos">7358</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
+</span><span id="replace_placeholders-7359"><a href="#replace_placeholders-7359"><span class="linenos">7359</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
+</span><span id="replace_placeholders-7360"><a href="#replace_placeholders-7360"><span class="linenos">7360</span></a> <span class="k">pass</span>
+</span><span id="replace_placeholders-7361"><a href="#replace_placeholders-7361"><span class="linenos">7361</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="replace_placeholders-7362"><a href="#replace_placeholders-7362"><span class="linenos">7362</span></a>
+</span><span id="replace_placeholders-7363"><a href="#replace_placeholders-7363"><span class="linenos">7363</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>
@@ -97372,44 +98064,44 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#expand"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="expand-7312"><a href="#expand-7312"><span class="linenos">7312</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
-</span><span id="expand-7313"><a href="#expand-7313"><span class="linenos">7313</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
-</span><span id="expand-7314"><a href="#expand-7314"><span class="linenos">7314</span></a> <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">Query</span><span class="p">],</span>
-</span><span id="expand-7315"><a href="#expand-7315"><span class="linenos">7315</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="expand-7316"><a href="#expand-7316"><span class="linenos">7316</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
-</span><span id="expand-7317"><a href="#expand-7317"><span class="linenos">7317</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
-</span><span id="expand-7318"><a href="#expand-7318"><span class="linenos">7318</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-7319"><a href="#expand-7319"><span class="linenos">7319</span></a>
-</span><span id="expand-7320"><a href="#expand-7320"><span class="linenos">7320</span></a><span class="sd"> Examples:</span>
-</span><span id="expand-7321"><a href="#expand-7321"><span class="linenos">7321</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
-</span><span id="expand-7322"><a href="#expand-7322"><span class="linenos">7322</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-7323"><a href="#expand-7323"><span class="linenos">7323</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
-</span><span id="expand-7324"><a href="#expand-7324"><span class="linenos">7324</span></a>
-</span><span id="expand-7325"><a href="#expand-7325"><span class="linenos">7325</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
-</span><span id="expand-7326"><a href="#expand-7326"><span class="linenos">7326</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
-</span><span id="expand-7327"><a href="#expand-7327"><span class="linenos">7327</span></a>
-</span><span id="expand-7328"><a href="#expand-7328"><span class="linenos">7328</span></a><span class="sd"> Args:</span>
-</span><span id="expand-7329"><a href="#expand-7329"><span class="linenos">7329</span></a><span class="sd"> expression: The expression to expand.</span>
-</span><span id="expand-7330"><a href="#expand-7330"><span class="linenos">7330</span></a><span class="sd"> sources: A dictionary of name to Queries.</span>
-</span><span id="expand-7331"><a href="#expand-7331"><span class="linenos">7331</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
-</span><span id="expand-7332"><a href="#expand-7332"><span class="linenos">7332</span></a><span class="sd"> copy: Whether to copy the expression during transformation. Defaults to True.</span>
-</span><span id="expand-7333"><a href="#expand-7333"><span class="linenos">7333</span></a>
-</span><span id="expand-7334"><a href="#expand-7334"><span class="linenos">7334</span></a><span class="sd"> Returns:</span>
-</span><span id="expand-7335"><a href="#expand-7335"><span class="linenos">7335</span></a><span class="sd"> The transformed expression.</span>
-</span><span id="expand-7336"><a href="#expand-7336"><span class="linenos">7336</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="expand-7337"><a href="#expand-7337"><span class="linenos">7337</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
-</span><span id="expand-7338"><a href="#expand-7338"><span class="linenos">7338</span></a>
-</span><span id="expand-7339"><a href="#expand-7339"><span class="linenos">7339</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-7340"><a href="#expand-7340"><span class="linenos">7340</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-7341"><a href="#expand-7341"><span class="linenos">7341</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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="expand-7342"><a href="#expand-7342"><span class="linenos">7342</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-7343"><a href="#expand-7343"><span class="linenos">7343</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
-</span><span id="expand-7344"><a href="#expand-7344"><span class="linenos">7344</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-7345"><a href="#expand-7345"><span class="linenos">7345</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-7346"><a href="#expand-7346"><span class="linenos">7346</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
-</span><span id="expand-7347"><a href="#expand-7347"><span class="linenos">7347</span></a> <span class="k">return</span> <span class="n">node</span>
-</span><span id="expand-7348"><a href="#expand-7348"><span class="linenos">7348</span></a>
-</span><span id="expand-7349"><a href="#expand-7349"><span class="linenos">7349</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>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="expand-7366"><a href="#expand-7366"><span class="linenos">7366</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
+</span><span id="expand-7367"><a href="#expand-7367"><span class="linenos">7367</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span>
+</span><span id="expand-7368"><a href="#expand-7368"><span class="linenos">7368</span></a> <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">Query</span><span class="p">],</span>
+</span><span id="expand-7369"><a href="#expand-7369"><span class="linenos">7369</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="expand-7370"><a href="#expand-7370"><span class="linenos">7370</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
+</span><span id="expand-7371"><a href="#expand-7371"><span class="linenos">7371</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
+</span><span id="expand-7372"><a href="#expand-7372"><span class="linenos">7372</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-7373"><a href="#expand-7373"><span class="linenos">7373</span></a>
+</span><span id="expand-7374"><a href="#expand-7374"><span class="linenos">7374</span></a><span class="sd"> Examples:</span>
+</span><span id="expand-7375"><a href="#expand-7375"><span class="linenos">7375</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
+</span><span id="expand-7376"><a href="#expand-7376"><span class="linenos">7376</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-7377"><a href="#expand-7377"><span class="linenos">7377</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
+</span><span id="expand-7378"><a href="#expand-7378"><span class="linenos">7378</span></a>
+</span><span id="expand-7379"><a href="#expand-7379"><span class="linenos">7379</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
+</span><span id="expand-7380"><a href="#expand-7380"><span class="linenos">7380</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
+</span><span id="expand-7381"><a href="#expand-7381"><span class="linenos">7381</span></a>
+</span><span id="expand-7382"><a href="#expand-7382"><span class="linenos">7382</span></a><span class="sd"> Args:</span>
+</span><span id="expand-7383"><a href="#expand-7383"><span class="linenos">7383</span></a><span class="sd"> expression: The expression to expand.</span>
+</span><span id="expand-7384"><a href="#expand-7384"><span class="linenos">7384</span></a><span class="sd"> sources: A dictionary of name to Queries.</span>
+</span><span id="expand-7385"><a href="#expand-7385"><span class="linenos">7385</span></a><span class="sd"> dialect: The dialect of the sources dict.</span>
+</span><span id="expand-7386"><a href="#expand-7386"><span class="linenos">7386</span></a><span class="sd"> copy: Whether to copy the expression during transformation. Defaults to True.</span>
+</span><span id="expand-7387"><a href="#expand-7387"><span class="linenos">7387</span></a>
+</span><span id="expand-7388"><a href="#expand-7388"><span class="linenos">7388</span></a><span class="sd"> Returns:</span>
+</span><span id="expand-7389"><a href="#expand-7389"><span class="linenos">7389</span></a><span class="sd"> The transformed expression.</span>
+</span><span id="expand-7390"><a href="#expand-7390"><span class="linenos">7390</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="expand-7391"><a href="#expand-7391"><span class="linenos">7391</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{</span><span class="n">normalize_table_name</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="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">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+</span><span id="expand-7392"><a href="#expand-7392"><span class="linenos">7392</span></a>
+</span><span id="expand-7393"><a href="#expand-7393"><span class="linenos">7393</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-7394"><a href="#expand-7394"><span class="linenos">7394</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-7395"><a href="#expand-7395"><span class="linenos">7395</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">normalize_table_name</span><span class="p">(</span><span class="n">node</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="expand-7396"><a href="#expand-7396"><span class="linenos">7396</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-7397"><a href="#expand-7397"><span class="linenos">7397</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+</span><span id="expand-7398"><a href="#expand-7398"><span class="linenos">7398</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-7399"><a href="#expand-7399"><span class="linenos">7399</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-7400"><a href="#expand-7400"><span class="linenos">7400</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+</span><span id="expand-7401"><a href="#expand-7401"><span class="linenos">7401</span></a> <span class="k">return</span> <span class="n">node</span>
+</span><span id="expand-7402"><a href="#expand-7402"><span class="linenos">7402</span></a>
+</span><span id="expand-7403"><a href="#expand-7403"><span class="linenos">7403</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>
@@ -97461,67 +98153,67 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#func"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="func-7352"><a href="#func-7352"><span class="linenos">7352</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">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7353"><a href="#func-7353"><span class="linenos">7353</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="func-7354"><a href="#func-7354"><span class="linenos">7354</span></a><span class="sd"> Returns a Func expression.</span>
-</span><span id="func-7355"><a href="#func-7355"><span class="linenos">7355</span></a>
-</span><span id="func-7356"><a href="#func-7356"><span class="linenos">7356</span></a><span class="sd"> Examples:</span>
-</span><span id="func-7357"><a href="#func-7357"><span class="linenos">7357</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
-</span><span id="func-7358"><a href="#func-7358"><span class="linenos">7358</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
-</span><span id="func-7359"><a href="#func-7359"><span class="linenos">7359</span></a>
-</span><span id="func-7360"><a href="#func-7360"><span class="linenos">7360</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-7361"><a href="#func-7361"><span class="linenos">7361</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
-</span><span id="func-7362"><a href="#func-7362"><span class="linenos">7362</span></a>
-</span><span id="func-7363"><a href="#func-7363"><span class="linenos">7363</span></a><span class="sd"> Args:</span>
-</span><span id="func-7364"><a href="#func-7364"><span class="linenos">7364</span></a><span class="sd"> name: the name of the function to build.</span>
-</span><span id="func-7365"><a href="#func-7365"><span class="linenos">7365</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
-</span><span id="func-7366"><a href="#func-7366"><span class="linenos">7366</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
-</span><span id="func-7367"><a href="#func-7367"><span class="linenos">7367</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="func-7368"><a href="#func-7368"><span class="linenos">7368</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="func-7369"><a href="#func-7369"><span class="linenos">7369</span></a>
-</span><span id="func-7370"><a href="#func-7370"><span class="linenos">7370</span></a><span class="sd"> Note:</span>
-</span><span id="func-7371"><a href="#func-7371"><span class="linenos">7371</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
-</span><span id="func-7372"><a href="#func-7372"><span class="linenos">7372</span></a>
-</span><span id="func-7373"><a href="#func-7373"><span class="linenos">7373</span></a><span class="sd"> Returns:</span>
-</span><span id="func-7374"><a href="#func-7374"><span class="linenos">7374</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-7375"><a href="#func-7375"><span class="linenos">7375</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
-</span><span id="func-7376"><a href="#func-7376"><span class="linenos">7376</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="func-7377"><a href="#func-7377"><span class="linenos">7377</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-7378"><a href="#func-7378"><span class="linenos">7378</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-7379"><a href="#func-7379"><span class="linenos">7379</span></a>
-</span><span id="func-7380"><a href="#func-7380"><span class="linenos">7380</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-7381"><a href="#func-7381"><span class="linenos">7381</span></a>
-</span><span id="func-7382"><a href="#func-7382"><span class="linenos">7382</span></a> <span class="n">dialect</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><span id="func-7383"><a href="#func-7383"><span class="linenos">7383</span></a>
-</span><span id="func-7384"><a href="#func-7384"><span class="linenos">7384</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7385"><a href="#func-7385"><span class="linenos">7385</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7386"><a href="#func-7386"><span class="linenos">7386</span></a>
-</span><span id="func-7387"><a href="#func-7387"><span class="linenos">7387</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</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-7388"><a href="#func-7388"><span class="linenos">7388</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="func-7389"><a href="#func-7389"><span class="linenos">7389</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
-</span><span id="func-7390"><a href="#func-7390"><span class="linenos">7390</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
-</span><span id="func-7391"><a href="#func-7391"><span class="linenos">7391</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</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="func-7392"><a href="#func-7392"><span class="linenos">7392</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-7393"><a href="#func-7393"><span class="linenos">7393</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
-</span><span id="func-7394"><a href="#func-7394"><span class="linenos">7394</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
-</span><span id="func-7395"><a href="#func-7395"><span class="linenos">7395</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</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-7396"><a href="#func-7396"><span class="linenos">7396</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-7397"><a href="#func-7397"><span class="linenos">7397</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</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-7398"><a href="#func-7398"><span class="linenos">7398</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
-</span><span id="func-7399"><a href="#func-7399"><span class="linenos">7399</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="func-7400"><a href="#func-7400"><span class="linenos">7400</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-7401"><a href="#func-7401"><span class="linenos">7401</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
-</span><span id="func-7402"><a href="#func-7402"><span class="linenos">7402</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
-</span><span id="func-7403"><a href="#func-7403"><span class="linenos">7403</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
-</span><span id="func-7404"><a href="#func-7404"><span class="linenos">7404</span></a> <span class="p">)</span>
-</span><span id="func-7405"><a href="#func-7405"><span class="linenos">7405</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="func-7406"><a href="#func-7406"><span class="linenos">7406</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-7407"><a href="#func-7407"><span class="linenos">7407</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-7408"><a href="#func-7408"><span class="linenos">7408</span></a>
-</span><span id="func-7409"><a href="#func-7409"><span class="linenos">7409</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-7410"><a href="#func-7410"><span class="linenos">7410</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-7411"><a href="#func-7411"><span class="linenos">7411</span></a>
-</span><span id="func-7412"><a href="#func-7412"><span class="linenos">7412</span></a> <span class="k">return</span> <span class="n">function</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="func-7406"><a href="#func-7406"><span class="linenos">7406</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">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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-7407"><a href="#func-7407"><span class="linenos">7407</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="func-7408"><a href="#func-7408"><span class="linenos">7408</span></a><span class="sd"> Returns a Func expression.</span>
+</span><span id="func-7409"><a href="#func-7409"><span class="linenos">7409</span></a>
+</span><span id="func-7410"><a href="#func-7410"><span class="linenos">7410</span></a><span class="sd"> Examples:</span>
+</span><span id="func-7411"><a href="#func-7411"><span class="linenos">7411</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
+</span><span id="func-7412"><a href="#func-7412"><span class="linenos">7412</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
+</span><span id="func-7413"><a href="#func-7413"><span class="linenos">7413</span></a>
+</span><span id="func-7414"><a href="#func-7414"><span class="linenos">7414</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-7415"><a href="#func-7415"><span class="linenos">7415</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
+</span><span id="func-7416"><a href="#func-7416"><span class="linenos">7416</span></a>
+</span><span id="func-7417"><a href="#func-7417"><span class="linenos">7417</span></a><span class="sd"> Args:</span>
+</span><span id="func-7418"><a href="#func-7418"><span class="linenos">7418</span></a><span class="sd"> name: the name of the function to build.</span>
+</span><span id="func-7419"><a href="#func-7419"><span class="linenos">7419</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
+</span><span id="func-7420"><a href="#func-7420"><span class="linenos">7420</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
+</span><span id="func-7421"><a href="#func-7421"><span class="linenos">7421</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="func-7422"><a href="#func-7422"><span class="linenos">7422</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="func-7423"><a href="#func-7423"><span class="linenos">7423</span></a>
+</span><span id="func-7424"><a href="#func-7424"><span class="linenos">7424</span></a><span class="sd"> Note:</span>
+</span><span id="func-7425"><a href="#func-7425"><span class="linenos">7425</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
+</span><span id="func-7426"><a href="#func-7426"><span class="linenos">7426</span></a>
+</span><span id="func-7427"><a href="#func-7427"><span class="linenos">7427</span></a><span class="sd"> Returns:</span>
+</span><span id="func-7428"><a href="#func-7428"><span class="linenos">7428</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-7429"><a href="#func-7429"><span class="linenos">7429</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
+</span><span id="func-7430"><a href="#func-7430"><span class="linenos">7430</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="func-7431"><a href="#func-7431"><span class="linenos">7431</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-7432"><a href="#func-7432"><span class="linenos">7432</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-7433"><a href="#func-7433"><span class="linenos">7433</span></a>
+</span><span id="func-7434"><a href="#func-7434"><span class="linenos">7434</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-7435"><a href="#func-7435"><span class="linenos">7435</span></a>
+</span><span id="func-7436"><a href="#func-7436"><span class="linenos">7436</span></a> <span class="n">dialect</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><span id="func-7437"><a href="#func-7437"><span class="linenos">7437</span></a>
+</span><span id="func-7438"><a href="#func-7438"><span class="linenos">7438</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7439"><a href="#func-7439"><span class="linenos">7439</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</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-7440"><a href="#func-7440"><span class="linenos">7440</span></a>
+</span><span id="func-7441"><a href="#func-7441"><span class="linenos">7441</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">dialect</span><span class="o">.</span><span class="n">parser_class</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-7442"><a href="#func-7442"><span class="linenos">7442</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="func-7443"><a href="#func-7443"><span class="linenos">7443</span></a> <span class="k">if</span> <span class="n">converted</span><span class="p">:</span>
+</span><span id="func-7444"><a href="#func-7444"><span class="linenos">7444</span></a> <span class="k">if</span> <span class="s2">&quot;dialect&quot;</span> <span class="ow">in</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__code__</span><span class="o">.</span><span class="n">co_varnames</span><span class="p">:</span>
+</span><span id="func-7445"><a href="#func-7445"><span class="linenos">7445</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</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="func-7446"><a href="#func-7446"><span class="linenos">7446</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-7447"><a href="#func-7447"><span class="linenos">7447</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span>
+</span><span id="func-7448"><a href="#func-7448"><span class="linenos">7448</span></a> <span class="k">elif</span> <span class="n">constructor</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;from_arg_list&quot;</span><span class="p">:</span>
+</span><span id="func-7449"><a href="#func-7449"><span class="linenos">7449</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</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-7450"><a href="#func-7450"><span class="linenos">7450</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-7451"><a href="#func-7451"><span class="linenos">7451</span></a> <span class="n">constructor</span> <span class="o">=</span> <span class="n">FUNCTION_BY_NAME</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-7452"><a href="#func-7452"><span class="linenos">7452</span></a> <span class="k">if</span> <span class="n">constructor</span><span class="p">:</span>
+</span><span id="func-7453"><a href="#func-7453"><span class="linenos">7453</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">constructor</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="func-7454"><a href="#func-7454"><span class="linenos">7454</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-7455"><a href="#func-7455"><span class="linenos">7455</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
+</span><span id="func-7456"><a href="#func-7456"><span class="linenos">7456</span></a> <span class="sa">f</span><span class="s2">&quot;Unable to convert &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; into a Func. Either manually construct &quot;</span>
+</span><span id="func-7457"><a href="#func-7457"><span class="linenos">7457</span></a> <span class="s2">&quot;the Func expression of interest or parse the function call.&quot;</span>
+</span><span id="func-7458"><a href="#func-7458"><span class="linenos">7458</span></a> <span class="p">)</span>
+</span><span id="func-7459"><a href="#func-7459"><span class="linenos">7459</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="func-7460"><a href="#func-7460"><span class="linenos">7460</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-7461"><a href="#func-7461"><span class="linenos">7461</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-7462"><a href="#func-7462"><span class="linenos">7462</span></a>
+</span><span id="func-7463"><a href="#func-7463"><span class="linenos">7463</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-7464"><a href="#func-7464"><span class="linenos">7464</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-7465"><a href="#func-7465"><span class="linenos">7465</span></a>
+</span><span id="func-7466"><a href="#func-7466"><span class="linenos">7466</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
@@ -97580,25 +98272,25 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#case"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="case-7415"><a href="#case-7415"><span class="linenos">7415</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
-</span><span id="case-7416"><a href="#case-7416"><span class="linenos">7416</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
-</span><span id="case-7417"><a href="#case-7417"><span class="linenos">7417</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
-</span><span id="case-7418"><a href="#case-7418"><span class="linenos">7418</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
-</span><span id="case-7419"><a href="#case-7419"><span class="linenos">7419</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="case-7420"><a href="#case-7420"><span class="linenos">7420</span></a><span class="sd"> Initialize a CASE statement.</span>
-</span><span id="case-7421"><a href="#case-7421"><span class="linenos">7421</span></a>
-</span><span id="case-7422"><a href="#case-7422"><span class="linenos">7422</span></a><span class="sd"> Example:</span>
-</span><span id="case-7423"><a href="#case-7423"><span class="linenos">7423</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
-</span><span id="case-7424"><a href="#case-7424"><span class="linenos">7424</span></a>
-</span><span id="case-7425"><a href="#case-7425"><span class="linenos">7425</span></a><span class="sd"> Args:</span>
-</span><span id="case-7426"><a href="#case-7426"><span class="linenos">7426</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
-</span><span id="case-7427"><a href="#case-7427"><span class="linenos">7427</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
-</span><span id="case-7428"><a href="#case-7428"><span class="linenos">7428</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="case-7429"><a href="#case-7429"><span class="linenos">7429</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-</span><span id="case-7430"><a href="#case-7430"><span class="linenos">7430</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
-</span><span id="case-7431"><a href="#case-7431"><span class="linenos">7431</span></a> <span class="k">else</span><span class="p">:</span>
-</span><span id="case-7432"><a href="#case-7432"><span class="linenos">7432</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
-</span><span id="case-7433"><a href="#case-7433"><span class="linenos">7433</span></a> <span class="k">return</span> <span class="n">Case</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">ifs</span><span class="o">=</span><span class="p">[])</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="case-7469"><a href="#case-7469"><span class="linenos">7469</span></a><span class="k">def</span> <span class="nf">case</span><span class="p">(</span>
+</span><span id="case-7470"><a href="#case-7470"><span class="linenos">7470</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+</span><span id="case-7471"><a href="#case-7471"><span class="linenos">7471</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
+</span><span id="case-7472"><a href="#case-7472"><span class="linenos">7472</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
+</span><span id="case-7473"><a href="#case-7473"><span class="linenos">7473</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="case-7474"><a href="#case-7474"><span class="linenos">7474</span></a><span class="sd"> Initialize a CASE statement.</span>
+</span><span id="case-7475"><a href="#case-7475"><span class="linenos">7475</span></a>
+</span><span id="case-7476"><a href="#case-7476"><span class="linenos">7476</span></a><span class="sd"> Example:</span>
+</span><span id="case-7477"><a href="#case-7477"><span class="linenos">7477</span></a><span class="sd"> case().when(&quot;a = 1&quot;, &quot;foo&quot;).else_(&quot;bar&quot;)</span>
+</span><span id="case-7478"><a href="#case-7478"><span class="linenos">7478</span></a>
+</span><span id="case-7479"><a href="#case-7479"><span class="linenos">7479</span></a><span class="sd"> Args:</span>
+</span><span id="case-7480"><a href="#case-7480"><span class="linenos">7480</span></a><span class="sd"> expression: Optionally, the input expression (not all dialects support this)</span>
+</span><span id="case-7481"><a href="#case-7481"><span class="linenos">7481</span></a><span class="sd"> **opts: Extra keyword arguments for parsing `expression`</span>
+</span><span id="case-7482"><a href="#case-7482"><span class="linenos">7482</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="case-7483"><a href="#case-7483"><span class="linenos">7483</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+</span><span id="case-7484"><a href="#case-7484"><span class="linenos">7484</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
+</span><span id="case-7485"><a href="#case-7485"><span class="linenos">7485</span></a> <span class="k">else</span><span class="p">:</span>
+</span><span id="case-7486"><a href="#case-7486"><span class="linenos">7486</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span>
+</span><span id="case-7487"><a href="#case-7487"><span class="linenos">7487</span></a> <span class="k">return</span> <span class="n">Case</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">ifs</span><span class="o">=</span><span class="p">[])</span>
</span></pre></div>
@@ -97631,31 +98323,31 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#array"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="array-7436"><a href="#array-7436"><span class="linenos">7436</span></a><span class="k">def</span> <span class="nf">array</span><span class="p">(</span>
-</span><span id="array-7437"><a href="#array-7437"><span class="linenos">7437</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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="array-7438"><a href="#array-7438"><span class="linenos">7438</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Array</span><span class="p">:</span>
-</span><span id="array-7439"><a href="#array-7439"><span class="linenos">7439</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="array-7440"><a href="#array-7440"><span class="linenos">7440</span></a><span class="sd"> Returns an array.</span>
-</span><span id="array-7441"><a href="#array-7441"><span class="linenos">7441</span></a>
-</span><span id="array-7442"><a href="#array-7442"><span class="linenos">7442</span></a><span class="sd"> Examples:</span>
-</span><span id="array-7443"><a href="#array-7443"><span class="linenos">7443</span></a><span class="sd"> &gt;&gt;&gt; array(1, &#39;x&#39;).sql()</span>
-</span><span id="array-7444"><a href="#array-7444"><span class="linenos">7444</span></a><span class="sd"> &#39;ARRAY(1, x)&#39;</span>
-</span><span id="array-7445"><a href="#array-7445"><span class="linenos">7445</span></a>
-</span><span id="array-7446"><a href="#array-7446"><span class="linenos">7446</span></a><span class="sd"> Args:</span>
-</span><span id="array-7447"><a href="#array-7447"><span class="linenos">7447</span></a><span class="sd"> expressions: the expressions to add to the array.</span>
-</span><span id="array-7448"><a href="#array-7448"><span class="linenos">7448</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
-</span><span id="array-7449"><a href="#array-7449"><span class="linenos">7449</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="array-7450"><a href="#array-7450"><span class="linenos">7450</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="array-7451"><a href="#array-7451"><span class="linenos">7451</span></a>
-</span><span id="array-7452"><a href="#array-7452"><span class="linenos">7452</span></a><span class="sd"> Returns:</span>
-</span><span id="array-7453"><a href="#array-7453"><span class="linenos">7453</span></a><span class="sd"> An array expression.</span>
-</span><span id="array-7454"><a href="#array-7454"><span class="linenos">7454</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="array-7455"><a href="#array-7455"><span class="linenos">7455</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span>
-</span><span id="array-7456"><a href="#array-7456"><span class="linenos">7456</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="array-7457"><a href="#array-7457"><span class="linenos">7457</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="array-7458"><a href="#array-7458"><span class="linenos">7458</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="array-7459"><a href="#array-7459"><span class="linenos">7459</span></a> <span class="p">]</span>
-</span><span id="array-7460"><a href="#array-7460"><span class="linenos">7460</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="array-7490"><a href="#array-7490"><span class="linenos">7490</span></a><span class="k">def</span> <span class="nf">array</span><span class="p">(</span>
+</span><span id="array-7491"><a href="#array-7491"><span class="linenos">7491</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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="array-7492"><a href="#array-7492"><span class="linenos">7492</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Array</span><span class="p">:</span>
+</span><span id="array-7493"><a href="#array-7493"><span class="linenos">7493</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="array-7494"><a href="#array-7494"><span class="linenos">7494</span></a><span class="sd"> Returns an array.</span>
+</span><span id="array-7495"><a href="#array-7495"><span class="linenos">7495</span></a>
+</span><span id="array-7496"><a href="#array-7496"><span class="linenos">7496</span></a><span class="sd"> Examples:</span>
+</span><span id="array-7497"><a href="#array-7497"><span class="linenos">7497</span></a><span class="sd"> &gt;&gt;&gt; array(1, &#39;x&#39;).sql()</span>
+</span><span id="array-7498"><a href="#array-7498"><span class="linenos">7498</span></a><span class="sd"> &#39;ARRAY(1, x)&#39;</span>
+</span><span id="array-7499"><a href="#array-7499"><span class="linenos">7499</span></a>
+</span><span id="array-7500"><a href="#array-7500"><span class="linenos">7500</span></a><span class="sd"> Args:</span>
+</span><span id="array-7501"><a href="#array-7501"><span class="linenos">7501</span></a><span class="sd"> expressions: the expressions to add to the array.</span>
+</span><span id="array-7502"><a href="#array-7502"><span class="linenos">7502</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
+</span><span id="array-7503"><a href="#array-7503"><span class="linenos">7503</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="array-7504"><a href="#array-7504"><span class="linenos">7504</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="array-7505"><a href="#array-7505"><span class="linenos">7505</span></a>
+</span><span id="array-7506"><a href="#array-7506"><span class="linenos">7506</span></a><span class="sd"> Returns:</span>
+</span><span id="array-7507"><a href="#array-7507"><span class="linenos">7507</span></a><span class="sd"> An array expression.</span>
+</span><span id="array-7508"><a href="#array-7508"><span class="linenos">7508</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="array-7509"><a href="#array-7509"><span class="linenos">7509</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span>
+</span><span id="array-7510"><a href="#array-7510"><span class="linenos">7510</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="array-7511"><a href="#array-7511"><span class="linenos">7511</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="array-7512"><a href="#array-7512"><span class="linenos">7512</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="array-7513"><a href="#array-7513"><span class="linenos">7513</span></a> <span class="p">]</span>
+</span><span id="array-7514"><a href="#array-7514"><span class="linenos">7514</span></a> <span class="p">)</span>
</span></pre></div>
@@ -97700,31 +98392,31 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#tuple_"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="tuple_-7463"><a href="#tuple_-7463"><span class="linenos">7463</span></a><span class="k">def</span> <span class="nf">tuple_</span><span class="p">(</span>
-</span><span id="tuple_-7464"><a href="#tuple_-7464"><span class="linenos">7464</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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="tuple_-7465"><a href="#tuple_-7465"><span class="linenos">7465</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">:</span>
-</span><span id="tuple_-7466"><a href="#tuple_-7466"><span class="linenos">7466</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="tuple_-7467"><a href="#tuple_-7467"><span class="linenos">7467</span></a><span class="sd"> Returns an tuple.</span>
-</span><span id="tuple_-7468"><a href="#tuple_-7468"><span class="linenos">7468</span></a>
-</span><span id="tuple_-7469"><a href="#tuple_-7469"><span class="linenos">7469</span></a><span class="sd"> Examples:</span>
-</span><span id="tuple_-7470"><a href="#tuple_-7470"><span class="linenos">7470</span></a><span class="sd"> &gt;&gt;&gt; tuple_(1, &#39;x&#39;).sql()</span>
-</span><span id="tuple_-7471"><a href="#tuple_-7471"><span class="linenos">7471</span></a><span class="sd"> &#39;(1, x)&#39;</span>
-</span><span id="tuple_-7472"><a href="#tuple_-7472"><span class="linenos">7472</span></a>
-</span><span id="tuple_-7473"><a href="#tuple_-7473"><span class="linenos">7473</span></a><span class="sd"> Args:</span>
-</span><span id="tuple_-7474"><a href="#tuple_-7474"><span class="linenos">7474</span></a><span class="sd"> expressions: the expressions to add to the tuple.</span>
-</span><span id="tuple_-7475"><a href="#tuple_-7475"><span class="linenos">7475</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
-</span><span id="tuple_-7476"><a href="#tuple_-7476"><span class="linenos">7476</span></a><span class="sd"> dialect: the source dialect.</span>
-</span><span id="tuple_-7477"><a href="#tuple_-7477"><span class="linenos">7477</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
-</span><span id="tuple_-7478"><a href="#tuple_-7478"><span class="linenos">7478</span></a>
-</span><span id="tuple_-7479"><a href="#tuple_-7479"><span class="linenos">7479</span></a><span class="sd"> Returns:</span>
-</span><span id="tuple_-7480"><a href="#tuple_-7480"><span class="linenos">7480</span></a><span class="sd"> A tuple expression.</span>
-</span><span id="tuple_-7481"><a href="#tuple_-7481"><span class="linenos">7481</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="tuple_-7482"><a href="#tuple_-7482"><span class="linenos">7482</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span>
-</span><span id="tuple_-7483"><a href="#tuple_-7483"><span class="linenos">7483</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
-</span><span id="tuple_-7484"><a href="#tuple_-7484"><span class="linenos">7484</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
-</span><span id="tuple_-7485"><a href="#tuple_-7485"><span class="linenos">7485</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="tuple_-7486"><a href="#tuple_-7486"><span class="linenos">7486</span></a> <span class="p">]</span>
-</span><span id="tuple_-7487"><a href="#tuple_-7487"><span class="linenos">7487</span></a> <span class="p">)</span>
+ <div class="pdoc-code codehilite"><pre><span></span><span id="tuple_-7517"><a href="#tuple_-7517"><span class="linenos">7517</span></a><span class="k">def</span> <span class="nf">tuple_</span><span class="p">(</span>
+</span><span id="tuple_-7518"><a href="#tuple_-7518"><span class="linenos">7518</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="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="tuple_-7519"><a href="#tuple_-7519"><span class="linenos">7519</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">:</span>
+</span><span id="tuple_-7520"><a href="#tuple_-7520"><span class="linenos">7520</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="tuple_-7521"><a href="#tuple_-7521"><span class="linenos">7521</span></a><span class="sd"> Returns an tuple.</span>
+</span><span id="tuple_-7522"><a href="#tuple_-7522"><span class="linenos">7522</span></a>
+</span><span id="tuple_-7523"><a href="#tuple_-7523"><span class="linenos">7523</span></a><span class="sd"> Examples:</span>
+</span><span id="tuple_-7524"><a href="#tuple_-7524"><span class="linenos">7524</span></a><span class="sd"> &gt;&gt;&gt; tuple_(1, &#39;x&#39;).sql()</span>
+</span><span id="tuple_-7525"><a href="#tuple_-7525"><span class="linenos">7525</span></a><span class="sd"> &#39;(1, x)&#39;</span>
+</span><span id="tuple_-7526"><a href="#tuple_-7526"><span class="linenos">7526</span></a>
+</span><span id="tuple_-7527"><a href="#tuple_-7527"><span class="linenos">7527</span></a><span class="sd"> Args:</span>
+</span><span id="tuple_-7528"><a href="#tuple_-7528"><span class="linenos">7528</span></a><span class="sd"> expressions: the expressions to add to the tuple.</span>
+</span><span id="tuple_-7529"><a href="#tuple_-7529"><span class="linenos">7529</span></a><span class="sd"> copy: whether to copy the argument expressions.</span>
+</span><span id="tuple_-7530"><a href="#tuple_-7530"><span class="linenos">7530</span></a><span class="sd"> dialect: the source dialect.</span>
+</span><span id="tuple_-7531"><a href="#tuple_-7531"><span class="linenos">7531</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
+</span><span id="tuple_-7532"><a href="#tuple_-7532"><span class="linenos">7532</span></a>
+</span><span id="tuple_-7533"><a href="#tuple_-7533"><span class="linenos">7533</span></a><span class="sd"> Returns:</span>
+</span><span id="tuple_-7534"><a href="#tuple_-7534"><span class="linenos">7534</span></a><span class="sd"> A tuple expression.</span>
+</span><span id="tuple_-7535"><a href="#tuple_-7535"><span class="linenos">7535</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="tuple_-7536"><a href="#tuple_-7536"><span class="linenos">7536</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span>
+</span><span id="tuple_-7537"><a href="#tuple_-7537"><span class="linenos">7537</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span>
+</span><span id="tuple_-7538"><a href="#tuple_-7538"><span class="linenos">7538</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+</span><span id="tuple_-7539"><a href="#tuple_-7539"><span class="linenos">7539</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="tuple_-7540"><a href="#tuple_-7540"><span class="linenos">7540</span></a> <span class="p">]</span>
+</span><span id="tuple_-7541"><a href="#tuple_-7541"><span class="linenos">7541</span></a> <span class="p">)</span>
</span></pre></div>
@@ -97769,11 +98461,11 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#true"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="true-7490"><a href="#true-7490"><span class="linenos">7490</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="true-7491"><a href="#true-7491"><span class="linenos">7491</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="true-7492"><a href="#true-7492"><span class="linenos">7492</span></a><span class="sd"> Returns a true Boolean expression.</span>
-</span><span id="true-7493"><a href="#true-7493"><span class="linenos">7493</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="true-7494"><a href="#true-7494"><span class="linenos">7494</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-7544"><a href="#true-7544"><span class="linenos">7544</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="true-7545"><a href="#true-7545"><span class="linenos">7545</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="true-7546"><a href="#true-7546"><span class="linenos">7546</span></a><span class="sd"> Returns a true Boolean expression.</span>
+</span><span id="true-7547"><a href="#true-7547"><span class="linenos">7547</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="true-7548"><a href="#true-7548"><span class="linenos">7548</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>
@@ -97793,11 +98485,11 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#false"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="false-7497"><a href="#false-7497"><span class="linenos">7497</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
-</span><span id="false-7498"><a href="#false-7498"><span class="linenos">7498</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="false-7499"><a href="#false-7499"><span class="linenos">7499</span></a><span class="sd"> Returns a false Boolean expression.</span>
-</span><span id="false-7500"><a href="#false-7500"><span class="linenos">7500</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="false-7501"><a href="#false-7501"><span class="linenos">7501</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-7551"><a href="#false-7551"><span class="linenos">7551</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
+</span><span id="false-7552"><a href="#false-7552"><span class="linenos">7552</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="false-7553"><a href="#false-7553"><span class="linenos">7553</span></a><span class="sd"> Returns a false Boolean expression.</span>
+</span><span id="false-7554"><a href="#false-7554"><span class="linenos">7554</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="false-7555"><a href="#false-7555"><span class="linenos">7555</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>
@@ -97817,11 +98509,11 @@ True: Always quote.</li>
</div>
<a class="headerlink" href="#null"></a>
- <div class="pdoc-code codehilite"><pre><span></span><span id="null-7504"><a href="#null-7504"><span class="linenos">7504</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
-</span><span id="null-7505"><a href="#null-7505"><span class="linenos">7505</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
-</span><span id="null-7506"><a href="#null-7506"><span class="linenos">7506</span></a><span class="sd"> Returns a Null expression.</span>
-</span><span id="null-7507"><a href="#null-7507"><span class="linenos">7507</span></a><span class="sd"> &quot;&quot;&quot;</span>
-</span><span id="null-7508"><a href="#null-7508"><span class="linenos">7508</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-7558"><a href="#null-7558"><span class="linenos">7558</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
+</span><span id="null-7559"><a href="#null-7559"><span class="linenos">7559</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
+</span><span id="null-7560"><a href="#null-7560"><span class="linenos">7560</span></a><span class="sd"> Returns a Null expression.</span>
+</span><span id="null-7561"><a href="#null-7561"><span class="linenos">7561</span></a><span class="sd"> &quot;&quot;&quot;</span>
+</span><span id="null-7562"><a href="#null-7562"><span class="linenos">7562</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>